diff options
author | Brad King <brad.king@kitware.com> | 2023-10-27 13:06:14 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2023-10-27 13:06:44 (GMT) |
commit | f55043f87e4c5fddc28d859bbfca71ac9d66f3cd (patch) | |
tree | 5db9b87ecfca120a3c2242a364a1140e85cd8af7 /Tests/RunCMake | |
parent | 9627ef86c9633068e4bb33f3f192e3001692ed8f (diff) | |
parent | e218db1a903972eade0b0a58d1cd3a054942433a (diff) | |
download | CMake-f55043f87e4c5fddc28d859bbfca71ac9d66f3cd.zip CMake-f55043f87e4c5fddc28d859bbfca71ac9d66f3cd.tar.gz CMake-f55043f87e4c5fddc28d859bbfca71ac9d66f3cd.tar.bz2 |
Merge topic 'unity-build-objc'
e218db1a90 Unity: Enable UNITY_BUILD for OBJC and OBJCXX files
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8906
Diffstat (limited to 'Tests/RunCMake')
-rw-r--r-- | Tests/RunCMake/CMakeLists.txt | 2 | ||||
-rw-r--r-- | Tests/RunCMake/UnityBuild/RunCMakeTest.cmake | 7 | ||||
-rw-r--r-- | Tests/RunCMake/UnityBuild/unitybuild_c_and_cxx_and_objc_and_objcxx.cmake | 25 | ||||
-rw-r--r-- | Tests/RunCMake/UnityBuild/unitybuild_objc.cmake | 12 | ||||
-rw-r--r-- | Tests/RunCMake/UnityBuild/unitybuild_objc_group.cmake | 27 | ||||
-rw-r--r-- | Tests/RunCMake/UnityBuild/unitybuild_objcxx.cmake | 12 | ||||
-rw-r--r-- | Tests/RunCMake/UnityBuild/unitybuild_objcxx_group.cmake | 27 |
7 files changed, 111 insertions, 1 deletions
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 7fa5b88..ae878c9 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -1064,7 +1064,7 @@ add_RunCMake_test(PrecompileHeaders -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID} -DCMAKE_C_SIMULATE_ID=${CMAKE_C_SIMULATE_ID} -DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION}) -add_RunCMake_test("UnityBuild") +add_RunCMake_test(UnityBuild -DCMake_TEST_OBJC=${CMake_TEST_OBJC}) add_RunCMake_test(CMakePresets -DPython_EXECUTABLE=${Python_EXECUTABLE} -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA} diff --git a/Tests/RunCMake/UnityBuild/RunCMakeTest.cmake b/Tests/RunCMake/UnityBuild/RunCMakeTest.cmake index e3643c0..0ec8c42 100644 --- a/Tests/RunCMake/UnityBuild/RunCMakeTest.cmake +++ b/Tests/RunCMake/UnityBuild/RunCMakeTest.cmake @@ -14,6 +14,13 @@ run_cmake(unitybuild_cxx) run_cmake(unitybuild_cxx_group) run_cmake(unitybuild_c_and_cxx) run_cmake(unitybuild_c_and_cxx_group) +if(CMake_TEST_OBJC) + run_cmake(unitybuild_objc) + run_cmake(unitybuild_objc_group) + run_cmake(unitybuild_objcxx) + run_cmake(unitybuild_objcxx_group) + run_cmake(unitybuild_c_and_cxx_and_objc_and_objcxx) +endif() run_cmake(unitybuild_batchsize) run_cmake(unitybuild_default_batchsize) run_cmake(unitybuild_skip) diff --git a/Tests/RunCMake/UnityBuild/unitybuild_c_and_cxx_and_objc_and_objcxx.cmake b/Tests/RunCMake/UnityBuild/unitybuild_c_and_cxx_and_objc_and_objcxx.cmake new file mode 100644 index 0000000..096a86b --- /dev/null +++ b/Tests/RunCMake/UnityBuild/unitybuild_c_and_cxx_and_objc_and_objcxx.cmake @@ -0,0 +1,25 @@ +project(unitybuild_c_and_cxx_and_objc_and_objcxx C CXX OBJC OBJCXX) + +set(srcs "") +foreach(s RANGE 1 8) + set(src_c "${CMAKE_CURRENT_BINARY_DIR}/s${s}.c") + file(WRITE "${src_c}" "int s${s}(void) { return 0; }\n") + + set(src_cxx "${CMAKE_CURRENT_BINARY_DIR}/s${s}.cxx") + file(WRITE "${src_cxx}" "int s${s}(void) { return 0; }\n") + + set(src_objc "${CMAKE_CURRENT_BINARY_DIR}/s${s}.m") + file(WRITE "${src_objc}" "int s${s}(void) { return 0; }\n") + + set(src_objcxx "${CMAKE_CURRENT_BINARY_DIR}/s${s}.mm") + file(WRITE "${src_objcxx}" "int s${s}(void) { return 0; }\n") + + list(APPEND srcs "${src_c}") + list(APPEND srcs "${src_cxx}") + list(APPEND srcs "${src_objc}") + list(APPEND srcs "${src_objcxx}") +endforeach() + +add_library(tgt SHARED ${srcs}) + +set_target_properties(tgt PROPERTIES UNITY_BUILD ON) diff --git a/Tests/RunCMake/UnityBuild/unitybuild_objc.cmake b/Tests/RunCMake/UnityBuild/unitybuild_objc.cmake new file mode 100644 index 0000000..cc88d98 --- /dev/null +++ b/Tests/RunCMake/UnityBuild/unitybuild_objc.cmake @@ -0,0 +1,12 @@ +project(unitybuild_objc OBJC) + +set(srcs "") +foreach(s RANGE 1 8) + set(src "${CMAKE_CURRENT_BINARY_DIR}/s${s}.m") + file(WRITE "${src}" "int s${s}(void) { return 0; }\n") + list(APPEND srcs "${src}") +endforeach() + +add_library(tgt SHARED ${srcs}) + +set_target_properties(tgt PROPERTIES UNITY_BUILD ON) diff --git a/Tests/RunCMake/UnityBuild/unitybuild_objc_group.cmake b/Tests/RunCMake/UnityBuild/unitybuild_objc_group.cmake new file mode 100644 index 0000000..384c98a --- /dev/null +++ b/Tests/RunCMake/UnityBuild/unitybuild_objc_group.cmake @@ -0,0 +1,27 @@ +project(unitybuild_objc_group OBJC) + +set(srcs "") +foreach(s RANGE 1 4) + set(src "${CMAKE_CURRENT_BINARY_DIR}/s${s}.m") + file(WRITE "${src}" "int s${s}(void) { return 0; }\n") + list(APPEND srcs "${src}") +endforeach() + +foreach(s RANGE 1 2) + set(src "${CMAKE_CURRENT_BINARY_DIR}/odr${s}.m") + file(WRITE "${src}" "namespace odr { int s${s}(void) { return 0; } }\n") + list(APPEND srcs "${src}") +endforeach() + +add_library(tgt SHARED ${srcs}) + +set_target_properties(tgt PROPERTIES UNITY_BUILD ON + UNITY_BUILD_MODE GROUP + ) + +set_source_files_properties(s1.m s2.m odr1.m + PROPERTIES UNITY_GROUP "a" + ) +set_source_files_properties(s3.m s4.m odr2.m + PROPERTIES UNITY_GROUP "b" + ) diff --git a/Tests/RunCMake/UnityBuild/unitybuild_objcxx.cmake b/Tests/RunCMake/UnityBuild/unitybuild_objcxx.cmake new file mode 100644 index 0000000..fd0f743 --- /dev/null +++ b/Tests/RunCMake/UnityBuild/unitybuild_objcxx.cmake @@ -0,0 +1,12 @@ +project(unitybuild_objcxx OBJCXX) + +set(srcs "") +foreach(s RANGE 1 8) + set(src "${CMAKE_CURRENT_BINARY_DIR}/s${s}.mm") + file(WRITE "${src}" "int s${s}(void) { return 0; }\n") + list(APPEND srcs "${src}") +endforeach() + +add_library(tgt SHARED ${srcs}) + +set_target_properties(tgt PROPERTIES UNITY_BUILD ON) diff --git a/Tests/RunCMake/UnityBuild/unitybuild_objcxx_group.cmake b/Tests/RunCMake/UnityBuild/unitybuild_objcxx_group.cmake new file mode 100644 index 0000000..517703e --- /dev/null +++ b/Tests/RunCMake/UnityBuild/unitybuild_objcxx_group.cmake @@ -0,0 +1,27 @@ +project(unitybuild_objcxx_group OBJCXX) + +set(srcs "") +foreach(s RANGE 1 4) + set(src "${CMAKE_CURRENT_BINARY_DIR}/s${s}.mm") + file(WRITE "${src}" "int s${s}(void) { return 0; }\n") + list(APPEND srcs "${src}") +endforeach() + +foreach(s RANGE 1 2) + set(src "${CMAKE_CURRENT_BINARY_DIR}/odr${s}.mm") + file(WRITE "${src}" "namespace odr { int s${s}(void) { return 0; } }\n") + list(APPEND srcs "${src}") +endforeach() + +add_library(tgt SHARED ${srcs}) + +set_target_properties(tgt PROPERTIES UNITY_BUILD ON + UNITY_BUILD_MODE GROUP + ) + +set_source_files_properties(s1.mm s2.mm odr1.mm + PROPERTIES UNITY_GROUP "a" + ) +set_source_files_properties(s3.mm s4.mm odr2.mm + PROPERTIES UNITY_GROUP "b" + ) |