From f9bdf139535f25dd0847fecff22a1c8c606da613 Mon Sep 17 00:00:00 2001 From: ras0219 <533828+ras0219@users.noreply.github.com> Date: Tue, 7 Jul 2020 13:53:19 -0700 Subject: [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 --- scripts/cmake/vcpkg_extract_source_archive_ex.cmake | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'scripts') 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}") -- cgit v1.2.3