This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  d0e6fc28334023a42fbae797ece8c8e8526dc1c3 (commit)
       via  60515b205e0151fa0194a984850e652a04a9a165 (commit)
       via  d9a4da453fb6fe2a5f16eb35a0d3756f88801ba1 (commit)
       via  60b28de5c8c364d26824dbe2c2666ea47e8870a2 (commit)
       via  b74061ba386a46d273bea37f377998a4e1936a65 (commit)
       via  996e1885c4995e2d73712a7d0aaa0d615be5fdf0 (commit)
       via  61f70e81a708db126ba5e2d1135ff0e2a5ffba25 (commit)
       via  7db32efbab1c61e4b8032702eba5ac6d7768d531 (commit)
       via  ce078dda79df1c8d9f142e45d2fa3cf971a09594 (commit)
       via  044dcf9f8d2bfb10825627f7e18456a1679d5ab6 (commit)
       via  d350fb688954f476d8df79bf582cf366b5861dd2 (commit)
      from  71371e3d936c89945e4369c0daebe9c7e13dec31 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d0e6fc28334023a42fbae797ece8c8e8526dc1c3
commit d0e6fc28334023a42fbae797ece8c8e8526dc1c3
Merge: 60515b2 ce078dd
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Apr 30 14:09:39 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Tue Apr 30 10:09:52 2019 -0400

    Merge topic 'relax_TARGET_OBJECT_generator_expr'
    
    ce078dda79 Relax the usage of TARGET_OBJECTS generator expression
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3178


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=60515b205e0151fa0194a984850e652a04a9a165
commit 60515b205e0151fa0194a984850e652a04a9a165
Merge: d9a4da4 7db32ef
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Apr 30 14:07:38 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Tue Apr 30 10:08:22 2019 -0400

    Merge topic 'findmpi-msvc-nolibdir'
    
    7db32efbab FindMPI: Don't retain libdirs for Win32
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3253


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d9a4da453fb6fe2a5f16eb35a0d3756f88801ba1
commit d9a4da453fb6fe2a5f16eb35a0d3756f88801ba1
Merge: 60b28de 996e188
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Apr 30 14:07:20 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Tue Apr 30 10:07:27 2019 -0400

    Merge topic 'server-deprecate'
    
    996e1885c4 server: deprecate in favor of the file-api
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Acked-by: Kyle Edwards <kyle.edwa...@kitware.com>
    Merge-request: !3251


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=60b28de5c8c364d26824dbe2c2666ea47e8870a2
commit 60b28de5c8c364d26824dbe2c2666ea47e8870a2
Merge: b74061b 044dcf9
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Apr 30 14:04:42 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Tue Apr 30 10:05:09 2019 -0400

    Merge topic 'add-execute_process-command-echo'
    
    044dcf9f8d execute_process: Add option to echo command lines
    d350fb6889 execute_process: Manage KWSys Process lifetime with unique_ptr
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3165


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b74061ba386a46d273bea37f377998a4e1936a65
commit b74061ba386a46d273bea37f377998a4e1936a65
Merge: 71371e3 61f70e8
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Apr 30 14:03:12 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Tue Apr 30 10:03:20 2019 -0400

    Merge topic 'msvc-runtime-library'
    
    61f70e81a7 MSVC: Document and test behavior of empty MSVC_RUNTIME_LIBRARY
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3249


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=996e1885c4995e2d73712a7d0aaa0d615be5fdf0
commit 996e1885c4995e2d73712a7d0aaa0d615be5fdf0
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Fri Apr 19 13:43:57 2019 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Apr 22 09:38:44 2019 -0400

    server: deprecate in favor of the file-api
    
    Document the server mode as deprecated.  Add a deprecation message
    to the configure step output when invoked through server mode.
    
    Closes: #19101

diff --git a/Help/manual/cmake-server.7.rst b/Help/manual/cmake-server.7.rst
index 25d364c..8f10b9f 100644
--- a/Help/manual/cmake-server.7.rst
+++ b/Help/manual/cmake-server.7.rst
@@ -7,6 +7,11 @@ cmake-server(7)
 
    .. contents::
 
+.. deprecated:: 3.15
+
+  This will be removed from a future version of CMake.
+  Clients should use the :manual:`cmake-file-api(7)` instead.
+
 Introduction
 ============
 
diff --git a/Help/release/dev/server-deprecate.rst 
b/Help/release/dev/server-deprecate.rst
new file mode 100644
index 0000000..65c86e1
--- /dev/null
+++ b/Help/release/dev/server-deprecate.rst
@@ -0,0 +1,6 @@
+server-deprecate
+----------------
+
+* The :manual:`cmake-server(7)` mode has been deprecated and will be
+  removed from a future version of CMake.  Please port clients to use
+  the :manual:`cmake-file-api(7)` instead.
diff --git a/Source/cmServerProtocol.cxx b/Source/cmServerProtocol.cxx
index 203ee93..dad8821 100644
--- a/Source/cmServerProtocol.cxx
+++ b/Source/cmServerProtocol.cxx
@@ -8,6 +8,7 @@
 #include "cmGlobalGenerator.h"
 #include "cmJsonObjectDictionary.h"
 #include "cmJsonObjects.h"
+#include "cmMessageType.h"
 #include "cmServer.h"
 #include "cmServerDictionary.h"
 #include "cmState.h"
@@ -600,6 +601,10 @@ cmServerResponse cmServerProtocol1::ProcessConfigure(
   }
 
   int ret = cm->Configure();
+  cm->IssueMessage(
+    MessageType::DEPRECATION_WARNING,
+    "The 'cmake-server(7)' is deprecated.  "
+    "Please port clients to use the 'cmake-file-api(7)' instead.");
   if (ret < 0) {
     return request.ReportError("Configuration failed.");
   }

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=61f70e81a708db126ba5e2d1135ff0e2a5ffba25
commit 61f70e81a708db126ba5e2d1135ff0e2a5ffba25
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Fri Apr 19 11:32:40 2019 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Apr 22 08:48:44 2019 -0400

    MSVC: Document and test behavior of empty MSVC_RUNTIME_LIBRARY
    
    Extend tests added by commit fb3370b6a1 (MSVC: Add abstraction for
    runtime library selection, 2019-04-10) to cover an empty value for
    the property.  It should result in no specific setting.
    
    Issue: #19108

diff --git a/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt 
b/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
index 2bf71a9..6c61341 100644
--- a/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
+++ b/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
@@ -13,3 +13,8 @@
 
 The value is ignored on non-MSVC compilers but an unsupported value will
 be rejected as an error when using a compiler targeting the MSVC ABI.
+
+The value may also be the empty string (``""``) in which case no runtime
+library selection flag will be added explicitly by CMake.  Note that with
+:ref:`Visual Studio Generators` the native build system may choose to
+add its own default runtime library selection flag.
diff --git a/Tests/MSVCRuntimeLibrary/CMakeLists.txt 
b/Tests/MSVCRuntimeLibrary/CMakeLists.txt
index b7a6e86..6994d8d 100644
--- a/Tests/MSVCRuntimeLibrary/CMakeLists.txt
+++ b/Tests/MSVCRuntimeLibrary/CMakeLists.txt
@@ -42,7 +42,22 @@ endfunction()
 function(verify lang src)
   add_library(default-${lang} ${src})
   target_compile_definitions(default-${lang} PRIVATE VERIFY_MT VERIFY_DLL 
"$<$<CONFIG:Debug>:VERIFY_DEBUG>")
+
   verify_combinations(MultiThreaded ${lang} ${src})
+
+  # Test known MSVC default behavior when no flag is given.
+  if(CMAKE_${lang}_COMPILER_ID STREQUAL "MSVC")
+    set(CMAKE_MSVC_RUNTIME_LIBRARY "")
+    add_library(empty-${lang} ${src})
+    if(CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 14)
+      # VS 2005 and above default to multi-threaded.
+      target_compile_definitions(empty-${lang} PRIVATE VERIFY_MT)
+    endif()
+    if(CMAKE_GENERATOR MATCHES "Visual Studio ([^9]|9[0-9])")
+      # VS 2010 and above have a different default runtime library for 
projects than 'cl'.
+      target_compile_definitions(empty-${lang} PRIVATE VERIFY_DLL)
+    endif()
+  endif()
 endfunction()
 
 verify(C verify.c)
diff --git a/Tests/RunCMake/VS10Project/RuntimeLibrary-check.cmake 
b/Tests/RunCMake/VS10Project/RuntimeLibrary-check.cmake
index 6b43d47..689b35f 100644
--- a/Tests/RunCMake/VS10Project/RuntimeLibrary-check.cmake
+++ b/Tests/RunCMake/VS10Project/RuntimeLibrary-check.cmake
@@ -20,7 +20,7 @@ macro(RuntimeLibrary_check tgt rtl_expect)
     endif()
   endforeach()
 
-  if(NOT HAVE_Runtimelibrary)
+  if(NOT HAVE_Runtimelibrary AND NOT "${rtl_expect}" STREQUAL "")
     set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not have a 
RuntimeLibrary field.")
     return()
   endif()
@@ -28,6 +28,8 @@ endmacro()
 
 RuntimeLibrary_check(default-C MultiThreadedDebugDLL)
 RuntimeLibrary_check(default-CXX MultiThreadedDebugDLL)
+RuntimeLibrary_check(empty-C "")
+RuntimeLibrary_check(empty-CXX "")
 RuntimeLibrary_check(MTd-C MultiThreadedDebug)
 RuntimeLibrary_check(MTd-CXX MultiThreadedDebug)
 RuntimeLibrary_check(MT-C MultiThreaded)
diff --git a/Tests/RunCMake/VS10Project/RuntimeLibrary.cmake 
b/Tests/RunCMake/VS10Project/RuntimeLibrary.cmake
index 6c77a25..d7787c8 100644
--- a/Tests/RunCMake/VS10Project/RuntimeLibrary.cmake
+++ b/Tests/RunCMake/VS10Project/RuntimeLibrary.cmake
@@ -6,6 +6,10 @@ enable_language(CXX)
 add_library(default-C empty.c)
 add_library(default-CXX empty.cxx)
 
+set(CMAKE_MSVC_RUNTIME_LIBRARY "")
+add_library(empty-C empty.c)
+add_library(empty-CXX empty.cxx)
+
 set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")
 add_library(MTd-C empty.c)
 add_library(MTd-CXX empty.cxx)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7db32efbab1c61e4b8032702eba5ac6d7768d531
commit 7db32efbab1c61e4b8032702eba5ac6d7768d531
Author:     Christian Pfeiffer <cpfeif...@live.de>
AuthorDate: Sat Apr 20 20:45:09 2019 +0200
Commit:     Christian Pfeiffer <cpfeif...@live.de>
CommitDate: Sat Apr 20 20:45:09 2019 +0200

    FindMPI: Don't retain libdirs for Win32
    
    On Windows systems, the need to retain library directories should not
    nomrally occur. This can only occur on Unix like systems where a shared
    library is being linked that has a dependency on another library which
    is not being found in the default directories (e.g. libgfortran on BSD)
    
    This also works around an issue introduced by !1694 in that the Visual
    Studio generator does not handle link flags passed in
    `INTERFACE_LINK_LIBRARIES` correctly, causing problems when using that
    generator with Intel MPI in certain circumstances.

diff --git a/Modules/FindMPI.cmake b/Modules/FindMPI.cmake
index 8c45a8c..5288640 100644
--- a/Modules/FindMPI.cmake
+++ b/Modules/FindMPI.cmake
@@ -770,18 +770,20 @@ function (_MPI_interrogate_compiler LANG)
   endforeach()
 
   # Add the link directories given explicitly that we haven't used back as 
linker directories.
-  foreach(_MPI_LINK_DIRECTORY IN LISTS MPI_LINK_DIRECTORIES_LEFTOVER)
-    file(TO_NATIVE_PATH "${_MPI_LINK_DIRECTORY}" _MPI_LINK_DIRECTORY_ACTUAL)
-    string(FIND "${_MPI_LINK_DIRECTORY_ACTUAL}" " " 
_MPI_LINK_DIRECTORY_CONTAINS_SPACE)
-    if(NOT _MPI_LINK_DIRECTORY_CONTAINS_SPACE EQUAL -1)
-      set(_MPI_LINK_DIRECTORY_ACTUAL "\"${_MPI_LINK_DIRECTORY_ACTUAL}\"")
-    endif()
-    if(MPI_LINK_FLAGS_WORK)
-      string(APPEND MPI_LINK_FLAGS_WORK " 
${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}")
-    else()
-      set(MPI_LINK_FLAGS_WORK 
"${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}")
-    endif()
-  endforeach()
+  if(NOT WIN32)
+    foreach(_MPI_LINK_DIRECTORY IN LISTS MPI_LINK_DIRECTORIES_LEFTOVER)
+      file(TO_NATIVE_PATH "${_MPI_LINK_DIRECTORY}" _MPI_LINK_DIRECTORY_ACTUAL)
+      string(FIND "${_MPI_LINK_DIRECTORY_ACTUAL}" " " 
_MPI_LINK_DIRECTORY_CONTAINS_SPACE)
+      if(NOT _MPI_LINK_DIRECTORY_CONTAINS_SPACE EQUAL -1)
+        set(_MPI_LINK_DIRECTORY_ACTUAL "\"${_MPI_LINK_DIRECTORY_ACTUAL}\"")
+      endif()
+      if(MPI_LINK_FLAGS_WORK)
+        string(APPEND MPI_LINK_FLAGS_WORK " 
${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}")
+      else()
+        set(MPI_LINK_FLAGS_WORK 
"${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}")
+      endif()
+    endforeach()
+  endif()
 
   # Deal with the libraries given with full path next
   unset(MPI_DIRECT_LIB_NAMES_WORK)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ce078dda79df1c8d9f142e45d2fa3cf971a09594
commit ce078dda79df1c8d9f142e45d2fa3cf971a09594
Author:     Robert Maynard <robert.mayn...@kitware.com>
AuthorDate: Wed Apr 3 14:42:35 2019 -0400
Commit:     Robert Maynard <robert.mayn...@kitware.com>
CommitDate: Fri Apr 19 13:52:50 2019 -0400

    Relax the usage of TARGET_OBJECTS generator expression
    
    The geneator expression can now be used with static, shared, and
    module libraries and executables.

diff --git a/Help/manual/cmake-generator-expressions.7.rst 
b/Help/manual/cmake-generator-expressions.7.rst
index 8cb0fe7..d1f779b 100644
--- a/Help/manual/cmake-generator-expressions.7.rst
+++ b/Help/manual/cmake-generator-expressions.7.rst
@@ -461,8 +461,7 @@ Output-Related Expressions
   Content of ``...`` converted to a C identifier.  The conversion follows the
   same behavior as :command:`string(MAKE_C_IDENTIFIER)`.
 ``$<TARGET_OBJECTS:objLib>``
-  List of objects resulting from build of ``objLib``. ``objLib`` must be an
-  object of type ``OBJECT_LIBRARY``.
+  List of objects resulting from build of ``objLib``.
 ``$<SHELL_PATH:...>``
   Content of ``...`` converted to shell path style. For example, slashes are
   converted to backslashes in Windows shells and drive letters are converted
diff --git a/Help/release/dev/relax-TARGET_OBJECTS-generator-expression.rst 
b/Help/release/dev/relax-TARGET_OBJECTS-generator-expression.rst
new file mode 100644
index 0000000..25ca0c9
--- /dev/null
+++ b/Help/release/dev/relax-TARGET_OBJECTS-generator-expression.rst
@@ -0,0 +1,5 @@
+relax-TARGET_OBJECTS-generator-expression
+-----------------------------------------
+
+* The ``TARGET_OBJECTS`` :manual:`generator expression 
<cmake-generator-expressions(7)>`
+  is now supported on ``SHARED``, ``STATIC``, ``MODULE`` libraries and 
executables.
diff --git a/Source/cmGeneratorExpressionNode.cxx 
b/Source/cmGeneratorExpressionNode.cxx
index 50413c8..7cef1c3 100644
--- a/Source/cmGeneratorExpressionNode.cxx
+++ b/Source/cmGeneratorExpressionNode.cxx
@@ -1525,10 +1525,16 @@ static const struct TargetObjectsNode : public 
cmGeneratorExpressionNode
       reportError(context, content->GetOriginalExpression(), e.str());
       return std::string();
     }
-    if (gt->GetType() != cmStateEnums::OBJECT_LIBRARY) {
+    cmStateEnums::TargetType type = gt->GetType();
+    if (type != cmStateEnums::EXECUTABLE &&
+        type != cmStateEnums::STATIC_LIBRARY &&
+        type != cmStateEnums::SHARED_LIBRARY &&
+        type != cmStateEnums::MODULE_LIBRARY &&
+        type != cmStateEnums::OBJECT_LIBRARY) {
       std::ostringstream e;
       e << "Objects of target \"" << tgtName
-        << "\" referenced but is not an OBJECT library.";
+        << "\" referenced but is not an allowed library types (EXECUTABLE, "
+        << "STATIC, SHARED, MODULE, OBJECT).";
       reportError(context, content->GetOriginalExpression(), e.str());
       return std::string();
     }
diff --git a/Tests/GeneratorExpression/CMakeLists.txt 
b/Tests/GeneratorExpression/CMakeLists.txt
index df0c78d..5ba0dc0 100644
--- a/Tests/GeneratorExpression/CMakeLists.txt
+++ b/Tests/GeneratorExpression/CMakeLists.txt
@@ -374,4 +374,49 @@ if(NOT CMAKE_GENERATOR STREQUAL Xcode OR NOT 
CMAKE_OSX_ARCHITECTURES MATCHES "[;
       -P "${CMAKE_CURRENT_SOURCE_DIR}/check_object_files.cmake"
     DEPENDS objlib
   )
+
+
+  add_library(sharedlib SHARED objlib1.c objlib2.c)
+  file(GENERATE
+    OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/sharedlib_files_$<CONFIGURATION>"
+    CONTENT "$<JOIN:$<TARGET_OBJECTS:sharedlib>,\n>\n"
+  )
+
+  add_custom_target(check_sharedlib_objs ALL
+    COMMAND ${CMAKE_COMMAND}
+      
"-DOBJLIB_LISTFILE=${CMAKE_CURRENT_BINARY_DIR}/sharedlib_files_$<CONFIGURATION>"
+      -DEXPECTED_NUM_OBJECTFILES=2
+      -P "${CMAKE_CURRENT_SOURCE_DIR}/check_object_files.cmake"
+    DEPENDS sharedlib
+  )
+
+
+  add_library(staticlib STATIC objlib1.c objlib2.c)
+  file(GENERATE
+    OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/staticlib_files_$<CONFIGURATION>"
+    CONTENT "$<JOIN:$<TARGET_OBJECTS:staticlib>,\n>\n"
+  )
+
+  add_custom_target(check_staticlib_objs ALL
+    COMMAND ${CMAKE_COMMAND}
+      
"-DOBJLIB_LISTFILE=${CMAKE_CURRENT_BINARY_DIR}/staticlib_files_$<CONFIGURATION>"
+      -DEXPECTED_NUM_OBJECTFILES=2
+      -P "${CMAKE_CURRENT_SOURCE_DIR}/check_object_files.cmake"
+    DEPENDS staticlib
+  )
+
+
+  add_executable(execobjs objlib1.c objlib2.c echo.c)
+  file(GENERATE
+    OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/execobjs_files_$<CONFIGURATION>"
+    CONTENT "$<JOIN:$<TARGET_OBJECTS:execobjs>,\n>\n"
+  )
+
+  add_custom_target(check_exec_objs ALL
+    COMMAND ${CMAKE_COMMAND}
+      
"-DOBJLIB_LISTFILE=${CMAKE_CURRENT_BINARY_DIR}/execobjs_files_$<CONFIGURATION>"
+      -DEXPECTED_NUM_OBJECTFILES=3
+      -P "${CMAKE_CURRENT_SOURCE_DIR}/check_object_files.cmake"
+    DEPENDS execobjs
+  )
 endif()
diff --git a/Tests/ObjectLibrary/CMakeLists.txt 
b/Tests/ObjectLibrary/CMakeLists.txt
index 4bffd12..7897ab9 100644
--- a/Tests/ObjectLibrary/CMakeLists.txt
+++ b/Tests/ObjectLibrary/CMakeLists.txt
@@ -62,4 +62,14 @@ add_custom_target(UseABinternalDep COMMAND ${CMAKE_COMMAND} 
-E touch UseABintern
 add_custom_command(TARGET UseABinternal POST_BUILD COMMAND ${CMAKE_COMMAND} -P 
UseABinternalDep.cmake)
 add_dependencies(UseABinternal UseABinternalDep)
 
+# Test a static library with sources from a different static library
+add_library(UseCstaticObjs STATIC $<TARGET_OBJECTS:Cstatic> 
$<TARGET_OBJECTS:A> $<TARGET_OBJECTS:Bexport>)
+
+# Test a shared library with sources from a different shared library
+add_library(UseCsharedObjs SHARED $<TARGET_OBJECTS:Cshared> 
$<TARGET_OBJECTS:A> $<TARGET_OBJECTS:Bexport>)
+
+# Test a shared executable with sources from a different shared library
+add_executable(UseABstaticObjs $<TARGET_OBJECTS:UseABstatic>)
+target_link_libraries(UseABstaticObjs ABstatic)
+
 add_subdirectory(ExportLanguages)
diff --git a/Tests/RunCMake/File_Generate/OutputNameMatchesObjects-stderr.txt 
b/Tests/RunCMake/File_Generate/OutputNameMatchesObjects-stderr.txt
index b08ef5a..4c2e35f 100644
--- a/Tests/RunCMake/File_Generate/OutputNameMatchesObjects-stderr.txt
+++ b/Tests/RunCMake/File_Generate/OutputNameMatchesObjects-stderr.txt
@@ -3,6 +3,7 @@ CMake Error at OutputNameMatchesObjects.cmake:[0-9]+ \(file\):
 
     \$<TARGET_OBJECTS:foo>
 
-  Objects of target "foo" referenced but is not an OBJECT library.
+  Objects of target "foo" referenced but is not an allowed library types
+  \(EXECUTABLE, STATIC, SHARED, MODULE, OBJECT\).
 Call Stack \(most recent call first\):
   CMakeLists.txt:[0-9]+ \(include\)
diff --git a/Tests/RunCMake/File_Generate/OutputNameMatchesObjects.cmake 
b/Tests/RunCMake/File_Generate/OutputNameMatchesObjects.cmake
index daa7c49..84825fe 100644
--- a/Tests/RunCMake/File_Generate/OutputNameMatchesObjects.cmake
+++ b/Tests/RunCMake/File_Generate/OutputNameMatchesObjects.cmake
@@ -1,11 +1,8 @@
 enable_language(CXX)
 
 file(GENERATE
-  OUTPUT 
"${CMAKE_CURRENT_BINARY_DIR}/$<BOOL:$<TARGET_OBJECTS:foo>>somefile.cpp"
+  OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/$<LOWER_CASE:$<CONFIG>/somefile.cpp"
   CONTENT "static const char content[] = \"$<TARGET_OBJECTS:foo>\";\n"
 )
 
-add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/input.txt"
-  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/input.txt" 
"${CMAKE_CURRENT_BINARY_DIR}")
-
-add_executable(foo empty.cpp "${CMAKE_CURRENT_BINARY_DIR}/1somefile.cpp" 
"${CMAKE_CURRENT_BINARY_DIR}/input.txt")
+add_library(foo INTERFACE )
diff --git a/Tests/RunCMake/ObjectLibrary/BadSourceExpression3-stderr.txt 
b/Tests/RunCMake/ObjectLibrary/BadSourceExpression3-stderr.txt
index 838b3d8..4dbd861 100644
--- a/Tests/RunCMake/ObjectLibrary/BadSourceExpression3-stderr.txt
+++ b/Tests/RunCMake/ObjectLibrary/BadSourceExpression3-stderr.txt
@@ -3,6 +3,7 @@ CMake Error at BadSourceExpression3.cmake:2 \(add_library\):
 
     \$<TARGET_OBJECTS:NotObjLib>
 
-  Objects of target "NotObjLib" referenced but is not an OBJECT library.
+  Objects of target "NotObjLib" referenced but is not an allowed library
+  types \(EXECUTABLE, STATIC, SHARED, MODULE, OBJECT\).
 Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)
+  CMakeLists.txt:[0-9]+ \(include\)
diff --git a/Tests/RunCMake/ObjectLibrary/BadSourceExpression3.cmake 
b/Tests/RunCMake/ObjectLibrary/BadSourceExpression3.cmake
index c3d9a62..4e07ea6 100644
--- a/Tests/RunCMake/ObjectLibrary/BadSourceExpression3.cmake
+++ b/Tests/RunCMake/ObjectLibrary/BadSourceExpression3.cmake
@@ -1,2 +1,2 @@
-add_library(NotObjLib STATIC a.c)
+add_library(NotObjLib INTERFACE)
 add_library(A STATIC a.c $<TARGET_OBJECTS:NotObjLib>)
diff --git a/Tests/RunCMake/ObjectLibrary/CheckTargetObjects.cmake 
b/Tests/RunCMake/ObjectLibrary/CheckTargetObjects.cmake
new file mode 100644
index 0000000..0c85c72
--- /dev/null
+++ b/Tests/RunCMake/ObjectLibrary/CheckTargetObjects.cmake
@@ -0,0 +1,32 @@
+add_library(StaticLib STATIC a.c)
+
+add_custom_command(TARGET StaticLib POST_BUILD
+  VERBATIM
+  COMMAND ${CMAKE_COMMAND}
+    "-DTARGET_OBJECTS=$<TARGET_OBJECTS:StaticLib>"
+    -DEXPECTED_NUM_OBJECTFILES=2
+    -P "${CMAKE_CURRENT_SOURCE_DIR}/check_object_files.cmake"
+  )
+
+add_library(SharedLib SHARED a.c b.c)
+target_compile_definitions(SharedLib PRIVATE REQUIRED)
+
+add_custom_command(TARGET SharedLib POST_BUILD
+  VERBATIM
+  COMMAND ${CMAKE_COMMAND}
+    "-DTARGET_OBJECTS:STRING=$<TARGET_OBJECTS:SharedLib>"
+    -DEXPECTED_NUM_OBJECTFILES=2
+    -P "${CMAKE_CURRENT_SOURCE_DIR}/check_object_files.cmake"
+  )
+
+add_executable(ExecObjs a.c b.c exe.c)
+target_compile_definitions(ExecObjs PRIVATE REQUIRED)
+
+add_custom_target(check_exec_objs ALL
+  VERBATIM
+  COMMAND ${CMAKE_COMMAND}
+    "-DTARGET_OBJECTS=$<TARGET_OBJECTS:ExecObjs>"
+    -DEXPECTED_NUM_OBJECTFILES=3
+    -P "${CMAKE_CURRENT_SOURCE_DIR}/check_object_files.cmake"
+  DEPENDS ExecObjs
+  )
diff --git a/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake 
b/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake
index 6ca33b8..5ec4018 100644
--- a/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake
+++ b/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake
@@ -37,6 +37,10 @@ function (run_object_lib_build2 name)
   run_cmake_command(${name}-build ${CMAKE_COMMAND} --build .)
 endfunction ()
 
+if(NOT (RunCMake_GENERATOR STREQUAL "Xcode" AND 
"$ENV{CMAKE_OSX_ARCHITECTURES}" MATCHES "[;$]"))
+  run_object_lib_build(CheckTargetObjects)
+endif()
+
 run_object_lib_build(LinkObjLHSShared)
 run_object_lib_build(LinkObjLHSStatic)
 run_object_lib_build(LinkObjRHSShared)
@@ -54,6 +58,7 @@ run_cmake(PostBuild)
 run_cmake(PreBuild)
 run_cmake(PreLink)
 
+
 function(run_Dependencies)
   set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Dependencies-build)
   set(RunCMake_TEST_NO_CLEAN 1)
diff --git a/Tests/RunCMake/ObjectLibrary/check_object_files.cmake 
b/Tests/RunCMake/ObjectLibrary/check_object_files.cmake
new file mode 100644
index 0000000..3c34229
--- /dev/null
+++ b/Tests/RunCMake/ObjectLibrary/check_object_files.cmake
@@ -0,0 +1,17 @@
+
+if (NOT TARGET_OBJECTS)
+  message(SEND_ERROR "Object not passed as -DTARGET_OBJECTS")
+endif()
+
+foreach(objlib_file IN LISTS objects)
+  message(STATUS "objlib_file: =${objlib_file}=")
+
+  set(file_exists False)
+  if (EXISTS "${objlib_file}")
+    set(file_exists True)
+  endif()
+
+  if (NOT file_exists)
+    message(SEND_ERROR "File \"${objlib_file}\" does not exist!${tried}")
+  endif()
+endforeach()
diff --git a/Tests/RunCMake/TargetObjects/NotObjlibTarget-stderr.txt 
b/Tests/RunCMake/TargetObjects/NotObjlibTarget-stderr.txt
index a66794c..77c4afd 100644
--- a/Tests/RunCMake/TargetObjects/NotObjlibTarget-stderr.txt
+++ b/Tests/RunCMake/TargetObjects/NotObjlibTarget-stderr.txt
@@ -1,8 +1,9 @@
-CMake Error at NotObjlibTarget.cmake:3 \(file\):
+CMake Error at NotObjlibTarget.cmake:[0-9]+ \(file\):
   Error evaluating generator expression:
 
-    \$<TARGET_OBJECTS:StaticLib>
+    \$<TARGET_OBJECTS:IFaceLib>
 
-  Objects of target "StaticLib" referenced but is not an OBJECT library.
+  Objects of target "IFaceLib" referenced but is not an allowed library types
+  \(EXECUTABLE, STATIC, SHARED, MODULE, OBJECT\).
 Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)
+  CMakeLists.txt:[0-9]+ \(include\)
diff --git a/Tests/RunCMake/TargetObjects/NotObjlibTarget.cmake 
b/Tests/RunCMake/TargetObjects/NotObjlibTarget.cmake
index 3bb3e37..9fec369 100644
--- a/Tests/RunCMake/TargetObjects/NotObjlibTarget.cmake
+++ b/Tests/RunCMake/TargetObjects/NotObjlibTarget.cmake
@@ -1,3 +1,3 @@
-add_library(StaticLib empty.cpp)
+add_library(IFaceLib INTERFACE )
 
-file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/test_output CONTENT 
$<TARGET_OBJECTS:StaticLib>)
+file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/test_output CONTENT 
$<TARGET_OBJECTS:IFaceLib>)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=044dcf9f8d2bfb10825627f7e18456a1679d5ab6
commit 044dcf9f8d2bfb10825627f7e18456a1679d5ab6
Author:     Bill Hoffman <bill.hoff...@kitware.com>
AuthorDate: Fri Mar 29 16:39:44 2019 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Fri Apr 19 13:32:08 2019 -0400

    execute_process: Add option to echo command lines
    
    Add COMMAND_ECHO option to the execute_process command. This will allow
    execute_process to show the command it will run. Also add a cmake variable
    CMAKE_EXECUTE_PROCESS_COMMAND_ECHO. Both the option and the variable can
    be set to one of the following: STDERR|STDOUT|NONE. The command will be
    printed to stderr or stdout or not at all.
    
    Fixes: #18933

diff --git a/Help/command/execute_process.rst b/Help/command/execute_process.rst
index 2d71352..e6ad037 100644
--- a/Help/command/execute_process.rst
+++ b/Help/command/execute_process.rst
@@ -18,6 +18,7 @@ Execute one or more child processes.
                   [ERROR_FILE <file>]
                   [OUTPUT_QUIET]
                   [ERROR_QUIET]
+                  [COMMAND_ECHO <where>]
                   [OUTPUT_STRIP_TRAILING_WHITESPACE]
                   [ERROR_STRIP_TRAILING_WHITESPACE]
                   [ENCODING <name>])
@@ -77,6 +78,10 @@ Options:
 ``OUTPUT_QUIET``, ``ERROR_QUIET``
  The standard output or standard error results will be quietly ignored.
 
+``COMMAND_ECHO <where>``
+ The command being run will be echo'ed to ``<where>`` with ``<where>``
+ being set to ``STDERR``|``STDOUT``|``NONE``.
+
 ``ENCODING <name>``
  On Windows, the encoding that is used to decode output from the process.
  Ignored on other platforms.
diff --git a/Help/manual/cmake-variables.7.rst 
b/Help/manual/cmake-variables.7.rst
index 18dd9d7..0863c15 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -158,6 +158,7 @@ Variables that Change Behavior
    /variable/CMAKE_ECLIPSE_VERSION
    /variable/CMAKE_ERROR_DEPRECATED
    /variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
+   /variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO
    /variable/CMAKE_EXPORT_COMPILE_COMMANDS
    /variable/CMAKE_EXPORT_PACKAGE_REGISTRY
    /variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY
diff --git a/Help/release/dev/add-execute_process-command-echo.rst 
b/Help/release/dev/add-execute_process-command-echo.rst
new file mode 100644
index 0000000..a44e40e
--- /dev/null
+++ b/Help/release/dev/add-execute_process-command-echo.rst
@@ -0,0 +1,6 @@
+add-execute_process-command-echo
+--------------------------------
+
+* The :command:`execute_process` command gained a `COMMAND_ECHO` option
+  and supporting :variable:`CMAKE_EXECUTE_PROCESS_COMMAND_ECHO` variable
+  to enable echoing of the command-line string before execution.
diff --git a/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst 
b/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
new file mode 100644
index 0000000..4a3121c
--- /dev/null
+++ b/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
@@ -0,0 +1,6 @@
+CMAKE_EXECUTE_PROCESS_COMMAND_ECHO
+----------------------------------
+
+If this variable is set to ``STDERR``|``STDOUT``|``NONE`` then commands in
+:command:`execute_process` calls will be printed to either stderr or stdout
+or not at all.
diff --git a/Source/cmExecuteProcessCommand.cxx 
b/Source/cmExecuteProcessCommand.cxx
index de58c0b..0d9859e 100644
--- a/Source/cmExecuteProcessCommand.cxx
+++ b/Source/cmExecuteProcessCommand.cxx
@@ -6,11 +6,13 @@
 #include "cmsys/Process.h"
 #include <algorithm>
 #include <ctype.h> /* isspace */
+#include <iostream>
 #include <stdio.h>
 
 #include "cmAlgorithms.h"
 #include "cmArgumentParser.h"
 #include "cmMakefile.h"
+#include "cmMessageType.h"
 #include "cmProcessOutput.h"
 #include "cmSystemTools.h"
 
@@ -47,6 +49,7 @@ bool 
cmExecuteProcessCommand::InitialPass(std::vector<std::string> const& args,
     std::string OutputFile;
     std::string ErrorFile;
     std::string Timeout;
+    std::string CommandEcho;
     bool OutputQuiet = false;
     bool ErrorQuiet = false;
     bool OutputStripTrailingWhitespace = false;
@@ -57,6 +60,7 @@ bool 
cmExecuteProcessCommand::InitialPass(std::vector<std::string> const& args,
   static auto const parser =
     cmArgumentParser<Arguments>{}
       .Bind("COMMAND"_s, &Arguments::Commands)
+      .Bind("COMMAND_ECHO"_s, &Arguments::CommandEcho)
       .Bind("OUTPUT_VARIABLE"_s, &Arguments::OutputVariable)
       .Bind("ERROR_VARIABLE"_s, &Arguments::ErrorVariable)
       .Bind("RESULT_VARIABLE"_s, &Arguments::ResultVariable)
@@ -117,7 +121,6 @@ bool 
cmExecuteProcessCommand::InitialPass(std::vector<std::string> const& args,
       return false;
     }
   }
-
   // Create a process instance.
   std::unique_ptr<cmsysProcess, void (*)(cmsysProcess*)> cp_ptr(
     cmsysProcess_New(), cmsysProcess_Delete);
@@ -171,6 +174,51 @@ bool 
cmExecuteProcessCommand::InitialPass(std::vector<std::string> const& args,
     cmsysProcess_SetTimeout(cp, timeout);
   }
 
+  bool echo_stdout = false;
+  bool echo_stderr = false;
+  bool echo_output_from_variable = true;
+  std::string echo_output =
+    this->Makefile->GetSafeDefinition("CMAKE_EXECUTE_PROCESS_COMMAND_ECHO");
+  if (!arguments.CommandEcho.empty()) {
+    echo_output_from_variable = false;
+    echo_output = arguments.CommandEcho;
+  }
+
+  if (!echo_output.empty()) {
+    if (echo_output == "STDERR") {
+      echo_stderr = true;
+    } else if (echo_output == "STDOUT") {
+      echo_stdout = true;
+    } else if (echo_output != "NONE") {
+      std::string error;
+      if (echo_output_from_variable) {
+        error = "CMAKE_EXECUTE_PROCESS_COMMAND_ECHO set to '";
+      } else {
+        error = " called with '";
+      }
+      error += echo_output;
+      error += "' expected STDERR|STDOUT|NONE";
+      if (!echo_output_from_variable) {
+        error += " for COMMAND_ECHO.";
+      }
+      this->Makefile->IssueMessage(MessageType::FATAL_ERROR, error);
+      return true;
+    }
+  }
+  if (echo_stdout || echo_stderr) {
+    std::string command;
+    for (auto& cmd : arguments.Commands) {
+      command += "'";
+      command += cmJoin(cmd, "' '");
+      command += "'";
+      command += "\n";
+    }
+    if (echo_stdout) {
+      std::cout << command;
+    } else if (echo_stderr) {
+      std::cerr << command;
+    }
+  }
   // Start the process.
   cmsysProcess_Execute(cp);
 
diff --git a/Tests/RunCMake/execute_process/EchoCommand-result.txt 
b/Tests/RunCMake/execute_process/EchoCommand-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/execute_process/EchoCommand-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/execute_process/EchoCommand-stderr.txt 
b/Tests/RunCMake/execute_process/EchoCommand-stderr.txt
new file mode 100644
index 0000000..f10ece8
--- /dev/null
+++ b/Tests/RunCMake/execute_process/EchoCommand-stderr.txt
@@ -0,0 +1,5 @@
+.*cmake.*-E' 'echo' '--   2 COMMAND_ECHO STDERR'
+.*cmake.*-E' 'echo' '--   4 COMMAND_ECHO STDERR'
+.*cmake.*-E' 'echo' '--   8 COMMAND_ECHO STDOUT COMMAND_ECHO STDERR'
+CMake Error at .*EchoCommand.cmake:.* \(execute_process\):
+   CMAKE_EXECUTE_PROCESS_COMMAND_ECHO set to 'BAD' expected STDERR|STDOUT|NONE$
diff --git a/Tests/RunCMake/execute_process/EchoCommand-stdout.txt 
b/Tests/RunCMake/execute_process/EchoCommand-stdout.txt
new file mode 100644
index 0000000..0954b3b
--- /dev/null
+++ b/Tests/RunCMake/execute_process/EchoCommand-stdout.txt
@@ -0,0 +1,12 @@
+.*cmake.*-E' 'echo' '--   1 COMMAND_ECHO STDOUT'
+--   1 COMMAND_ECHO STDOUT
+--   2 COMMAND_ECHO STDERR
+.*cmake.* '-E' 'echo' '--   3 COMMAND_ECHO STDOUT'
+--   3 COMMAND_ECHO STDOUT
+--   4 COMMAND_ECHO STDERR
+.*cmake.* '-E' 'echo' '--   5 COMMAND_ECHO STDOUT'
+--   5 COMMAND_ECHO STDOUT
+--   6 COMMAND_ECHO NONE
+.*cmake.* '-E' 'echo' '--   7 COMMAND_ECHO STDERR COMMAND_ECHO STDOUT'
+--   7 COMMAND_ECHO STDERR COMMAND_ECHO STDOUT
+--   8 COMMAND_ECHO STDOUT COMMAND_ECHO STDERR$
diff --git a/Tests/RunCMake/execute_process/EchoCommand.cmake 
b/Tests/RunCMake/execute_process/EchoCommand.cmake
new file mode 100644
index 0000000..9c7d13d
--- /dev/null
+++ b/Tests/RunCMake/execute_process/EchoCommand.cmake
@@ -0,0 +1,41 @@
+if(CHECK_ERROR_OUTPUT_LOCATION)
+  execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+    "--   1 COMMAND_ECHO " COMMAND_ECHO  )
+endif()
+# test COMMAND_ECHO STDOUT
+execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+  "--   1 COMMAND_ECHO STDOUT" COMMAND_ECHO STDOUT )
+# test COMMAND_ECHO STDERR
+execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+  "--   2 COMMAND_ECHO STDERR" COMMAND_ECHO STDERR )
+# test CMAKE_EXECUTE_PROCESS_COMMAND_ECHO STDOUT
+set(CMAKE_EXECUTE_PROCESS_COMMAND_ECHO STDOUT)
+execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+  "--   3 COMMAND_ECHO STDOUT" )
+# test CMAKE_EXECUTE_PROCESS_COMMAND_ECHO STDERR
+set(CMAKE_EXECUTE_PROCESS_COMMAND_ECHO STDERR)
+execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+  "--   4 COMMAND_ECHO STDERR" )
+# make sure local will override global settings
+execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+  "--   5 COMMAND_ECHO STDOUT" COMMAND_ECHO STDOUT )
+execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+  "--   6 COMMAND_ECHO NONE" COMMAND_ECHO NONE)
+# test both and make sure override works
+execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+  "--   7 COMMAND_ECHO STDERR COMMAND_ECHO STDOUT" COMMAND_ECHO STDERR
+  COMMAND_ECHO STDOUT)
+execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+  "--   8 COMMAND_ECHO STDOUT COMMAND_ECHO STDERR" COMMAND_ECHO STDOUT
+  COMMAND_ECHO STDERR)
+
+# check for bad arguments to global and local
+if(CHECK_GLOBAL)
+  # make sure a non STDERR or STDOUT value is an error
+  set(CMAKE_EXECUTE_PROCESS_COMMAND_ECHO BAD)
+  execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+    "--   9 - 1 CMAKE_EXECUTE_PROCESS_COMMAND_ECHO BAD" )
+else()
+  execute_process(COMMAND ${CMAKE_COMMAND} -E echo
+    "--   9 - 2 COMMAND_ECHO BAD" COMMAND_ECHO BAD)
+endif()
diff --git a/Tests/RunCMake/execute_process/EchoCommand2-result.txt 
b/Tests/RunCMake/execute_process/EchoCommand2-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/execute_process/EchoCommand2-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/execute_process/EchoCommand2-stderr.txt 
b/Tests/RunCMake/execute_process/EchoCommand2-stderr.txt
new file mode 100644
index 0000000..4ae01c4
--- /dev/null
+++ b/Tests/RunCMake/execute_process/EchoCommand2-stderr.txt
@@ -0,0 +1,5 @@
+.*cmake.*-E' 'echo' '--   2 COMMAND_ECHO STDERR'
+.*cmake.*-E' 'echo' '--   4 COMMAND_ECHO STDERR'
+.*cmake.*-E' 'echo' '--   8 COMMAND_ECHO STDOUT COMMAND_ECHO STDERR'
+CMake Error at .*EchoCommand.cmake:.* \(execute_process\):
+    called with 'BAD' expected STDERR|STDOUT|NONE for COMMAND_ECHO.$
diff --git a/Tests/RunCMake/execute_process/EchoCommand2-stdout.txt 
b/Tests/RunCMake/execute_process/EchoCommand2-stdout.txt
new file mode 100644
index 0000000..0954b3b
--- /dev/null
+++ b/Tests/RunCMake/execute_process/EchoCommand2-stdout.txt
@@ -0,0 +1,12 @@
+.*cmake.*-E' 'echo' '--   1 COMMAND_ECHO STDOUT'
+--   1 COMMAND_ECHO STDOUT
+--   2 COMMAND_ECHO STDERR
+.*cmake.* '-E' 'echo' '--   3 COMMAND_ECHO STDOUT'
+--   3 COMMAND_ECHO STDOUT
+--   4 COMMAND_ECHO STDERR
+.*cmake.* '-E' 'echo' '--   5 COMMAND_ECHO STDOUT'
+--   5 COMMAND_ECHO STDOUT
+--   6 COMMAND_ECHO NONE
+.*cmake.* '-E' 'echo' '--   7 COMMAND_ECHO STDERR COMMAND_ECHO STDOUT'
+--   7 COMMAND_ECHO STDERR COMMAND_ECHO STDOUT
+--   8 COMMAND_ECHO STDOUT COMMAND_ECHO STDERR$
diff --git a/Tests/RunCMake/execute_process/EchoCommand3-result.txt 
b/Tests/RunCMake/execute_process/EchoCommand3-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/execute_process/EchoCommand3-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/execute_process/EchoCommand3-stderr.txt 
b/Tests/RunCMake/execute_process/EchoCommand3-stderr.txt
new file mode 100644
index 0000000..e27f1e6
--- /dev/null
+++ b/Tests/RunCMake/execute_process/EchoCommand3-stderr.txt
@@ -0,0 +1,2 @@
+CMake Error at .*EchoCommand.cmake:.*\(execute_process\):
+  execute_process called with no value for COMMAND_ECHO.
diff --git a/Tests/RunCMake/execute_process/RunCMakeTest.cmake 
b/Tests/RunCMake/execute_process/RunCMakeTest.cmake
index cb40b40..b203aab 100644
--- a/Tests/RunCMake/execute_process/RunCMakeTest.cmake
+++ b/Tests/RunCMake/execute_process/RunCMakeTest.cmake
@@ -16,3 +16,11 @@ endif()
 if(EXIT_CODE_EXE)
   run_cmake_command(ExitValues ${CMAKE_COMMAND} 
-DEXIT_CODE_EXE=${EXIT_CODE_EXE} -P ${RunCMake_SOURCE_DIR}/ExitValues.cmake)
 endif()
+
+run_cmake_command(EchoCommand ${CMAKE_COMMAND} -DCHECK_GLOBAL=TRUE
+  -P ${RunCMake_SOURCE_DIR}/EchoCommand.cmake)
+run_cmake_command(EchoCommand2 ${CMAKE_COMMAND} -P
+  ${RunCMake_SOURCE_DIR}/EchoCommand.cmake)
+run_cmake_command(EchoCommand3 ${CMAKE_COMMAND}
+  -DCHECK_ERROR_OUTPUT_LOCATION=TRUE -P
+  ${RunCMake_SOURCE_DIR}/EchoCommand.cmake)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d350fb688954f476d8df79bf582cf366b5861dd2
commit d350fb688954f476d8df79bf582cf366b5861dd2
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Fri Apr 19 13:31:52 2019 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Fri Apr 19 13:32:08 2019 -0400

    execute_process: Manage KWSys Process lifetime with unique_ptr

diff --git a/Source/cmExecuteProcessCommand.cxx 
b/Source/cmExecuteProcessCommand.cxx
index ff6340f..de58c0b 100644
--- a/Source/cmExecuteProcessCommand.cxx
+++ b/Source/cmExecuteProcessCommand.cxx
@@ -119,7 +119,9 @@ bool 
cmExecuteProcessCommand::InitialPass(std::vector<std::string> const& args,
   }
 
   // Create a process instance.
-  cmsysProcess* cp = cmsysProcess_New();
+  std::unique_ptr<cmsysProcess, void (*)(cmsysProcess*)> cp_ptr(
+    cmsysProcess_New(), cmsysProcess_Delete);
+  cmsysProcess* cp = cp_ptr.get();
 
   // Set the command sequence.
   for (std::vector<std::string> const& cmd : arguments.Commands) {
@@ -297,9 +299,6 @@ bool 
cmExecuteProcessCommand::InitialPass(std::vector<std::string> const& args,
     }
   }
 
-  // Delete the process instance.
-  cmsysProcess_Delete(cp);
-
   return true;
 }
 

-----------------------------------------------------------------------

Summary of changes:
 Help/command/execute_process.rst                   |  5 ++
 Help/manual/cmake-generator-expressions.7.rst      |  3 +-
 Help/manual/cmake-server.7.rst                     |  5 ++
 Help/manual/cmake-variables.7.rst                  |  1 +
 Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt      |  5 ++
 .../dev/add-execute_process-command-echo.rst       |  6 +++
 .../relax-TARGET_OBJECTS-generator-expression.rst  |  5 ++
 Help/release/dev/server-deprecate.rst              |  6 +++
 .../CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst         |  6 +++
 Modules/FindMPI.cmake                              | 26 +++++-----
 Source/cmExecuteProcessCommand.cxx                 | 57 ++++++++++++++++++++--
 Source/cmGeneratorExpressionNode.cxx               | 10 +++-
 Source/cmServerProtocol.cxx                        |  5 ++
 Tests/GeneratorExpression/CMakeLists.txt           | 45 +++++++++++++++++
 Tests/MSVCRuntimeLibrary/CMakeLists.txt            | 15 ++++++
 Tests/ObjectLibrary/CMakeLists.txt                 | 10 ++++
 .../OutputNameMatchesObjects-stderr.txt            |  3 +-
 .../File_Generate/OutputNameMatchesObjects.cmake   |  7 +--
 .../ObjectLibrary/BadSourceExpression3-stderr.txt  |  5 +-
 .../ObjectLibrary/BadSourceExpression3.cmake       |  2 +-
 .../ObjectLibrary/CheckTargetObjects.cmake         | 32 ++++++++++++
 Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake    |  5 ++
 .../ObjectLibrary/check_object_files.cmake         | 17 +++++++
 .../TargetObjects/NotObjlibTarget-stderr.txt       |  9 ++--
 Tests/RunCMake/TargetObjects/NotObjlibTarget.cmake |  4 +-
 .../VS10Project/RuntimeLibrary-check.cmake         |  4 +-
 Tests/RunCMake/VS10Project/RuntimeLibrary.cmake    |  4 ++
 .../EchoCommand-result.txt}                        |  0
 .../execute_process/EchoCommand-stderr.txt         |  5 ++
 .../execute_process/EchoCommand-stdout.txt         | 12 +++++
 Tests/RunCMake/execute_process/EchoCommand.cmake   | 41 ++++++++++++++++
 .../EchoCommand2-result.txt}                       |  0
 .../execute_process/EchoCommand2-stderr.txt        |  5 ++
 .../execute_process/EchoCommand2-stdout.txt        | 12 +++++
 .../EchoCommand3-result.txt}                       |  0
 .../execute_process/EchoCommand3-stderr.txt        |  2 +
 Tests/RunCMake/execute_process/RunCMakeTest.cmake  |  8 +++
 37 files changed, 350 insertions(+), 37 deletions(-)
 create mode 100644 Help/release/dev/add-execute_process-command-echo.rst
 create mode 100644 
Help/release/dev/relax-TARGET_OBJECTS-generator-expression.rst
 create mode 100644 Help/release/dev/server-deprecate.rst
 create mode 100644 Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
 create mode 100644 Tests/RunCMake/ObjectLibrary/CheckTargetObjects.cmake
 create mode 100644 Tests/RunCMake/ObjectLibrary/check_object_files.cmake
 copy Tests/RunCMake/{while/MissingArgument-result.txt => 
execute_process/EchoCommand-result.txt} (100%)
 create mode 100644 Tests/RunCMake/execute_process/EchoCommand-stderr.txt
 create mode 100644 Tests/RunCMake/execute_process/EchoCommand-stdout.txt
 create mode 100644 Tests/RunCMake/execute_process/EchoCommand.cmake
 copy Tests/RunCMake/{while/MissingArgument-result.txt => 
execute_process/EchoCommand2-result.txt} (100%)
 create mode 100644 Tests/RunCMake/execute_process/EchoCommand2-stderr.txt
 create mode 100644 Tests/RunCMake/execute_process/EchoCommand2-stdout.txt
 copy Tests/RunCMake/{while/MissingArgument-result.txt => 
execute_process/EchoCommand3-result.txt} (100%)
 create mode 100644 Tests/RunCMake/execute_process/EchoCommand3-stderr.txt


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
https://cmake.org/mailman/listinfo/cmake-commits

Reply via email to