diff options
Diffstat (limited to 'Tests/RunCMake/TargetObjects')
-rw-r--r-- | Tests/RunCMake/TargetObjects/RunCMakeTest.cmake | 8 | ||||
-rw-r--r-- | Tests/RunCMake/TargetObjects/Unity.cmake | 13 | ||||
-rw-r--r-- | Tests/RunCMake/TargetObjects/UnityMain.c | 7 | ||||
-rw-r--r-- | Tests/RunCMake/TargetObjects/UnityObj1.c | 4 | ||||
-rw-r--r-- | Tests/RunCMake/TargetObjects/UnityObj2.c | 4 |
5 files changed, 36 insertions, 0 deletions
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; +} |