summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-11-15 13:44:31 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-11-15 13:44:40 (GMT)
commit175988a37a0c2091563624c5e55f978728aad2af (patch)
tree5164c2eaf3da823557db000a865f10c2ac154b41 /Tests
parent105ac2670b06a61f55d3af81636039f284b44d94 (diff)
parentd7988ff6b8c10c2c233fc52a65fecebaa0bd2a23 (diff)
downloadCMake-175988a37a0c2091563624c5e55f978728aad2af.zip
CMake-175988a37a0c2091563624c5e55f978728aad2af.tar.gz
CMake-175988a37a0c2091563624c5e55f978728aad2af.tar.bz2
Merge topic 'target-objects'
d7988ff6b8 Merge branch 'backport-target-objects' into target-objects 1814853081 cmCommonTargetGenerator: Drop unused local variable 377b78aef9 cmComputeLinkInformation: Simplify recording OBJECT libraries as link items 50fdaf8f1f cmComputeLinkInformation: Track targets named by TARGET_OBJECTS sources 0e26bd334d cmCommonTargetGenerator: Factor out GetLinkedTargetDirectories loop body Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !8974
Diffstat (limited to 'Tests')
-rw-r--r--Tests/ObjectLibrary/CMakeLists.txt2
-rw-r--r--Tests/ObjectLibrary/TransitiveLinkDeps/CMakeLists.txt15
-rw-r--r--Tests/ObjectLibrary/TransitiveLinkDeps/dep.c4
-rw-r--r--Tests/ObjectLibrary/TransitiveLinkDeps/impl_obj.c6
-rw-r--r--Tests/ObjectLibrary/TransitiveLinkDeps/main.c6
5 files changed, 33 insertions, 0 deletions
diff --git a/Tests/ObjectLibrary/CMakeLists.txt b/Tests/ObjectLibrary/CMakeLists.txt
index b57761b..2bc2327 100644
--- a/Tests/ObjectLibrary/CMakeLists.txt
+++ b/Tests/ObjectLibrary/CMakeLists.txt
@@ -77,3 +77,5 @@ add_subdirectory(ExportLanguages)
add_subdirectory(LinkObjects)
add_subdirectory(Transitive)
+
+add_subdirectory(TransitiveLinkDeps)
diff --git a/Tests/ObjectLibrary/TransitiveLinkDeps/CMakeLists.txt b/Tests/ObjectLibrary/TransitiveLinkDeps/CMakeLists.txt
new file mode 100644
index 0000000..3f561fa
--- /dev/null
+++ b/Tests/ObjectLibrary/TransitiveLinkDeps/CMakeLists.txt
@@ -0,0 +1,15 @@
+add_library(implgather INTERFACE)
+
+add_library(dep STATIC dep.c)
+
+add_library(deps INTERFACE)
+target_link_libraries(deps INTERFACE dep)
+
+add_library(impl_obj OBJECT impl_obj.c)
+target_link_libraries(impl_obj PUBLIC deps)
+
+target_sources(implgather INTERFACE "$<TARGET_OBJECTS:impl_obj>")
+target_link_libraries(implgather INTERFACE impl_obj)
+
+add_executable(useimpl main.c)
+target_link_libraries(useimpl PRIVATE implgather)
diff --git a/Tests/ObjectLibrary/TransitiveLinkDeps/dep.c b/Tests/ObjectLibrary/TransitiveLinkDeps/dep.c
new file mode 100644
index 0000000..7cc62c3
--- /dev/null
+++ b/Tests/ObjectLibrary/TransitiveLinkDeps/dep.c
@@ -0,0 +1,4 @@
+int from_dep(void)
+{
+ return 0;
+}
diff --git a/Tests/ObjectLibrary/TransitiveLinkDeps/impl_obj.c b/Tests/ObjectLibrary/TransitiveLinkDeps/impl_obj.c
new file mode 100644
index 0000000..f5760b7
--- /dev/null
+++ b/Tests/ObjectLibrary/TransitiveLinkDeps/impl_obj.c
@@ -0,0 +1,6 @@
+int from_dep(void);
+
+int impl_obj(void)
+{
+ return from_dep();
+}
diff --git a/Tests/ObjectLibrary/TransitiveLinkDeps/main.c b/Tests/ObjectLibrary/TransitiveLinkDeps/main.c
new file mode 100644
index 0000000..5661f57
--- /dev/null
+++ b/Tests/ObjectLibrary/TransitiveLinkDeps/main.c
@@ -0,0 +1,6 @@
+int impl_obj(void);
+
+int main(int argc, char* argv[])
+{
+ return impl_obj();
+}