mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-23 14:48:19 -05:00
install: Teach CODE,SCRIPT modes to evaluate generator expressions
This also introduces CMP0087 which will keep the OLD behaviour of not evaluating generator expressions Fixes: #15785
This commit is contained in:
committed by
Craig Scott
parent
cb995ddea2
commit
25cae1e85d
@@ -547,6 +547,11 @@ example, the code
|
||||
|
||||
will print a message during installation.
|
||||
|
||||
``<file>`` or ``<code>`` may use "generator expressions" with the syntax
|
||||
``$<...>`` (in the case of ``<file>``, this refers to their use in the file
|
||||
name, not the file's contents). See the
|
||||
:manual:`cmake-generator-expressions(7)` manual for available expressions.
|
||||
|
||||
Installing Exports
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
@@ -57,6 +57,7 @@ Policies Introduced by CMake 3.14
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0087: install(SCRIPT | CODE) supports generator expressions. </policy/CMP0087>
|
||||
CMP0086: UseSWIG honors SWIG_MODULE_NAME via -module flag. </policy/CMP0086>
|
||||
CMP0085: IN_LIST generator expression handles empty list items. </policy/CMP0085>
|
||||
CMP0084: The FindQt module does not exist for find_package(). </policy/CMP0084>
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
CMP0087
|
||||
-------
|
||||
|
||||
:command:`install(CODE)` and :command:`install(SCRIPT)` support generator
|
||||
expressions.
|
||||
|
||||
In CMake 3.13 and earlier, :command:`install(CODE)` and
|
||||
:command:`install(SCRIPT)` did not evaluate generator expressions. CMake 3.14
|
||||
and later will evaluate generator expressions for :command:`install(CODE)` and
|
||||
:command:`install(SCRIPT)`.
|
||||
|
||||
The ``OLD`` behavior of this policy is for :command:`install(CODE)` and
|
||||
:command:`install(SCRIPT)` to not evaluate generator expressions. The ``NEW``
|
||||
behavior is to evaluate generator expressions for :command:`install(CODE)` and
|
||||
:command:`install(SCRIPT)`.
|
||||
|
||||
Note that it is the value of this policy setting at the end of the directory
|
||||
scope that is important, not its setting at the time of the call to
|
||||
:command:`install(CODE)` or :command:`install(SCRIPT)`. This has implications
|
||||
for calling these commands from places that have their own policy scope but not
|
||||
their own directory scope (e.g. from files brought in via :command:`include()`
|
||||
rather than :command:`add_subdirectory()`).
|
||||
|
||||
This policy was introduced in CMake version 3.14. CMake version
|
||||
|release| warns when the policy is not set and uses ``OLD`` behavior.
|
||||
Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW``
|
||||
explicitly.
|
||||
|
||||
.. include:: DEPRECATED.txt
|
||||
@@ -0,0 +1,5 @@
|
||||
install-code-script-genex
|
||||
-------------------------
|
||||
|
||||
* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands
|
||||
learned to support generator expressions. See policy :policy:`CMP0087`.
|
||||
Reference in New Issue
Block a user