12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- set
- ---
- Set a normal, cache, or environment variable to a given value.
- See the :ref:`cmake-language(7) variables <CMake Language Variables>`
- documentation for the scopes and interaction of normal variables
- and cache entries.
- Signatures of this command that specify a ``<value>...`` placeholder
- expect zero or more arguments. Multiple arguments will be joined as
- a :ref:`;-list <CMake Language Lists>` to form the actual variable
- value to be set. Zero arguments will cause normal variables to be
- unset. See the :command:`unset` command to unset variables explicitly.
- Set Normal Variable
- ^^^^^^^^^^^^^^^^^^^
- ::
- set(<variable> <value>... [PARENT_SCOPE])
- Set the given ``<variable>`` in the current function or directory scope.
- If the ``PARENT_SCOPE`` option is given the variable will be set in
- the scope above the current scope. Each new directory or function
- creates a new scope. This command will set the value of a variable
- into the parent directory or calling function (whichever is applicable
- to the case at hand). The previous state of the variable's value stays the
- same in the current scope (e.g., if it was undefined before, it is still
- undefined and if it had a value, it is still that value).
- Set Cache Entry
- ^^^^^^^^^^^^^^^
- ::
- set(<variable> <value>... CACHE <type> <docstring> [FORCE])
- Set the given cache ``<variable>`` (cache entry). Since cache entries
- are meant to provide user-settable values this does not overwrite
- existing cache entries by default. Use the ``FORCE`` option to
- overwrite existing entries.
- The ``<type>`` must be specified as one of:
- ``BOOL``
- Boolean ``ON/OFF`` value. :manual:`cmake-gui(1)` offers a checkbox.
- ``FILEPATH``
- Path to a file on disk. :manual:`cmake-gui(1)` offers a file dialog.
- ``PATH``
- Path to a directory on disk. :manual:`cmake-gui(1)` offers a file dialog.
- ``STRING``
- A line of text. :manual:`cmake-gui(1)` offers a text field or a
- drop-down selection if the :prop_cache:`STRINGS` cache entry
- property is set.
- ``INTERNAL``
- A line of text. :manual:`cmake-gui(1)` does not show internal entries.
- They may be used to store variables persistently across runs.
- Use of this type implies ``FORCE``.
- The ``<docstring>`` must be specified as a line of text providing
- a quick summary of the option for presentation to :manual:`cmake-gui(1)`
- users.
- If the cache entry does not exist prior to the call or the ``FORCE``
- option is given then the cache entry will be set to the given value.
- Furthermore, any normal variable binding in the current scope will
- be removed to expose the newly cached value to any immediately
- following evaluation.
- It is possible for the cache entry to exist prior to the call but
- have no type set if it was created on the :manual:`cmake(1)` command
- line by a user through the ``-D<var>=<value>`` option without
- specifying a type. In this case the ``set`` command will add the
- type. Furthermore, if the ``<type>`` is ``PATH`` or ``FILEPATH``
- and the ``<value>`` provided on the command line is a relative path,
- then the ``set`` command will treat the path as relative to the
- current working directory and convert it to an absolute path.
- Set Environment Variable
- ^^^^^^^^^^^^^^^^^^^^^^^^
- ::
- set(ENV{<variable>} <value>...)
- Set the current process environment ``<variable>`` to the given value.
|