diff options
author | Brad King <brad.king@kitware.com> | 2024-03-08 14:32:19 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2024-03-08 14:32:36 (GMT) |
commit | 74d3765c2d81d7f4f6110051c1557a86201614af (patch) | |
tree | 97b096baed727ba6b791dcb4ca2be7bb1d0dbcca | |
parent | 23e7c9a42a28f6ba21dda6e1dd1719e66f41d185 (diff) | |
parent | 4ddf0453d5381ae2035994057c2d0c535e5e3443 (diff) | |
download | CMake-74d3765c2d81d7f4f6110051c1557a86201614af.zip CMake-74d3765c2d81d7f4f6110051c1557a86201614af.tar.gz CMake-74d3765c2d81d7f4f6110051c1557a86201614af.tar.bz2 |
Merge topic 'cxxmodules-target-objects' into release-3.29
4ddf0453d5 Tests/CXXModules: add a test using `TARGET_OBJECTS` from modules
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9316
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(); +} |