From 5d739a3c843c95aec6c5c8df4d7e87e606c0c8ea Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 19 Jan 2016 16:07:28 -0500 Subject: [PATCH 1/2] ExternalProject: Simplify `cmake --build` configuration passing Check CMAKE_CONFIGURATION_TYPES instead of CMAKE_CFG_INTDIR in order to recognize multi-config generators. Then use $ to pass the configuration value. --- Modules/ExternalProject.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 5c5c54a79..085aa0d6e 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -1230,9 +1230,9 @@ function(_ep_get_build_command name step cmd_var) set(cmd "${CMAKE_COMMAND}") endif() set(args --build ".") - if (CMAKE_CFG_INTDIR AND NOT CMAKE_CFG_INTDIR STREQUAL ".") - list(APPEND args --config "${CMAKE_CFG_INTDIR}") - endif () + if(CMAKE_CONFIGURATION_TYPES) + list(APPEND args --config $) + endif() if(step STREQUAL "INSTALL") list(APPEND args --target install) endif() From ec00e89e83eeb91633affd662870b7a6955dbf5a Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 19 Jan 2016 16:09:29 -0500 Subject: [PATCH 2/2] ExternalProject: Fix TEST_BEFORE_INSTALL for multi-config generators In multi-config generators we must tell `ctest` what configuration to test. Reported-by: Taylor Braun-Jones --- Modules/ExternalProject.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 085aa0d6e..7070dc470 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -1240,6 +1240,9 @@ function(_ep_get_build_command name step cmd_var) if("x${step}x" STREQUAL "xTESTx") string(REGEX REPLACE "^(.*/)cmake([^/]*)$" "\\1ctest\\2" cmd "${cmd}") set(args "") + if(CMAKE_CONFIGURATION_TYPES) + list(APPEND args -C $) + endif() endif() endif() else()