mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-04 04:40:56 -06:00
Both set_source_files_properties() and set_property(SOURCE) now accept two new optional arguments: DIRECTORY and TARGET_DIRECTORY. The DIRECTORY option takes a list of relative or absolute paths pointing to processed source directories (add_subdirectory was already called on them). These paths specify directory scopes where the source file properties will be set. Previously the scope was always the currently processed source directory. Similarly TARGET_DIRECTORY takes a list of targets, whose source directories will be used as the list of scopes where to set the source file properties. get_property() and get_source_file_property() also get the same new arguments, except only one value can be specified instead of a list. Fixes: #20128
90 lines
3.4 KiB
ReStructuredText
90 lines
3.4 KiB
ReStructuredText
set_property
|
|
------------
|
|
|
|
Set a named property in a given scope.
|
|
|
|
.. code-block:: cmake
|
|
|
|
set_property(<GLOBAL |
|
|
DIRECTORY [<dir>] |
|
|
TARGET [<target1> ...] |
|
|
SOURCE [<src1> ...]
|
|
[<TARGET_DIRECTORY ... | DIRECTORY ...>] |
|
|
INSTALL [<file1> ...] |
|
|
TEST [<test1> ...] |
|
|
CACHE [<entry1> ...] >
|
|
[APPEND] [APPEND_STRING]
|
|
PROPERTY <name> [value1 ...])
|
|
|
|
Sets one property on zero or more objects of a scope.
|
|
|
|
The first argument determines the scope in which the property is set.
|
|
It must be one of the following:
|
|
|
|
``GLOBAL``
|
|
Scope is unique and does not accept a name.
|
|
|
|
``DIRECTORY``
|
|
Scope defaults to the current directory but another directory
|
|
(already processed by CMake) may be named by full or relative path.
|
|
See also the :command:`set_directory_properties` command.
|
|
|
|
``TARGET``
|
|
Scope may name zero or more existing targets.
|
|
See also the :command:`set_target_properties` command.
|
|
|
|
``SOURCE``
|
|
Scope may name zero or more source files. Note that source
|
|
file properties are by default visible only to targets added in the same
|
|
directory (``CMakeLists.txt``).
|
|
The file properties can be made visible in a different directory by specifying
|
|
one of the additional options: ``TARGET_DIRECTORY`` or ``DIRECTORY``.
|
|
|
|
``DIRECTORY`` takes a list of processed directories paths, and sets the file
|
|
properties in those directory scopes.
|
|
|
|
``TARGET_DIRECTORY`` takes a list of existing targets. The file
|
|
properties will be set in these targets' directory scopes.
|
|
See also the :command:`set_source_files_properties` command.
|
|
|
|
``INSTALL``
|
|
Scope may name zero or more installed file paths.
|
|
These are made available to CPack to influence deployment.
|
|
|
|
Both the property key and value may use generator expressions.
|
|
Specific properties may apply to installed files and/or directories.
|
|
|
|
Path components have to be separated by forward slashes,
|
|
must be normalized and are case sensitive.
|
|
|
|
To reference the installation prefix itself with a relative path use ``.``.
|
|
|
|
Currently installed file properties are only defined for
|
|
the WIX generator where the given paths are relative
|
|
to the installation prefix.
|
|
|
|
``TEST``
|
|
Scope may name zero or more existing tests.
|
|
See also the :command:`set_tests_properties` command.
|
|
|
|
``CACHE``
|
|
Scope must name zero or more cache existing entries.
|
|
|
|
The required ``PROPERTY`` option is immediately followed by the name of
|
|
the property to set. Remaining arguments are used to compose the
|
|
property value in the form of a semicolon-separated list.
|
|
|
|
If the ``APPEND`` option is given the list is appended to any existing
|
|
property value (except that empty values are ignored and not appended).
|
|
If the ``APPEND_STRING`` option is given the string is
|
|
appended to any existing property value as string, i.e. it results in a
|
|
longer string and not a list of strings. When using ``APPEND`` or
|
|
``APPEND_STRING`` with a property defined to support ``INHERITED``
|
|
behavior (see :command:`define_property`), no inheriting occurs when
|
|
finding the initial value to append to. If the property is not already
|
|
directly set in the nominated scope, the command will behave as though
|
|
``APPEND`` or ``APPEND_STRING`` had not been given.
|
|
|
|
See the :manual:`cmake-properties(7)` manual for a list of properties
|
|
in each scope.
|