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.
This commit is contained in:
John Parent
2022-03-10 12:43:50 -05:00
parent 3a37fda6a2
commit 2f1ffa003c
24 changed files with 233 additions and 1 deletions
+7 -1
View File
@@ -79,7 +79,8 @@ Basic Signature
find_package(<PackageName> [version] [EXACT] [QUIET] [MODULE]
[REQUIRED] [[COMPONENTS] [components...]]
[OPTIONAL_COMPONENTS components...]
[NO_POLICY_SCOPE])
[NO_POLICY_SCOPE]
[GLOBAL])
The basic signature is supported by both Module and Config modes.
The ``MODULE`` keyword implies that only Module mode can be used to find
@@ -115,6 +116,11 @@ define what occurs in such cases. Common arrangements include assuming it
should find all components, no components or some well-defined subset of the
available components.
Specifying the ``GLOBAL`` keyword will promote all imported targets to
a global scope in the importing project. Alternatively this functionality
can be enabled by setting the variable
:variable:`CMAKE_FIND_PACKAGE_TARGETS_GLOBAL`
.. _FIND_PACKAGE_VERSION_FORMAT:
The ``[version]`` argument requests a version with which the package found