summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-02-08 15:32:52 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2016-02-08 15:32:52 (GMT)
commit037738ac194a7e50c92ffda60eaca707bb35bac9 (patch)
tree0de71516e3eba6770fe8c129399e6da6537d7654 /Modules
parentccb2a26095b3d49c899e935da23af41eb21f2c51 (diff)
parent1b9d15c1e7adff5170f10d488483e1dc4e99d507 (diff)
downloadCMake-037738ac194a7e50c92ffda60eaca707bb35bac9.zip
CMake-037738ac194a7e50c92ffda60eaca707bb35bac9.tar.gz
CMake-037738ac194a7e50c92ffda60eaca707bb35bac9.tar.bz2
Merge topic 'ExternalProject-build-config-compat'
1b9d15c1 ExternalProject: Be compatible with projects setting CMAKE_CFG_INTDIR
Diffstat (limited to 'Modules')
-rw-r--r--Modules/ExternalProject.cmake19
1 files changed, 17 insertions, 2 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index 7070dc4..249658d 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -1231,7 +1231,22 @@ 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})
+ message(AUTHOR_WARNING "CMAKE_CFG_INTDIR should not be set by project code.\n"
+ "To get a non-default build command, use the BUILD_COMMAND option.")
+ else()
+ set(config $<CONFIG>)
+ endif()
+ list(APPEND args --config ${config})
endif()
if(step STREQUAL "INSTALL")
list(APPEND args --target install)
@@ -1241,7 +1256,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()