Merge topic 'ExternalProject-build-config-compat'
1b9d15c1
ExternalProject: Be compatible with projects setting CMAKE_CFG_INTDIR
This commit is contained in:
commit
037738ac19
|
@ -1231,7 +1231,22 @@ function(_ep_get_build_command name step cmd_var)
|
||||||
endif()
|
endif()
|
||||||
set(args --build ".")
|
set(args --build ".")
|
||||||
if(CMAKE_CONFIGURATION_TYPES)
|
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()
|
endif()
|
||||||
if(step STREQUAL "INSTALL")
|
if(step STREQUAL "INSTALL")
|
||||||
list(APPEND args --target 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}")
|
string(REGEX REPLACE "^(.*/)cmake([^/]*)$" "\\1ctest\\2" cmd "${cmd}")
|
||||||
set(args "")
|
set(args "")
|
||||||
if(CMAKE_CONFIGURATION_TYPES)
|
if(CMAKE_CONFIGURATION_TYPES)
|
||||||
list(APPEND args -C $<CONFIG>)
|
list(APPEND args -C ${config})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
Loading…
Reference in New Issue