mirror of
https://github.com/Kitware/CMake.git
synced 2026-08-04 14:50:23 +00:00
Tests/CXXModules: support building a project with Ninja
This allows testing mixed generator setups.
This commit is contained in:
@@ -180,7 +180,13 @@ endfunction ()
|
|||||||
# - `compile_commands`: the generator supports `compile_commands.json`
|
# - `compile_commands`: the generator supports `compile_commands.json`
|
||||||
# - `collation`: the generator supports module collation features
|
# - `collation`: the generator supports module collation features
|
||||||
# - `export_bmi`: the generator supports exporting BMIs
|
# - `export_bmi`: the generator supports exporting BMIs
|
||||||
|
# - `ninja`: a `ninja` binary is available to perform `Ninja`-only testing
|
||||||
|
# (assumed if the generator matches `Ninja`).
|
||||||
string(REPLACE "," ";" CMake_TEST_MODULE_COMPILATION "${CMake_TEST_MODULE_COMPILATION}")
|
string(REPLACE "," ";" CMake_TEST_MODULE_COMPILATION "${CMake_TEST_MODULE_COMPILATION}")
|
||||||
|
if (RunCMake_GENERATOR MATCHES "Ninja")
|
||||||
|
list(APPEND CMake_TEST_MODULE_COMPILATION
|
||||||
|
"ninja")
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (RunCMake_GENERATOR MATCHES "Ninja")
|
if (RunCMake_GENERATOR MATCHES "Ninja")
|
||||||
if (RunCMake_GENERATOR_IS_MULTI_CONFIG)
|
if (RunCMake_GENERATOR_IS_MULTI_CONFIG)
|
||||||
@@ -306,3 +312,26 @@ if ("install_bmi" IN_LIST CMake_TEST_MODULE_COMPILATION)
|
|||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
# All remaining tests require a working `Ninja` generator to set up a test case
|
||||||
|
# for the current generator.
|
||||||
|
if (NOT "ninja" IN_LIST CMake_TEST_MODULE_COMPILATION)
|
||||||
|
return ()
|
||||||
|
endif ()
|
||||||
|
# All remaining tests require `bmionly` in order to consume from the `ninja`
|
||||||
|
# build.
|
||||||
|
if (NOT "bmionly" IN_LIST CMake_TEST_MODULE_COMPILATION)
|
||||||
|
return ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
function (run_cxx_module_test_ninja directory)
|
||||||
|
set(RunCMake_GENERATOR "Ninja")
|
||||||
|
set(RunCMake_CXXModules_NO_TEST 1)
|
||||||
|
set(RunCMake_CXXModules_INSTALL 1)
|
||||||
|
# `Ninja` is not a multi-config generator.
|
||||||
|
set(RunCMake_GENERATOR_IS_MULTI_CONFIG 0)
|
||||||
|
run_cxx_module_test("${directory}" "${directory}-ninja" ${ARGN})
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
# Installation happens within `run_cxx_module_test_ninja`.
|
||||||
|
set(RunCMake_CXXModules_INSTALL 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user