diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2024-03-06 06:13:01 (GMT) |
---|---|---|
committer | Ben Boeckel <ben.boeckel@kitware.com> | 2024-03-06 17:34:46 (GMT) |
commit | 4ddf0453d5381ae2035994057c2d0c535e5e3443 (patch) | |
tree | 050819761496962c769c2ab2f95f743931c2f954 /Tests | |
parent | 944f10d7685e8c67aed22d50c1aa46c81639edb7 (diff) | |
download | CMake-4ddf0453d5381ae2035994057c2d0c535e5e3443.zip CMake-4ddf0453d5381ae2035994057c2d0c535e5e3443.tar.gz CMake-4ddf0453d5381ae2035994057c2d0c535e5e3443.tar.bz2 |
Tests/CXXModules: add a test using `TARGET_OBJECTS` from modules
See: #25732
Diffstat (limited to 'Tests')
4 files changed, 42 insertions, 0 deletions
diff --git a/Tests/RunCMake/CXXModules/RunCMakeTest.cmake b/Tests/RunCMake/CXXModules/RunCMakeTest.cmake index c2c00d2..14829a1 100644 --- a/Tests/RunCMake/CXXModules/RunCMakeTest.cmake +++ b/Tests/RunCMake/CXXModules/RunCMakeTest.cmake @@ -220,6 +220,7 @@ if ("named" IN_LIST CMake_TEST_MODULE_COMPILATION) unset(RunCMake_CXXModules_NO_TEST) run_cxx_module_test(same-src-name) run_cxx_module_test(scan_properties) + run_cxx_module_test(target-objects) endif () # Tests which require compile commands support. diff --git a/Tests/RunCMake/CXXModules/examples/target-objects/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/target-objects/CMakeLists.txt new file mode 100644 index 0000000..4f2f4a2 --- /dev/null +++ b/Tests/RunCMake/CXXModules/examples/target-objects/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.28) +project(cxx_modules_target_objects CXX) + +include("${CMAKE_SOURCE_DIR}/../cxx-modules-rules.cmake") + +add_library(target_objects) +target_sources(target_objects + PRIVATE + FILE_SET CXX_MODULES + BASE_DIRS + "${CMAKE_CURRENT_SOURCE_DIR}" + FILES + importable.cxx) +target_compile_features(target_objects PRIVATE cxx_std_20) + +add_executable(main) +target_sources(main + PRIVATE + main.cxx + "$<TARGET_OBJECTS:target_objects>") + +add_test(NAME main COMMAND main) diff --git a/Tests/RunCMake/CXXModules/examples/target-objects/importable.cxx b/Tests/RunCMake/CXXModules/examples/target-objects/importable.cxx new file mode 100644 index 0000000..1aee1a6 --- /dev/null +++ b/Tests/RunCMake/CXXModules/examples/target-objects/importable.cxx @@ -0,0 +1,13 @@ +export module importable; + +export int from_import() +{ + return 0; +} + +extern "C++" { +int f() +{ + return from_import(); +} +} diff --git a/Tests/RunCMake/CXXModules/examples/target-objects/main.cxx b/Tests/RunCMake/CXXModules/examples/target-objects/main.cxx new file mode 100644 index 0000000..a652ccf --- /dev/null +++ b/Tests/RunCMake/CXXModules/examples/target-objects/main.cxx @@ -0,0 +1,6 @@ +int f(); + +int main(int argc, char* argv[]) +{ + return f(); +} |