diff options
author | Craig Scott <craig.scott@crascit.com> | 2022-02-03 11:00:44 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-02-03 14:27:35 (GMT) |
commit | cbb87e0a2c467cc9349e0d3180a5d2942fbca4e7 (patch) | |
tree | 5147648bb518fa80df0a0b590007ca9147783e2a /Modules | |
parent | 3d85c0072db6e97938b9fe7157483bcd41918b08 (diff) | |
download | CMake-cbb87e0a2c467cc9349e0d3180a5d2942fbca4e7.zip CMake-cbb87e0a2c467cc9349e0d3180a5d2942fbca4e7.tar.gz CMake-cbb87e0a2c467cc9349e0d3180a5d2942fbca4e7.tar.bz2 |
ExternalProject: Add support for USES_TERMINAL_PATCH keyword
This brings the patch step into line with all the others which already
had their own `USES_TERMINAL_<step>` keyword. All steps (including
patch) already have their own `LOG_<step>` keyword too, so the lack of
`USES_TERMINAL_PATCH` was inconsistent.
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@ |