summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-10-27 13:06:14 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-10-27 13:06:44 (GMT)
commitf55043f87e4c5fddc28d859bbfca71ac9d66f3cd (patch)
tree5db9b87ecfca120a3c2242a364a1140e85cd8af7 /Tests/RunCMake
parent9627ef86c9633068e4bb33f3f192e3001692ed8f (diff)
parente218db1a903972eade0b0a58d1cd3a054942433a (diff)
downloadCMake-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.txt2
-rw-r--r--Tests/RunCMake/UnityBuild/RunCMakeTest.cmake7
-rw-r--r--Tests/RunCMake/UnityBuild/unitybuild_c_and_cxx_and_objc_and_objcxx.cmake25
-rw-r--r--Tests/RunCMake/UnityBuild/unitybuild_objc.cmake12
-rw-r--r--Tests/RunCMake/UnityBuild/unitybuild_objc_group.cmake27
-rw-r--r--Tests/RunCMake/UnityBuild/unitybuild_objcxx.cmake12
-rw-r--r--Tests/RunCMake/UnityBuild/unitybuild_objcxx_group.cmake27
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"
+ )