summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/set_property/IMPORTED_GLOBAL
diff options
context:
space:
mode:
authorDeniz Bahadir <dbahadir@benocs.com>2017-09-05 15:32:32 (GMT)
committerDeniz Bahadir <dbahadir@benocs.com>2017-11-07 14:08:41 (GMT)
commit6a3922bebea607dcc23944b1fe79b7b613a893d1 (patch)
tree11e8021e6e744f444f87dfb2b6a8e602c9ad582c /Tests/RunCMake/set_property/IMPORTED_GLOBAL
parent854e482a59d6696bbb6988a045ac701e26bb038a (diff)
downloadCMake-6a3922bebea607dcc23944b1fe79b7b613a893d1.zip
CMake-6a3922bebea607dcc23944b1fe79b7b613a893d1.tar.gz
CMake-6a3922bebea607dcc23944b1fe79b7b613a893d1.tar.bz2
Add new target-property `IMPORTED_GLOBAL`.
The purpose of this new `IMPORTED_GLOBAL` target-property is to prolong the lifetime and scope of `IMPORTED` targets in such a way as if they had been created with the keyword `GLOBAL` in the first place. * It can only be set to `TRUE`. That means, a local `IMPORTED` target can be promoted to global scope but a global `IMPORTED` target cannot be degraded to local scope! * Setting it to `TRUE` only succeeds if done from within the same directory in which the `IMPORTED` target was created in the first place. Fixes #17256.
Diffstat (limited to 'Tests/RunCMake/set_property/IMPORTED_GLOBAL')
-rw-r--r--Tests/RunCMake/set_property/IMPORTED_GLOBAL/CMakeLists.txt8
1 files changed, 8 insertions, 0 deletions
diff --git a/Tests/RunCMake/set_property/IMPORTED_GLOBAL/CMakeLists.txt b/Tests/RunCMake/set_property/IMPORTED_GLOBAL/CMakeLists.txt
new file mode 100644
index 0000000..468bf78
--- /dev/null
+++ b/Tests/RunCMake/set_property/IMPORTED_GLOBAL/CMakeLists.txt
@@ -0,0 +1,8 @@
+add_library(ImportedSubdirTarget1 SHARED IMPORTED GLOBAL)
+add_library(ImportedSubdirTarget2 SHARED IMPORTED)
+
+# Extend visibility of ImportedSubdirTarget2 to global scope.
+set_property(TARGET ImportedSubdirTarget2 PROPERTY IMPORTED_GLOBAL TRUE)
+
+# Only targets from the same directory can be promoted.
+set_property(TARGET ImportedLocalTarget2 PROPERTY IMPORTED_GLOBAL TRUE)