diff options
author | Brad King <brad.king@kitware.com> | 2016-02-08 15:32:52 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-02-08 15:32:52 (GMT) |
commit | 037738ac194a7e50c92ffda60eaca707bb35bac9 (patch) | |
tree | 0de71516e3eba6770fe8c129399e6da6537d7654 /Modules | |
parent | ccb2a26095b3d49c899e935da23af41eb21f2c51 (diff) | |
parent | 1b9d15c1e7adff5170f10d488483e1dc4e99d507 (diff) | |
download | CMake-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.cmake | 19 |
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() |