summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-02-22 13:26:00 (GMT)
committerKitware Robot <kwrobot@kitware.com>2024-02-22 13:26:11 (GMT)
commit312d0ccb6b97813e170ad8a82ce100cc35f11532 (patch)
treeaeb856d5a3a999391d0436ae2e6308b95afabe0c /Tests
parenta4122c89c468540e8bcca284b94ba059a0955808 (diff)
parent5b8e9e068fc634459cfaeed90e20072ebaa01710 (diff)
downloadCMake-312d0ccb6b97813e170ad8a82ce100cc35f11532.zip
CMake-312d0ccb6b97813e170ad8a82ce100cc35f11532.tar.gz
CMake-312d0ccb6b97813e170ad8a82ce100cc35f11532.tar.bz2
Merge topic 'restore-link-interface-objlib-with-unity' into release-3.29
5b8e9e068f Restore support for TARGET_OBJECTS in link interfaces with unity builds 1313c78a9c Tests: Update RunCMake.TargetObjects cmake_minimum_required version Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9279
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/TargetObjects/CMakeLists.txt2
-rw-r--r--Tests/RunCMake/TargetObjects/RunCMakeTest.cmake8
-rw-r--r--Tests/RunCMake/TargetObjects/Unity.cmake13
-rw-r--r--Tests/RunCMake/TargetObjects/UnityMain.c7
-rw-r--r--Tests/RunCMake/TargetObjects/UnityObj1.c4
-rw-r--r--Tests/RunCMake/TargetObjects/UnityObj2.c4
6 files changed, 37 insertions, 1 deletions
diff --git a/Tests/RunCMake/TargetObjects/CMakeLists.txt b/Tests/RunCMake/TargetObjects/CMakeLists.txt
index e9a0a3f..86f640d 100644
--- a/Tests/RunCMake/TargetObjects/CMakeLists.txt
+++ b/Tests/RunCMake/TargetObjects/CMakeLists.txt
@@ -1,3 +1,3 @@
-cmake_minimum_required(VERSION 3.3)
+cmake_minimum_required(VERSION 3.5)
project(${RunCMake_TEST} LANGUAGES NONE)
include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/TargetObjects/RunCMakeTest.cmake b/Tests/RunCMake/TargetObjects/RunCMakeTest.cmake
index d2b3032..9756255 100644
--- a/Tests/RunCMake/TargetObjects/RunCMakeTest.cmake
+++ b/Tests/RunCMake/TargetObjects/RunCMakeTest.cmake
@@ -6,3 +6,11 @@ run_cmake(NotObjlibTarget)
if(RunCMake_GENERATOR STREQUAL "Xcode" AND "$ENV{CMAKE_OSX_ARCHITECTURES}" MATCHES "[;$]")
run_cmake(XcodeVariableNoGenexExpansion)
endif()
+
+function(run_cmake_and_build case)
+ set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${case}-build)
+ run_cmake(${case})
+ set(RunCMake_TEST_NO_CLEAN 1)
+ run_cmake_command(${case}-build ${CMAKE_COMMAND} --build .)
+endfunction()
+run_cmake_and_build(Unity)
diff --git a/Tests/RunCMake/TargetObjects/Unity.cmake b/Tests/RunCMake/TargetObjects/Unity.cmake
new file mode 100644
index 0000000..9c8e5c9
--- /dev/null
+++ b/Tests/RunCMake/TargetObjects/Unity.cmake
@@ -0,0 +1,13 @@
+enable_language(C)
+
+# Test transforming the set of object files provided by an object library.
+set(CMAKE_UNITY_BUILD 1)
+
+add_library(UnityObj1 OBJECT UnityObj1.c)
+add_library(UnityObj2 OBJECT UnityObj2.c)
+
+add_library(UnityObj2Iface INTERFACE)
+target_link_libraries(UnityObj2Iface INTERFACE $<TARGET_OBJECTS:UnityObj2>)
+
+add_executable(UnityMain UnityMain.c)
+target_link_libraries(UnityMain PRIVATE UnityObj1 UnityObj2Iface)
diff --git a/Tests/RunCMake/TargetObjects/UnityMain.c b/Tests/RunCMake/TargetObjects/UnityMain.c
new file mode 100644
index 0000000..9d52ef8
--- /dev/null
+++ b/Tests/RunCMake/TargetObjects/UnityMain.c
@@ -0,0 +1,7 @@
+extern int UnityObj1(void);
+extern int UnityObj2(void);
+
+int main(void)
+{
+ return UnityObj1() + UnityObj2();
+}
diff --git a/Tests/RunCMake/TargetObjects/UnityObj1.c b/Tests/RunCMake/TargetObjects/UnityObj1.c
new file mode 100644
index 0000000..ed19d14
--- /dev/null
+++ b/Tests/RunCMake/TargetObjects/UnityObj1.c
@@ -0,0 +1,4 @@
+int UnityObj1(void)
+{
+ return 0;
+}
diff --git a/Tests/RunCMake/TargetObjects/UnityObj2.c b/Tests/RunCMake/TargetObjects/UnityObj2.c
new file mode 100644
index 0000000..1cc350c
--- /dev/null
+++ b/Tests/RunCMake/TargetObjects/UnityObj2.c
@@ -0,0 +1,4 @@
+int UnityObj2(void)
+{
+ return 0;
+}