diff options
author | Brad King <brad.king@kitware.com> | 2022-02-04 13:18:07 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2022-02-04 13:18:12 (GMT) |
commit | 01b89d2547a04b25c462444dd5aac751f0ec54b0 (patch) | |
tree | e6ddd12305ee550864909a309aa594066a83a187 /Modules | |
parent | c8a955584d5edeb426a0176da1847c84c3b99e89 (diff) | |
parent | cbb87e0a2c467cc9349e0d3180a5d2942fbca4e7 (diff) | |
download | CMake-01b89d2547a04b25c462444dd5aac751f0ec54b0.zip CMake-01b89d2547a04b25c462444dd5aac751f0ec54b0.tar.gz CMake-01b89d2547a04b25c462444dd5aac751f0ec54b0.tar.bz2 |
Merge topic 'ep-patch-USES_TERMINAL' into release-3.23
cbb87e0a2c ExternalProject: Add support for USES_TERMINAL_PATCH keyword
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6940
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/ExternalProject.cmake | 17 | ||||
-rw-r--r-- | Modules/FetchContent.cmake | 3 | ||||
-rw-r--r-- | Modules/FetchContent/CMakeLists.cmake.in | 1 |
3 files changed, 19 insertions, 2 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 05af822..14864d5 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -407,7 +407,7 @@ External Project Definition ``CVS_TAG <tag>`` Tag to checkout from the CVS repository. - **Update/Patch Step Options:** + **Update Step Options:** Whenever CMake is re-run, by default the external project's sources will be updated if the download method supports updates (e.g. a git repository would be checked if the ``GIT_TAG`` does not refer to a specific commit). @@ -442,6 +442,7 @@ External Project Definition This may cause a step target to be created automatically for the ``download`` step. See policy :policy:`CMP0114`. + **Patch Step Options:** ``PATCH_COMMAND <cmd>...`` Specifies a custom command to patch the sources after an update. By default, no patch command is defined. Note that it can be quite difficult @@ -750,6 +751,11 @@ External Project Definition ``USES_TERMINAL_UPDATE <bool>`` Give the update step access to the terminal. + ``USES_TERMINAL_PATCH <bool>`` + .. versionadded:: 3.23 + + Give the patch step access to the terminal. + ``USES_TERMINAL_CONFIGURE <bool>`` Give the configure step access to the terminal. @@ -3024,6 +3030,13 @@ function(_ep_add_patch_command name) set(log "") endif() + get_property(uses_terminal TARGET ${name} PROPERTY _EP_USES_TERMINAL_PATCH) + if(uses_terminal) + set(uses_terminal USES_TERMINAL 1) + else() + set(uses_terminal "") + endif() + _ep_get_update_disconnected(update_disconnected ${name}) if(update_disconnected) set(patch_dep download) @@ -3042,6 +3055,7 @@ function(_ep_add_patch_command name) WORKING_DIRECTORY \${work_dir} DEPENDEES \${patch_dep} ${log} + ${uses_terminal} )" ) endfunction() @@ -3557,6 +3571,7 @@ function(ExternalProject_Add name) # USES_TERMINAL_DOWNLOAD USES_TERMINAL_UPDATE + USES_TERMINAL_PATCH USES_TERMINAL_CONFIGURE USES_TERMINAL_BUILD USES_TERMINAL_INSTALL diff --git a/Modules/FetchContent.cmake b/Modules/FetchContent.cmake index 691d4ac..7e14756 100644 --- a/Modules/FetchContent.cmake +++ b/Modules/FetchContent.cmake @@ -920,13 +920,14 @@ function(__FetchContent_directPopulate contentName) BUILD_COMMAND INSTALL_COMMAND TEST_COMMAND - # We force both of these to be ON since we are always executing serially + # We force these to be ON since we are always executing serially # and we want all steps to have access to the terminal in case they # need input from the command line (e.g. ask for a private key password) # or they want to provide timely progress. We silently absorb and # discard these if they are set by the caller. USES_TERMINAL_DOWNLOAD USES_TERMINAL_UPDATE + USES_TERMINAL_PATCH ) set(multiValueArgs "") diff --git a/Modules/FetchContent/CMakeLists.cmake.in b/Modules/FetchContent/CMakeLists.cmake.in index 5ebb12f..d94b0f4 100644 --- a/Modules/FetchContent/CMakeLists.cmake.in +++ b/Modules/FetchContent/CMakeLists.cmake.in @@ -22,6 +22,7 @@ ExternalProject_Add(${contentName}-populate TEST_COMMAND "" USES_TERMINAL_DOWNLOAD YES USES_TERMINAL_UPDATE YES + USES_TERMINAL_PATCH YES ) @__FETCHCONTENT_COPY_FILE@ |