diff options
author | John Parent <john.parent@kitware.com> | 2022-03-10 17:43:50 (GMT) |
---|---|---|
committer | John Parent <john.parent@kitware.com> | 2022-03-10 17:44:36 (GMT) |
commit | 2f1ffa003c07d5fe7ca10c4ee06e81dd55f5e415 (patch) | |
tree | eb92cb82fda9a3bcd1ad58cf6b1d2654a2527c35 /Tests/RunCMake/find_package/GlobalImportTarget.cmake | |
parent | 3a37fda6a2b4f28fdd7efe58f4a0b7570404a7d4 (diff) | |
download | CMake-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.cmake | 57 |
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) |