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, next has been updated
       via  3748be6afa12f0f0d7d3b51ee44d7908e86a19bd (commit)
       via  265f4288be6429656824928243d7390401f4c882 (commit)
      from  ea896482b563918c9d839577adab1ee926893bcd (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=3748be6afa12f0f0d7d3b51ee44d7908e86a19bd
commit 3748be6afa12f0f0d7d3b51ee44d7908e86a19bd
Merge: ea89648 265f428
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Fri Feb 5 14:38:38 2016 -0500
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Fri Feb 5 14:38:38 2016 -0500

    Merge topic 'ExternalProject-build-config-compat' into next
    
    265f4288 ExternalProject: Be compatible with projects setting 
CMAKE_CFG_INTDIR


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=265f4288be6429656824928243d7390401f4c882
commit 265f4288be6429656824928243d7390401f4c882
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Fri Feb 5 14:18:01 2016 -0500
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Fri Feb 5 14:28:42 2016 -0500

    ExternalProject: Be compatible with projects setting CMAKE_CFG_INTDIR
    
    Since commit v3.5.0-rc1~32^2~1 (ExternalProject: Simplify `cmake
    --build` configuration passing, 2016-01-19) we use the `$<CONFIG>`
    generator expression to generate the `cmake --build . --config <config>`
    value for the default BUILD_COMMAND instead of the CMAKE_CFG_INTDIR
    placeholder value provided by multi-config generators.  However, some
    projects have been abusing the old implementation detail by setting
    CMAKE_CFG_INTDIR themselves to get a specific configuration.  Those
    projects should be updated to set their own BUILD_COMMAND to get
    non-default behavior.  Meanwhile we can be compatible with their
    existing releases by detecting when CMAKE_CFG_INTDIR is not a
    generator-provided placeholder and using its value instead.

diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index 7070dc4..8b5e90f 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -1231,7 +1231,20 @@ function(_ep_get_build_command name step cmd_var)
         endif()
         set(args --build ".")
         if(CMAKE_CONFIGURATION_TYPES)
-          list(APPEND args --config $<CONFIG>)
+          if (CMAKE_CFG_INTDIR AND
+              NOT CMAKE_CFG_INTDIR STREQUAL "." AND
+              NOT CMAKE_CFG_INTDIR MATCHES "\\$")
+            # CMake 3.4 and below used the CMAKE_CFG_INTDIR placeholder value
+            # provided by multi-configuration generators.  Some projects were
+            # taking advantage of that undocumented implementation detail to
+            # specify a specific configuration here.  They should use
+            # BUILD_COMMAND to change the default command instead, but for
+            # compatibility honor the value.
+            set(config ${CMAKE_CFG_INTDIR})
+          else()
+            set(config $<CONFIG>)
+          endif()
+          list(APPEND args --config ${config})
         endif()
         if(step STREQUAL "INSTALL")
           list(APPEND args --target install)
@@ -1241,7 +1254,7 @@ function(_ep_get_build_command name step cmd_var)
           string(REGEX REPLACE "^(.*/)cmake([^/]*)$" "\\1ctest\\2" cmd 
"${cmd}")
           set(args "")
           if(CMAKE_CONFIGURATION_TYPES)
-            list(APPEND args -C $<CONFIG>)
+            list(APPEND args -C ${config})
           endif()
         endif()
       endif()

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

Summary of changes:
 Modules/ExternalProject.cmake |   17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to