diff options
author | Craig Scott <craig.scott@crascit.com> | 2023-05-23 12:37:20 (GMT) |
---|---|---|
committer | Craig Scott <craig.scott@crascit.com> | 2023-05-23 12:39:44 (GMT) |
commit | 1512dc43cba72c499873b39949b4f2cce772d825 (patch) | |
tree | 8d454ef1e89e19483e375c42d09c1d2727e6b59c /Help | |
parent | 1d29cf37a19880e8579de6b43e0e291aaaa494f3 (diff) | |
download | CMake-1512dc43cba72c499873b39949b4f2cce772d825.zip CMake-1512dc43cba72c499873b39949b4f2cce772d825.tar.gz CMake-1512dc43cba72c499873b39949b4f2cce772d825.tar.bz2 |
ExternalProject: Avoid reconfigure when updates are disconnected
When UPDATE_DISCONNECTED is true, create separate update_disconnected
and patch_disconnected targets which have ALWAYS set to false.
Make the configure step depend on patch_disconnected in this case too.
This ensures the configure, build, install and test steps are not
executed unnecessarily when updates are disconnected.
Make the update and patch commands depend on the details of those
steps. This ensures they are re-executed when any of those details
change, even if updates are disconnected.
Allow updates to occur even if UPDATE_DISCONNECTED is true, but don't
contact the remote in that case. If asked to update to a ref that isn't known
locally, that is now detected and causes a fatal error when updates are
disconnected. Previously, the build would have silently and erroneously
continued to use the old ref.
Fixes: #16419, #19703, #21146
Diffstat (limited to 'Help')
-rw-r--r-- | Help/release/dev/ep-update-disconnected.rst | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Help/release/dev/ep-update-disconnected.rst b/Help/release/dev/ep-update-disconnected.rst new file mode 100644 index 0000000..a162698 --- /dev/null +++ b/Help/release/dev/ep-update-disconnected.rst @@ -0,0 +1,14 @@ +ep-update-disconnected +---------------------- + +* The ``update`` and ``patch`` steps of an :module:`ExternalProject` will now + always re-execute if any of their details change, even if + ``UPDATE_DISCONNECTED`` was set to true in the call to + :command:`ExternalProject_Add`. If using the GIT download method and the + ``GIT_TAG`` is changed and the new ``GIT_TAG`` isn't already known locally, + this is now a fatal error instead of silently using the previous ``GIT_TAG``. + +* When ``UPDATE_DISCONNECTED`` is set to true in a call to + :command:`ExternalProject_Add`, the ``configure`` step will no longer + re-run on every build. It will only re-run if details of the ``download``, + ``update`` or ``patch`` step change. |