diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2018-12-10 15:39:22 (GMT) |
---|---|---|
committer | Kyle Edwards <kyle.edwards@kitware.com> | 2018-12-10 19:57:28 (GMT) |
commit | bab24e782c1bf56ef7263e91e5cf78879699a036 (patch) | |
tree | 2be453e95172a5134100afd077b76de7b27da3ce /Tests/RunCMake/ObjectLibrary | |
parent | 8c7367e3f0e5e104630857561b4730a0b32253f9 (diff) | |
download | CMake-bab24e782c1bf56ef7263e91e5cf78879699a036.zip CMake-bab24e782c1bf56ef7263e91e5cf78879699a036.tar.gz CMake-bab24e782c1bf56ef7263e91e5cf78879699a036.tar.bz2 |
target_link_libraries: Propagate dependencies of object libraries
Prior to this commit, linking against an object library did not
propagate private link dependencies of object libraries to their
consuming targets. This change implements the correct behavior.
Fixes: #18692
Co-Author: Brad King <brad.king@kitware.com>
Diffstat (limited to 'Tests/RunCMake/ObjectLibrary')
-rw-r--r-- | Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake | 1 | ||||
-rw-r--r-- | Tests/RunCMake/ObjectLibrary/TransitiveDependencies.cmake | 7 | ||||
-rw-r--r-- | Tests/RunCMake/ObjectLibrary/exe2.c | 6 |
3 files changed, 14 insertions, 0 deletions
diff --git a/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake b/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake index c73732f..6ca33b8 100644 --- a/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake +++ b/Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake @@ -45,6 +45,7 @@ run_object_lib_build2(LinkObjRHSObject) run_object_lib_build(LinkObjRHSShared2) run_object_lib_build(LinkObjRHSStatic2) run_object_lib_build2(LinkObjRHSObject2) +run_object_lib_build(TransitiveDependencies) run_cmake(MissingSource) run_cmake(ObjWithObj) diff --git a/Tests/RunCMake/ObjectLibrary/TransitiveDependencies.cmake b/Tests/RunCMake/ObjectLibrary/TransitiveDependencies.cmake new file mode 100644 index 0000000..e41cf2e --- /dev/null +++ b/Tests/RunCMake/ObjectLibrary/TransitiveDependencies.cmake @@ -0,0 +1,7 @@ +add_library(lib1 STATIC depends_obj0.c) +add_library(lib2 OBJECT a.c) +target_link_libraries(lib2 PRIVATE lib1) + +add_executable(test exe2.c) + +target_link_libraries(test PUBLIC lib2) diff --git a/Tests/RunCMake/ObjectLibrary/exe2.c b/Tests/RunCMake/ObjectLibrary/exe2.c new file mode 100644 index 0000000..66e0caf --- /dev/null +++ b/Tests/RunCMake/ObjectLibrary/exe2.c @@ -0,0 +1,6 @@ +extern int myobj_foo(void); + +int main(void) +{ + return myobj_foo(); +} |