From b17e6a52f9ebfe518553b03249ac188152dac49d Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Tue, 5 Mar 2024 13:39:59 -0500 Subject: Tests/CXXModules: add tests for genex usage in `CXX_MODULE_STD` --- Tests/RunCMake/CXXModules/CXXImportStdConfig-result.txt | 1 + Tests/RunCMake/CXXModules/CXXImportStdConfig-stderr.txt | 3 +++ Tests/RunCMake/CXXModules/CXXImportStdConfig.cmake | 10 ++++++++++ Tests/RunCMake/CXXModules/CXXImportStdHeadTarget-result.txt | 1 + Tests/RunCMake/CXXModules/CXXImportStdHeadTarget-stderr.txt | 9 +++++++++ Tests/RunCMake/CXXModules/CXXImportStdHeadTarget.cmake | 10 ++++++++++ Tests/RunCMake/CXXModules/CXXImportStdInvalidGenex.cmake | 11 +++++++++++ Tests/RunCMake/CXXModules/CXXImportStdLinkLanguage-result.txt | 1 + Tests/RunCMake/CXXModules/CXXImportStdLinkLanguage-stderr.txt | 7 +++++++ Tests/RunCMake/CXXModules/CXXImportStdLinkLanguage.cmake | 10 ++++++++++ Tests/RunCMake/CXXModules/RunCMakeTest.cmake | 7 +++++++ 11 files changed, 70 insertions(+) create mode 100644 Tests/RunCMake/CXXModules/CXXImportStdConfig-result.txt create mode 100644 Tests/RunCMake/CXXModules/CXXImportStdConfig-stderr.txt create mode 100644 Tests/RunCMake/CXXModules/CXXImportStdConfig.cmake create mode 100644 Tests/RunCMake/CXXModules/CXXImportStdHeadTarget-result.txt create mode 100644 Tests/RunCMake/CXXModules/CXXImportStdHeadTarget-stderr.txt create mode 100644 Tests/RunCMake/CXXModules/CXXImportStdHeadTarget.cmake create mode 100644 Tests/RunCMake/CXXModules/CXXImportStdInvalidGenex.cmake create mode 100644 Tests/RunCMake/CXXModules/CXXImportStdLinkLanguage-result.txt create mode 100644 Tests/RunCMake/CXXModules/CXXImportStdLinkLanguage-stderr.txt create mode 100644 Tests/RunCMake/CXXModules/CXXImportStdLinkLanguage.cmake diff --git a/Tests/RunCMake/CXXModules/CXXImportStdConfig-result.txt b/Tests/RunCMake/CXXModules/CXXImportStdConfig-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CXXModules/CXXImportStdConfig-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CXXModules/CXXImportStdConfig-stderr.txt b/Tests/RunCMake/CXXModules/CXXImportStdConfig-stderr.txt new file mode 100644 index 0000000..268099f --- /dev/null +++ b/Tests/RunCMake/CXXModules/CXXImportStdConfig-stderr.txt @@ -0,0 +1,3 @@ +CMake Error in CMakeLists.txt: + The "CXX_MODULE_STD" property on the target "nocxx23target" contains a + context-sensitive condition that is not supported. diff --git a/Tests/RunCMake/CXXModules/CXXImportStdConfig.cmake b/Tests/RunCMake/CXXModules/CXXImportStdConfig.cmake new file mode 100644 index 0000000..0867082 --- /dev/null +++ b/Tests/RunCMake/CXXModules/CXXImportStdConfig.cmake @@ -0,0 +1,10 @@ +enable_language(CXX) + +set(CMAKE_CXX_MODULE_STD "$") + +add_library(nocxx23target) +target_sources(nocxx23target + PRIVATE + FILE_SET fs TYPE CXX_MODULES FILES + sources/module.cxx) +target_compile_features(nocxx23target PRIVATE cxx_std_23) diff --git a/Tests/RunCMake/CXXModules/CXXImportStdHeadTarget-result.txt b/Tests/RunCMake/CXXModules/CXXImportStdHeadTarget-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CXXModules/CXXImportStdHeadTarget-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CXXModules/CXXImportStdHeadTarget-stderr.txt b/Tests/RunCMake/CXXModules/CXXImportStdHeadTarget-stderr.txt new file mode 100644 index 0000000..a2cdb63 --- /dev/null +++ b/Tests/RunCMake/CXXModules/CXXImportStdHeadTarget-stderr.txt @@ -0,0 +1,9 @@ +CMake Error: + Error evaluating generator expression: + + \$ + + \$ may only be used with binary targets. It may not + be used with add_custom_command or add_custom_target. Specify the target + to read a property from using the \$ signature + instead. diff --git a/Tests/RunCMake/CXXModules/CXXImportStdHeadTarget.cmake b/Tests/RunCMake/CXXModules/CXXImportStdHeadTarget.cmake new file mode 100644 index 0000000..3eb2c68 --- /dev/null +++ b/Tests/RunCMake/CXXModules/CXXImportStdHeadTarget.cmake @@ -0,0 +1,10 @@ +enable_language(CXX) + +set(CMAKE_CXX_MODULE_STD "$") + +add_library(nocxx23target) +target_sources(nocxx23target + PRIVATE + FILE_SET fs TYPE CXX_MODULES FILES + sources/module.cxx) +target_compile_features(nocxx23target PRIVATE cxx_std_23) diff --git a/Tests/RunCMake/CXXModules/CXXImportStdInvalidGenex.cmake b/Tests/RunCMake/CXXModules/CXXImportStdInvalidGenex.cmake new file mode 100644 index 0000000..86230a4 --- /dev/null +++ b/Tests/RunCMake/CXXModules/CXXImportStdInvalidGenex.cmake @@ -0,0 +1,11 @@ +enable_language(CXX) +set(CMAKE_CXX_SCANDEP_SOURCE "echo") + +set(CMAKE_CXX_MODULE_STD "$ + + \$ may only be used with binary targets to specify link + libraries, link directories, link options and link depends. diff --git a/Tests/RunCMake/CXXModules/CXXImportStdLinkLanguage.cmake b/Tests/RunCMake/CXXModules/CXXImportStdLinkLanguage.cmake new file mode 100644 index 0000000..e9b20c7 --- /dev/null +++ b/Tests/RunCMake/CXXModules/CXXImportStdLinkLanguage.cmake @@ -0,0 +1,10 @@ +enable_language(CXX) + +set(CMAKE_CXX_MODULE_STD "$") + +add_library(nocxx23target) +target_sources(nocxx23target + PRIVATE + FILE_SET fs TYPE CXX_MODULES FILES + sources/module.cxx) +target_compile_features(nocxx23target PRIVATE cxx_std_23) diff --git a/Tests/RunCMake/CXXModules/RunCMakeTest.cmake b/Tests/RunCMake/CXXModules/RunCMakeTest.cmake index f34d935..297860b 100644 --- a/Tests/RunCMake/CXXModules/RunCMakeTest.cmake +++ b/Tests/RunCMake/CXXModules/RunCMakeTest.cmake @@ -83,6 +83,13 @@ foreach (fileset_type IN LISTS fileset_types) run_cmake("NotCXXSource${fileset_type}") endforeach () +if ("cxx_std_23" IN_LIST CMAKE_CXX_COMPILE_FEATURES) + run_cmake(CXXImportStdConfig) + run_cmake(CXXImportStdHeadTarget) + run_cmake(CXXImportStdLinkLanguage) + run_cmake(CXXImportStdInvalidGenex) +endif () + run_cmake(InstallBMI) run_cmake(InstallBMIGenericArgs) run_cmake(InstallBMIIgnore) -- cgit v0.12