summaryrefslogtreecommitdiffstats
path: root/Help/command/set_property.rst
blob: 8c4f610fd45bdfe28accc4a534d0105caa635e76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
set_property
------------

Set a named property in a given scope.

::

  set_property(<GLOBAL                            |
                DIRECTORY [dir]                   |
                TARGET    [target1 [target2 ...]] |
                SOURCE    [src1 [src2 ...]]       |
                TEST      [test1 [test2 ...]]     |
                CACHE     [entry1 [entry2 ...]]>
               [APPEND] [APPEND_STRING]
               PROPERTY <name> [value1 [value2 ...]])

Set 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.

``TARGET``
  Scope may name zero or more existing targets.

``SOURCE``
  Scope may name zero or more source files.  Note that source
  file properties are visible only to targets added in the same
  directory (CMakeLists.txt).

``TEST``
  Scope may name zero or more existing tests.

``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.  If the ``APPEND_STRING`` option is given the string is append to any
existing property value as string, i.e.  it results in a longer string
and not a list of strings.