summaryrefslogtreecommitdiffstats
path: root/Help/command
diff options
context:
space:
mode:
authorZack Galbreath <zack.galbreath@kitware.com>2018-06-18 14:49:44 (GMT)
committerZack Galbreath <zack.galbreath@kitware.com>2018-06-18 17:18:54 (GMT)
commite89ad0f94e6b52cc9f75abe21107c7a2e5d24ca2 (patch)
tree5a31b0413bac45f1dbd5e013215a44431076542d /Help/command
parentb0b99d877e92028a0265ac86d1d6c79276a04811 (diff)
downloadCMake-e89ad0f94e6b52cc9f75abe21107c7a2e5d24ca2.zip
CMake-e89ad0f94e6b52cc9f75abe21107c7a2e5d24ca2.tar.gz
CMake-e89ad0f94e6b52cc9f75abe21107c7a2e5d24ca2.tar.bz2
install: Allow installing targets created in another directory
Previously, `install(TARGETS)` would only accept targets created in the same directory scope. Relax this restriction by searching the global scope when determining whether or not a target exists. Fixes: #14444
Diffstat (limited to 'Help/command')
-rw-r--r--Help/command/install.rst8
1 files changed, 8 insertions, 0 deletions
diff --git a/Help/command/install.rst b/Help/command/install.rst
index 08cbc56..8b2a971 100644
--- a/Help/command/install.rst
+++ b/Help/command/install.rst
@@ -280,6 +280,14 @@ targets that link to the object libraries in their implementation.
Installing a target with the :prop_tgt:`EXCLUDE_FROM_ALL` target property
set to ``TRUE`` has undefined behavior.
+:command:`install(TARGETS)` can install targets that were created in
+other directories. When using such cross-directory install rules, running
+``make install`` (or similar) from a subdirectory will not guarantee that
+targets from other directories are up-to-date. You can use
+:command:`target_link_libraries` or :command:`add_dependencies`
+to ensure that such out-of-directory targets are built before the
+subdirectory-specific install rules are run.
+
The install destination given to the target install ``DESTINATION`` may
use "generator expressions" with the syntax ``$<...>``. See the
:manual:`cmake-generator-expressions(7)` manual for available expressions.