mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-23 14:48:19 -05:00
Merge topic 'ExternalProject-INSTALL_BYPRODUCTS'
8c6b2928f4ExternalProject: Add `INSTALL_BYPRODUCTS` option6d6baffb85Tests: Fix ExternalLibraryWithSubstitution test4bcfff2df3ExternalProject: Clarify `BYPRODUCTS` docs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7866
This commit is contained in:
@@ -637,8 +637,11 @@ External Project Definition
|
||||
|
||||
Specifies files that will be generated by the build command but which
|
||||
might or might not have their modification time updated by subsequent
|
||||
builds. These ultimately get passed through as ``BYPRODUCTS`` to the
|
||||
build step's own underlying call to :command:`add_custom_command`.
|
||||
builds. This may also be required to explicitly declare dependencies
|
||||
when using the :generator:`Ninja` generator.
|
||||
These ultimately get passed through as ``BYPRODUCTS`` to the
|
||||
build step's own underlying call to :command:`add_custom_command`, which
|
||||
has additional documentation.
|
||||
|
||||
**Install Step Options:**
|
||||
If the configure step assumed the external project uses CMake as its build
|
||||
@@ -661,6 +664,17 @@ External Project Definition
|
||||
supported). Passing an empty string as the ``<cmd>`` makes the install
|
||||
step do nothing.
|
||||
|
||||
``INSTALL_BYPRODUCTS <file>...``
|
||||
.. versionadded:: 3.26
|
||||
|
||||
Specifies files that will be generated by the install command but which
|
||||
might or might not have their modification time updated by subsequent
|
||||
installs. This may also be required to explicitly declare dependencies
|
||||
when using the :generator:`Ninja` generator.
|
||||
These ultimately get passed through as ``BYPRODUCTS`` to the
|
||||
install step's own underlying call to :command:`add_custom_command`, which
|
||||
has additional documentation.
|
||||
|
||||
.. note::
|
||||
If the :envvar:`CMAKE_INSTALL_MODE` environment variable is set when the
|
||||
main project is built, it will only have an effect if the following
|
||||
@@ -943,9 +957,12 @@ control needed to implement such step-level capabilities.
|
||||
.. versionadded:: 3.2
|
||||
|
||||
Files that will be generated by this custom step but which might or might
|
||||
not have their modification time updated by subsequent builds. This list of
|
||||
not have their modification time updated by subsequent builds.
|
||||
This may also be required to explicitly declare dependencies
|
||||
when using the :generator:`Ninja` generator. This list of
|
||||
files will ultimately be passed through as the ``BYPRODUCTS`` option to the
|
||||
:command:`add_custom_command` used to implement the custom step internally.
|
||||
:command:`add_custom_command` used to implement the custom step internally,
|
||||
which has additional documentation.
|
||||
|
||||
``ALWAYS <bool>``
|
||||
When enabled, this option specifies that the custom step should always be
|
||||
@@ -3846,6 +3863,11 @@ function(_ep_add_install_command name)
|
||||
set(always 0)
|
||||
endif()
|
||||
|
||||
get_property(install_byproducts
|
||||
TARGET ${name}
|
||||
PROPERTY _EP_INSTALL_BYPRODUCTS
|
||||
)
|
||||
|
||||
set(__cmdQuoted)
|
||||
foreach(__item IN LISTS cmd)
|
||||
string(APPEND __cmdQuoted " [==[${__item}]==]")
|
||||
@@ -3854,6 +3876,7 @@ function(_ep_add_install_command name)
|
||||
ExternalProject_Add_Step(${name} install
|
||||
INDEPENDENT FALSE
|
||||
COMMAND ${__cmdQuoted}
|
||||
BYPRODUCTS \${install_byproducts}
|
||||
WORKING_DIRECTORY \${binary_dir}
|
||||
DEPENDEES build
|
||||
ALWAYS \${always}
|
||||
@@ -4081,6 +4104,7 @@ function(ExternalProject_Add name)
|
||||
# Install step options
|
||||
#
|
||||
INSTALL_COMMAND
|
||||
INSTALL_BYPRODUCTS
|
||||
#
|
||||
# Test step options
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user