aboutsummaryrefslogtreecommitdiff
path: root/scripts/cmake
diff options
context:
space:
mode:
authorras0219 <533828+ras0219@users.noreply.github.com>2020-07-07 13:53:19 -0700
committerGitHub <noreply@github.com>2020-07-07 13:53:19 -0700
commitf9bdf139535f25dd0847fecff22a1c8c606da613 (patch)
tree9ffe023676b93d7f4bd4400dced790d96b3ac906 /scripts/cmake
parent12333a6b96848445fd04b19a8f7e00cdaf2ad0b6 (diff)
downloadvcpkg-f9bdf139535f25dd0847fecff22a1c8c606da613.tar.gz
vcpkg-f9bdf139535f25dd0847fecff22a1c8c606da613.zip
[vcpkg] Implement --editable (#12200)
--editable suppresses binary caching and source re-extraction for packages listed on the command line (similar to --head). This fundamentally changes the port maintenance loop, so several example documents were updated. To avoid users having substantial changes suddenly destroyed by forgetting to pass --editable, "clean" sources have different extract locations. The undocumented command `build` implies `--editable`. Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Diffstat (limited to 'scripts/cmake')
-rw-r--r--scripts/cmake/vcpkg_extract_source_archive_ex.cmake9
1 files changed, 8 insertions, 1 deletions
diff --git a/scripts/cmake/vcpkg_extract_source_archive_ex.cmake b/scripts/cmake/vcpkg_extract_source_archive_ex.cmake
index 67916d09d..411000bf8 100644
--- a/scripts/cmake/vcpkg_extract_source_archive_ex.cmake
+++ b/scripts/cmake/vcpkg_extract_source_archive_ex.cmake
@@ -101,9 +101,16 @@ function(vcpkg_extract_source_archive_ex)
string(SHA512 PATCHSET_HASH ${PATCHSET_HASH})
string(SUBSTRING ${PATCHSET_HASH} 0 10 PATCHSET_HASH)
set(SOURCE_PATH "${_vesae_WORKING_DIRECTORY}/${SHORTENED_SANITIZED_REF}-${PATCHSET_HASH}")
+ if (NOT _VCPKG_EDITABLE)
+ string(APPEND SOURCE_PATH ".clean")
+ if(EXISTS ${SOURCE_PATH})
+ message(STATUS "Cleaning sources at ${SOURCE_PATH}. Pass --editable to vcpkg to reuse sources.")
+ file(REMOVE_RECURSE ${SOURCE_PATH})
+ endif()
+ endif()
if(NOT EXISTS ${SOURCE_PATH})
- set(TEMP_DIR "${_vesae_WORKING_DIRECTORY}/TEMP")
+ set(TEMP_DIR "${_vesae_WORKING_DIRECTORY}/${SHORTENED_SANITIZED_REF}-${PATCHSET_HASH}.tmp")
file(REMOVE_RECURSE ${TEMP_DIR})
vcpkg_extract_source_archive("${_vesae_ARCHIVE}" "${TEMP_DIR}")