summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2023-05-23 12:37:20 (GMT)
committerCraig Scott <craig.scott@crascit.com>2023-05-23 12:39:44 (GMT)
commit1512dc43cba72c499873b39949b4f2cce772d825 (patch)
tree8d454ef1e89e19483e375c42d09c1d2727e6b59c /Help
parent1d29cf37a19880e8579de6b43e0e291aaaa494f3 (diff)
downloadCMake-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.rst14
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.