summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-10-24 12:22:21 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-10-24 12:22:25 (GMT)
commit11dcf81c44148295fd04b98fd808224ff7b44ed7 (patch)
tree750b70dfb215862678a9f5733a78b5ef0320161a /Modules
parent48c713d32445620c81f20f6039490823827e9176 (diff)
parent9ffb35386fb923a5959eec482bfa131aa3feaa18 (diff)
downloadCMake-11dcf81c44148295fd04b98fd808224ff7b44ed7.zip
CMake-11dcf81c44148295fd04b98fd808224ff7b44ed7.tar.gz
CMake-11dcf81c44148295fd04b98fd808224ff7b44ed7.tar.bz2
Merge topic 'generator-instance'
9ffb3538 VS: Select and save a VS 2017 instance persistently 17edfa41 cmVSSetupHelper: Add option to specify an instance a19b8113 CheckLanguage: Pass generator instance into check 6b3cd64d ExternalProject: Propagate the generator instance 314613d1 Add infrastructure for generators to select a build tool instance Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1394
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CheckLanguage.cmake6
-rw-r--r--Modules/ExternalProject.cmake15
2 files changed, 21 insertions, 0 deletions
diff --git a/Modules/CheckLanguage.cmake b/Modules/CheckLanguage.cmake
index 1ea91d2..70c14d7 100644
--- a/Modules/CheckLanguage.cmake
+++ b/Modules/CheckLanguage.cmake
@@ -43,11 +43,17 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\"
\"set(CMAKE_${lang}_COMPILER \\\"\${CMAKE_${lang}_COMPILER}\\\")\\n\"
)
")
+ if(CMAKE_GENERATOR_INSTANCE)
+ set(_D_CMAKE_GENERATOR_INSTANCE "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${CMAKE_GENERATOR_INSTANCE}")
+ else()
+ set(_D_CMAKE_GENERATOR_INSTANCE "")
+ endif()
execute_process(
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}
COMMAND ${CMAKE_COMMAND} . -G ${CMAKE_GENERATOR}
-A "${CMAKE_GENERATOR_PLATFORM}"
-T "${CMAKE_GENERATOR_TOOLSET}"
+ ${_D_CMAKE_GENERATOR_INSTANCE}
OUTPUT_VARIABLE output
ERROR_VARIABLE output
RESULT_VARIABLE result
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index 5897e74..67aac4f 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -381,6 +381,11 @@ External Project Definition
:variable:`CMAKE_GENERATOR_TOOLSET`). It is an error to provide this
option without the ``CMAKE_GENERATOR`` option.
+ ``CMAKE_GENERATOR_INSTANCE <instance>``
+ Pass a generator-specific instance selection to the CMake command (see
+ :variable:`CMAKE_GENERATOR_INSTANCE`). It is an error to provide this
+ option without the ``CMAKE_GENERATOR`` option.
+
``CMAKE_ARGS <arg>...``
The specified arguments are passed to the ``cmake`` command line. They
can be any argument the ``cmake`` command understands, not just cache
@@ -2754,6 +2759,7 @@ function(_ep_extract_configure_command var name)
endif()
get_target_property(cmake_generator ${name} _EP_CMAKE_GENERATOR)
+ get_target_property(cmake_generator_instance ${name} _EP_CMAKE_GENERATOR_INSTANCE)
get_target_property(cmake_generator_platform ${name} _EP_CMAKE_GENERATOR_PLATFORM)
get_target_property(cmake_generator_toolset ${name} _EP_CMAKE_GENERATOR_TOOLSET)
if(cmake_generator)
@@ -2764,6 +2770,9 @@ function(_ep_extract_configure_command var name)
if(cmake_generator_toolset)
list(APPEND cmd "-T${cmake_generator_toolset}")
endif()
+ if(cmake_generator_instance)
+ list(APPEND cmd "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${cmake_generator_instance}")
+ endif()
else()
if(CMAKE_EXTRA_GENERATOR)
list(APPEND cmd "-G${CMAKE_EXTRA_GENERATOR} - ${CMAKE_GENERATOR}")
@@ -2782,6 +2791,12 @@ function(_ep_extract_configure_command var name)
if(CMAKE_GENERATOR_TOOLSET)
list(APPEND cmd "-T${CMAKE_GENERATOR_TOOLSET}")
endif()
+ if(cmake_generator_instance)
+ message(FATAL_ERROR "Option CMAKE_GENERATOR_INSTANCE not allowed without CMAKE_GENERATOR.")
+ endif()
+ if(CMAKE_GENERATOR_INSTANCE)
+ list(APPEND cmd "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${CMAKE_GENERATOR_INSTANCE}")
+ endif()
endif()
list(APPEND cmd "<SOURCE_DIR><SOURCE_SUBDIR>")