mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
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.
23 lines
1.0 KiB
ReStructuredText
23 lines
1.0 KiB
ReStructuredText
IMPORTED_GLOBAL
|
|
---------------
|
|
|
|
Indication of whether an :ref:`IMPORTED target <Imported Targets>` is
|
|
globally visible.
|
|
|
|
The boolean value of this property is True for targets created with the
|
|
``IMPORTED`` ``GLOBAL`` options to :command:`add_executable()` or
|
|
:command:`add_library()`. It is always False for targets built within the
|
|
project.
|
|
|
|
For targets created with the ``IMPORTED`` option to
|
|
:command:`add_executable()` or :command:`add_library()` but without the
|
|
additional option ``GLOBAL`` this is False, too. However, setting this
|
|
property for such a locally ``IMPORTED`` target to True promotes that
|
|
target to global scope. This promotion can only be done in the same
|
|
directory where that ``IMPORTED`` target was created in the first place.
|
|
|
|
Once an imported target has been made global, it cannot be changed back to
|
|
non-global. Therefore, if a project sets this property, it may only
|
|
provide a value of True. CMake will issue an error if the project tries to
|
|
set the property to a non-True value, even if the value was already False.
|