| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- set_property
- ------------
- Set a named property in a given scope.
- .. code-block:: cmake
- set_property(<GLOBAL |
- DIRECTORY [<dir>] |
- TARGET [<target1> ...] |
- SOURCE [<src1> ...]
- [DIRECTORY <dirs> ...] |
- [TARGET_DIRECTORY <targets> ...]
- 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 other directories
- (already processed by CMake) may be named by full or relative path.
- Relative paths are treated as relative to the current source directory.
- See also the :command:`set_directory_properties` command.
- .. versionadded:: 3.19
- ``<dir>`` may reference a binary directory.
- ``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. By default, source file properties
- are only visible to targets added in the same directory (``CMakeLists.txt``).
- .. versionadded:: 3.18
- Visibility can be set in other directory scopes using one or both of the
- following sub-options:
- ``DIRECTORY <dirs>...``
- The source file property will be set in each of the ``<dirs>``
- directories' scopes. CMake must already know about
- each of these directories, either by having added them through a call to
- :command:`add_subdirectory` or it being the top level source directory.
- Relative paths are treated as relative to the current source directory.
- .. versionadded:: 3.19
- ``<dirs>`` may reference a binary directory.
- ``TARGET_DIRECTORY <targets>...``
- The source file property will be set in each of the directory scopes
- where any of the specified ``<targets>`` were created (the ``<targets>``
- must therefore already exist).
- See also the :command:`set_source_files_properties` command.
- ``INSTALL``
- .. versionadded:: 3.1
- 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.
- .. note::
- The :prop_sf:`GENERATED` source file property may be globally visible.
- See its documentation for details.
|