diff options
| author | Deniz Bahadir <dbahadir@benocs.com> | 2017-12-14 16:47:22 +0100 |
|---|---|---|
| committer | Brad King <brad.king@kitware.com> | 2018-03-01 09:24:25 -0500 |
| commit | 57538224d06225ce039f9c883465c6743186c2f4 (patch) | |
| tree | 2084eb7ec59781baad1d2ea0bcd429db4cc0d615 /Tests/RunCMake/ObjectLibrary | |
| parent | 9a7f039ee7d3f40d6d041fd0d1ef43f92faf8996 (diff) | |
| download | cmake-57538224d06225ce039f9c883465c6743186c2f4.tar.gz | |
objlib: Link object-files from `OBJECT` libraries.
Note: This finally links the object-files of the `OBJECT` library from
the right-hand side of `target_link_libraries` to the target on the
left-hand side. However, this will only happen with directly linked
`OBJECT` libraries, not with `OBJECT` libraries "linked" through
property `INTERFACE_LINK_LIBRARIES` of a target on the right-hand side!
Fixes: #14778
Diffstat (limited to 'Tests/RunCMake/ObjectLibrary')
| -rw-r--r-- | Tests/RunCMake/ObjectLibrary/LinkObjRHSShared2.cmake | 14 | ||||
| -rw-r--r-- | Tests/RunCMake/ObjectLibrary/LinkObjRHSStatic2.cmake | 11 | ||||
| -rw-r--r-- | Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake | 2 |
3 files changed, 27 insertions, 0 deletions
diff --git a/Tests/RunCMake/ObjectLibrary/LinkObjRHSShared2.cmake b/Tests/RunCMake/ObjectLibrary/LinkObjRHSShared2.cmake new file mode 100644 index 0000000000..e2e5fa2625 --- /dev/null +++ b/Tests/RunCMake/ObjectLibrary/LinkObjRHSShared2.cmake @@ -0,0 +1,14 @@ +enable_language(C) + +add_definitions(-DCOMPILE_FOR_SHARED_LIB) + +add_library(AnObjLib OBJECT a.c) +target_compile_definitions(AnObjLib INTERFACE REQUIRED) +set_target_properties(AnObjLib PROPERTIES POSITION_INDEPENDENT_CODE ON) + +add_library(A SHARED b.c) +target_link_libraries(A PRIVATE AnObjLib) +target_compile_definitions(A INTERFACE $<TARGET_PROPERTY:AnObjLib,INTERFACE_COMPILE_DEFINITIONS>) + +add_executable(exe exe.c) +target_link_libraries(exe A) diff --git a/Tests/RunCMake/ObjectLibrary/LinkObjRHSStatic2.cmake b/Tests/RunCMake/ObjectLibrary/LinkObjRHSStatic2.cmake new file mode 100644 index 0000000000..9e1ab6d942 --- /dev/null +++ b/Tests/RunCMake/ObjectLibrary/LinkObjRHSStatic2.cmake @@ -0,0 +1,11 @@ +enable_language(C) + +add_library(AnObjLib OBJECT a.c) +target_compile_definitions(AnObjLib INTERFACE REQUIRED) + +add_library(A STATIC b.c) +target_link_libraries(A PRIVATE AnObjLib) +target_compile_definitions(A INTERFACE $<TARGET_PROPERTY:AnObjLib,INTERFACE_COMPILE_DEFINITIONS>) + +add_executable(exe exe.c) +target_link_libraries(exe A) diff --git a/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake b/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake index 287331b492..61be23d85c 100644 --- a/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake +++ b/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake @@ -40,6 +40,8 @@ run_object_lib_build(LinkObjLHSStatic) run_object_lib_build(LinkObjRHSShared) run_object_lib_build(LinkObjRHSStatic) run_object_lib_build2(LinkObjRHSObject) +run_object_lib_build(LinkObjRHSShared2) +run_object_lib_build(LinkObjRHSStatic2) run_object_lib_build2(LinkObjRHSObject2) run_cmake(MissingSource) |
