summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/find_package/GlobalImportTarget.cmake
diff options
context:
space:
mode:
authorJohn Parent <john.parent@kitware.com>2022-03-10 17:43:50 (GMT)
committerJohn Parent <john.parent@kitware.com>2022-03-10 17:44:36 (GMT)
commit2f1ffa003c07d5fe7ca10c4ee06e81dd55f5e415 (patch)
treeeb92cb82fda9a3bcd1ad58cf6b1d2654a2527c35 /Tests/RunCMake/find_package/GlobalImportTarget.cmake
parent3a37fda6a2b4f28fdd7efe58f4a0b7570404a7d4 (diff)
downloadCMake-2f1ffa003c07d5fe7ca10c4ee06e81dd55f5e415.zip
CMake-2f1ffa003c07d5fe7ca10c4ee06e81dd55f5e415.tar.gz
CMake-2f1ffa003c07d5fe7ca10c4ee06e81dd55f5e415.tar.bz2
find_package: Add support for default GLOBAL imported targets
Allow find package to promote scope of imported targets by specifying an argument to `find_package` or by specifying a CMake variable. * Add support for CMAKE_GLOBAL_IMPORT_SCOPE variable * Add support for GLOBAL argument to find_package Additionally add testing for above features.
Diffstat (limited to 'Tests/RunCMake/find_package/GlobalImportTarget.cmake')
-rw-r--r--Tests/RunCMake/find_package/GlobalImportTarget.cmake57
1 files changed, 57 insertions, 0 deletions
diff --git a/Tests/RunCMake/find_package/GlobalImportTarget.cmake b/Tests/RunCMake/find_package/GlobalImportTarget.cmake
new file mode 100644
index 0000000..7e6d2b8
--- /dev/null
+++ b/Tests/RunCMake/find_package/GlobalImportTarget.cmake
@@ -0,0 +1,57 @@
+function (assess_target_property target)
+ get_target_property(target_val "${target}" IMPORTED_GLOBAL)
+ message(STATUS "IMPORTED TARGET ${target} has GLOBAL scope: ${target_val}")
+endfunction ()
+
+list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/PackageRoot)
+
+find_package(GlobalTarget GLOBAL REQUIRED)
+assess_target_property(imported_local_target)
+assess_target_property(imported_global_target)
+assess_target_property(imported_local_ex)
+assess_target_property(imported_global_ex)
+assess_target_property(Foo1)
+assess_target_property(Foo2)
+
+set(CMAKE_FIND_PACKAGE_TARGETS_GLOBAL TRUE)
+find_package(GlobalVarTarget)
+assess_target_property(imported_var_local_target)
+assess_target_property(imported_var_global_target)
+assess_target_property(imported_var_local_ex)
+assess_target_property(imported_var_global_ex)
+set(CMAKE_FIND_PACKAGE_TARGETS_GLOBAL OFF)
+
+find_package(LocalTarget)
+assess_target_property(imported_global_lib)
+assess_target_property(imported_explicit_global_ex)
+assess_target_property(imported_local_lib)
+assess_target_property(imported_implied_local_ex)
+
+find_package(GlobalTargetNoVar GLOBAL)
+assess_target_property(imported_no_var_local_target)
+assess_target_property(imported_no_var_global_target)
+assess_target_property(imported_no_var_local_ex)
+assess_target_property(imported_no_var_global_ex)
+assess_target_property(not_imported_not_global)
+
+set(Baz_DIR "${CMAKE_CURRENT_SOURCE_DIR}/PackageRoot")
+find_package(Baz GLOBAL REQUIRED)
+assess_target_property(PackName)
+assess_target_property(PackNameExe)
+assess_target_property(PackName1)
+assess_target_property(PackNameExe1)
+
+set(Biz_DIR "${CMAKE_CURRENT_SOURCE_DIR}/PackageRoot")
+find_package(Biz REQUIRED)
+assess_target_property(local_lib_glob)
+assess_target_property(local_exe_glob)
+assess_target_property(local_lib)
+assess_target_property(local_exe)
+
+set(CMAKE_FIND_PACKAGE_TARGETS_GLOBAL TRUE)
+set(Simple_DIR "${CMAKE_CURRENT_SOURCE_DIR}/PackageRoot")
+find_package(Simple REQUIRED)
+assess_target_property(LT1)
+assess_target_property(LT2)
+assess_target_property(LT3)
+assess_target_property(LT4)