mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-29 10:31:03 -06:00
Tests/CXXModules: test using targets that import std
This commit is contained in:
@@ -250,10 +250,16 @@ if ("named" IN_LIST CMake_TEST_MODULE_COMPILATION)
|
||||
|
||||
if ("collation" IN_LIST CMake_TEST_MODULE_COMPILATION)
|
||||
run_cxx_module_test(import-std-not-in-export-build)
|
||||
run_cxx_module_test(import-std-transitive import-std-transitive-not-in-export-build "-DCMAKE_PREFIX_PATH=${RunCMake_BINARY_DIR}/examples/import-std-not-in-export-build-build")
|
||||
|
||||
set(RunCMake_CXXModules_INSTALL 1)
|
||||
run_cxx_module_test(import-std-not-in-export-install)
|
||||
unset(RunCMake_CXXModules_INSTALL)
|
||||
run_cxx_module_test(import-std-transitive import-std-transitive-not-in-export-install "-DCMAKE_PREFIX_PATH=${RunCMake_BINARY_DIR}/examples/import-std-not-in-export-install-install")
|
||||
|
||||
run_cxx_module_test(import-std-transitive import-std-transitive-export-no-std-build "-DCMAKE_PREFIX_PATH=${RunCMake_BINARY_DIR}/examples/import-std-export-no-std-build-build" -DEXPORT_NO_STD=1)
|
||||
run_cxx_module_test(import-std-transitive import-std-transitive-export-no-std-install "-DCMAKE_PREFIX_PATH=${RunCMake_BINARY_DIR}/examples/import-std-export-no-std-install-install" -DEXPORT_NO_STD=1)
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
cmake_minimum_required(VERSION 3.29)
|
||||
|
||||
if (EXPORT_NO_STD)
|
||||
# Block making C++ `import std` targets.
|
||||
add_library(__CMAKE::CXX23 IMPORTED INTERFACE)
|
||||
endif ()
|
||||
|
||||
project(cxx_modules_import_std_transitive CXX)
|
||||
|
||||
include("${CMAKE_SOURCE_DIR}/../cxx-modules-rules.cmake")
|
||||
|
||||
if (EXPORT_NO_STD)
|
||||
set(package "import_std_export_no_std")
|
||||
else ()
|
||||
set(package "import_std_not_in_export")
|
||||
endif ()
|
||||
find_package("${package}" REQUIRED)
|
||||
|
||||
set(CMAKE_CXX_MODULE_STD 0)
|
||||
|
||||
add_executable(main
|
||||
main.cxx)
|
||||
target_link_libraries(main PRIVATE "CXXModules::${package}")
|
||||
|
||||
add_test(NAME main COMMAND main)
|
||||
@@ -0,0 +1,6 @@
|
||||
import uses_std;
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
return f();
|
||||
}
|
||||
Reference in New Issue
Block a user