Files
cmake/Tests/RunCMake/CXXModulesCompile/multi-config-synth/CMakeLists.txt
T

55 lines
1.7 KiB
CMake

cmake_minimum_required(VERSION 3.24...3.28)
project(cxx_modules_multi_config_synth CXX)
include("${CMAKE_SOURCE_DIR}/../cxx-modules-rules.cmake")
add_library(importable)
target_sources(importable
PUBLIC FILE_SET CXX_MODULES FILES importable.cxx)
target_compile_features(importable PUBLIC cxx_std_20)
export(TARGETS importable
NAMESPACE CXXModules::
FILE "${CMAKE_CURRENT_BINARY_DIR}/importable-targets.cmake"
CXX_MODULES_DIRECTORY "importable-cxx-modules"
)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/importable-config.cmake"
"include(\"\${CMAKE_CURRENT_LIST_DIR}/importable-targets.cmake\")\n"
)
set(generator
-G "${CMAKE_GENERATOR}")
if (CMAKE_GENERATOR_TOOLSET)
list(APPEND generator -T "${CMAKE_GENERATOR_TOOLSET}")
endif ()
if (CMAKE_GENERATOR_PLATFORM)
list(APPEND generator -A "${CMAKE_GENERATOR_PLATFORM}")
endif ()
add_test(NAME multi_config_synth_consumer
COMMAND
"${CMAKE_COMMAND}"
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
${generator}
-S "${CMAKE_CURRENT_SOURCE_DIR}/consumer"
-B "${CMAKE_CURRENT_BINARY_DIR}/consumer"
)
add_test(NAME multi_config_synth_build_debug
COMMAND
"${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/consumer" --config Debug
)
add_test(NAME multi_config_synth_build_release
COMMAND
"${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/consumer" --config Release
)
set_tests_properties(
multi_config_synth_build_debug
multi_config_synth_build_release
PROPERTIES DEPENDS multi_config_synth_consumer)
add_test(NAME multi_config_synth_run
COMMAND "${CMAKE_CTEST_COMMAND}" -C Debug --test-dir "${CMAKE_CURRENT_BINARY_DIR}/consumer"
)
set_tests_properties(multi_config_synth_run
PROPERTIES DEPENDS multi_config_synth_build_debug)