Tests/CXXModules: add tests for genex usage in CXX_MODULE_STD

This commit is contained in:
Ben Boeckel 2024-03-05 13:39:59 -05:00
parent a9ad29403e
commit b17e6a52f9
11 changed files with 70 additions and 0 deletions

View File

@ -0,0 +1 @@
1

View File

@ -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.

View File

@ -0,0 +1,10 @@
enable_language(CXX)
set(CMAKE_CXX_MODULE_STD "$<CONFIG:Release>")
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)

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,9 @@
CMake Error:
Error evaluating generator expression:
\$<TARGET_PROPERTY:use_std_in_consumed>
\$<TARGET_PROPERTY:prop> 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 \$<TARGET_PROPERTY:tgt,prop> signature
instead.

View File

@ -0,0 +1,10 @@
enable_language(CXX)
set(CMAKE_CXX_MODULE_STD "$<TARGET_PROPERTY:use_std_in_consumed>")
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)

View File

@ -0,0 +1,11 @@
enable_language(CXX)
set(CMAKE_CXX_SCANDEP_SOURCE "echo")
set(CMAKE_CXX_MODULE_STD "$<STREQUAL:")
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)

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,7 @@
CMake Error:
Error evaluating generator expression:
\$<LINK_LANGUAGE:CXX>
\$<LINK_LANGUAGE:...> may only be used with binary targets to specify link
libraries, link directories, link options and link depends.

View File

@ -0,0 +1,10 @@
enable_language(CXX)
set(CMAKE_CXX_MODULE_STD "$<LINK_LANGUAGE:CXX>")
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)

View File

@ -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)