diff options
Diffstat (limited to 'Modules/ExternalProject')
-rw-r--r-- | Modules/ExternalProject/RepositoryInfo.txt.in | 1 | ||||
-rw-r--r-- | Modules/ExternalProject/captured_process_setup.cmake | 55 | ||||
-rw-r--r-- | Modules/ExternalProject/cfgcmd.txt.in | 1 | ||||
-rw-r--r-- | Modules/ExternalProject/copydir.cmake.in | 10 | ||||
-rw-r--r-- | Modules/ExternalProject/customcommand.cmake.in | 8 | ||||
-rw-r--r-- | Modules/ExternalProject/customcommand_preamble.cmake.in | 8 | ||||
-rw-r--r-- | Modules/ExternalProject/download.cmake.in | 205 | ||||
-rw-r--r-- | Modules/ExternalProject/extractfile.cmake.in | 73 | ||||
-rw-r--r-- | Modules/ExternalProject/gitclone.cmake.in | 93 | ||||
-rw-r--r-- | Modules/ExternalProject/gitupdate.cmake.in | 315 | ||||
-rw-r--r-- | Modules/ExternalProject/hgclone.cmake.in | 59 | ||||
-rw-r--r-- | Modules/ExternalProject/hgupdate.cmake.in | 24 | ||||
-rw-r--r-- | Modules/ExternalProject/mkdirs.cmake.in | 19 | ||||
-rw-r--r-- | Modules/ExternalProject/verify.cmake.in | 58 |
14 files changed, 0 insertions, 929 deletions
diff --git a/Modules/ExternalProject/RepositoryInfo.txt.in b/Modules/ExternalProject/RepositoryInfo.txt.in deleted file mode 100644 index d82f04c..0000000 --- a/Modules/ExternalProject/RepositoryInfo.txt.in +++ /dev/null @@ -1 +0,0 @@ -@repo_info_content@ diff --git a/Modules/ExternalProject/captured_process_setup.cmake b/Modules/ExternalProject/captured_process_setup.cmake deleted file mode 100644 index 9c8abb1..0000000 --- a/Modules/ExternalProject/captured_process_setup.cmake +++ /dev/null @@ -1,55 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -if(quiet) - set(capture_output - OUTPUT_VARIABLE out_var - ERROR_VARIABLE out_var - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_STRIP_TRAILING_WHITESPACE - ) - set(capture_error_only - ERROR_VARIABLE out_var - ERROR_STRIP_TRAILING_WHITESPACE - ) -else() - unset(capture_output) - unset(capture_error_only) -endif() - -set(out_var "") -set(accumulated_output "") - -macro(_ep_message_quiet_capture mode) - if("${mode}" STREQUAL "FATAL_ERROR") - string(JOIN "" detail "${ARGN}") - if(NOT detail STREQUAL "" AND NOT accumulated_output STREQUAL "") - string(PREPEND detail "\n") - endif() - message(FATAL_ERROR "${accumulated_output}${detail}") - endif() - - if(quiet) - if("${mode}" MATCHES "WARNING") - # We can't provide the full CMake backtrace, but we can at least record - # the warning message with a sensible prefix - string(APPEND accumulated_output "${mode}: ") - endif() - string(APPEND accumulated_output "${ARGN}\n") - else() - message(${mode} ${ARGN}) - endif() -endmacro() - -macro(_ep_accumulate_captured_output) - if(NOT "${out_var}" STREQUAL "") - string(APPEND accumulated_output "${out_var}\n") - endif() -endmacro() - -macro(_ep_command_check_result result) - _ep_accumulate_captured_output() - if(result) - _ep_message_quiet_capture(FATAL_ERROR ${ARGN}) - endif() -endmacro() diff --git a/Modules/ExternalProject/cfgcmd.txt.in b/Modules/ExternalProject/cfgcmd.txt.in deleted file mode 100644 index b3f09ef..0000000 --- a/Modules/ExternalProject/cfgcmd.txt.in +++ /dev/null @@ -1 +0,0 @@ -cmd='@cmd@' diff --git a/Modules/ExternalProject/copydir.cmake.in b/Modules/ExternalProject/copydir.cmake.in deleted file mode 100644 index 5dd3891..0000000 --- a/Modules/ExternalProject/copydir.cmake.in +++ /dev/null @@ -1,10 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -cmake_minimum_required(VERSION 3.5) - -file(REMOVE_RECURSE "@to_dir@") - -# Copy the _contents_ of the source dir into the destination dir, hence the -# trailing slash on the from_dir -file(COPY "@from_dir@/" DESTINATION "@to_dir@") diff --git a/Modules/ExternalProject/customcommand.cmake.in b/Modules/ExternalProject/customcommand.cmake.in deleted file mode 100644 index d41f31b..0000000 --- a/Modules/ExternalProject/customcommand.cmake.in +++ /dev/null @@ -1,8 +0,0 @@ - -execute_process( - COMMAND @this_command@ - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE result - ${capture_output} -) -_ep_command_check_result(result) diff --git a/Modules/ExternalProject/customcommand_preamble.cmake.in b/Modules/ExternalProject/customcommand_preamble.cmake.in deleted file mode 100644 index ae4fec6..0000000 --- a/Modules/ExternalProject/customcommand_preamble.cmake.in +++ /dev/null @@ -1,8 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -cmake_minimum_required(VERSION 3.5) - -set(quiet "@quiet@") -set(script_dir "@CMAKE_CURRENT_FUNCTION_LIST_DIR@/ExternalProject") -include(${script_dir}/captured_process_setup.cmake) diff --git a/Modules/ExternalProject/download.cmake.in b/Modules/ExternalProject/download.cmake.in deleted file mode 100644 index c8d2f28..0000000 --- a/Modules/ExternalProject/download.cmake.in +++ /dev/null @@ -1,205 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -cmake_minimum_required(VERSION 3.5) - -set(quiet "@quiet@") -set(script_dir "@CMAKE_CURRENT_FUNCTION_LIST_DIR@/ExternalProject") -include(${script_dir}/captured_process_setup.cmake) - -function(check_file_hash has_hash hash_is_good) - if("${has_hash}" STREQUAL "") - _ep_message_quiet_capture(FATAL_ERROR "has_hash Can't be empty") - endif() - - if("${hash_is_good}" STREQUAL "") - _ep_message_quiet_capture(FATAL_ERROR "hash_is_good Can't be empty") - endif() - - if("@ALGO@" STREQUAL "") - # No check - set("${has_hash}" FALSE PARENT_SCOPE) - set("${hash_is_good}" FALSE PARENT_SCOPE) - return() - endif() - - set("${has_hash}" TRUE PARENT_SCOPE) - - _ep_message_quiet_capture(STATUS "verifying file... - file='@LOCAL@'") - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - - file("@ALGO@" "@LOCAL@" actual_value) - - if(NOT "${actual_value}" STREQUAL "@EXPECT_VALUE@") - set("${hash_is_good}" FALSE PARENT_SCOPE) - _ep_message_quiet_capture(STATUS "@ALGO@ hash of - @LOCAL@ - does not match expected value - expected: '@EXPECT_VALUE@' - actual: '${actual_value}'") - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - else() - set("${hash_is_good}" TRUE PARENT_SCOPE) - endif() -endfunction() - -function(sleep_before_download attempt) - if(attempt EQUAL 0) - return() - endif() - - if(attempt EQUAL 1) - _ep_message_quiet_capture(STATUS "Retrying...") - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - return() - endif() - - set(sleep_seconds 0) - - if(attempt EQUAL 2) - set(sleep_seconds 5) - elseif(attempt EQUAL 3) - set(sleep_seconds 5) - elseif(attempt EQUAL 4) - set(sleep_seconds 15) - elseif(attempt EQUAL 5) - set(sleep_seconds 60) - elseif(attempt EQUAL 6) - set(sleep_seconds 90) - elseif(attempt EQUAL 7) - set(sleep_seconds 300) - else() - set(sleep_seconds 1200) - endif() - - _ep_message_quiet_capture(STATUS - "Retry after ${sleep_seconds} seconds (attempt #${attempt}) ..." - ) - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - - execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep "${sleep_seconds}") -endfunction() - -if("@LOCAL@" STREQUAL "") - message(FATAL_ERROR "LOCAL can't be empty") -endif() - -if("@REMOTE@" STREQUAL "") - message(FATAL_ERROR "REMOTE can't be empty") -endif() - -function(download_and_verify) - if(EXISTS "@LOCAL@") - check_file_hash(has_hash hash_is_good) - if(has_hash) - if(hash_is_good) - _ep_message_quiet_capture(STATUS -"File already exists and hash match (skip download): - file='@LOCAL@' - @ALGO@='@EXPECT_VALUE@'" - ) - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - return() - else() - _ep_message_quiet_capture(STATUS - "File already exists but hash mismatch. Removing..." - ) - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - file(REMOVE "@LOCAL@") - endif() - else() - _ep_message_quiet_capture(STATUS -"File already exists but no hash specified (use URL_HASH): - file='@LOCAL@' -Old file will be removed and new file downloaded from URL." - ) - file(REMOVE "@LOCAL@") - endif() - endif() - - set(retry_number 5) - - _ep_message_quiet_capture(STATUS "Downloading... - dst='@LOCAL@' - timeout='@TIMEOUT_MSG@' - inactivity timeout='@INACTIVITY_TIMEOUT_MSG@'" - ) - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - set(download_retry_codes 7 6 8 15) - set(skip_url_list) - set(status_code) - foreach(i RANGE ${retry_number}) - if(status_code IN_LIST download_retry_codes) - sleep_before_download(${i}) - endif() - foreach(url @REMOTE@) - if(NOT url IN_LIST skip_url_list) - _ep_message_quiet_capture(STATUS "Using src='${url}'") - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - - @TLS_VERIFY_CODE@ - @TLS_CAINFO_CODE@ - @NETRC_CODE@ - @NETRC_FILE_CODE@ - - file( - DOWNLOAD - "${url}" "@LOCAL@" - @SHOW_PROGRESS@ - @TIMEOUT_ARGS@ - @INACTIVITY_TIMEOUT_ARGS@ - STATUS status - LOG log - @USERPWD_ARGS@ - @HTTP_HEADERS_ARGS@ - ) - - list(GET status 0 status_code) - list(GET status 1 status_string) - - if(status_code EQUAL 0) - check_file_hash(has_hash hash_is_good) - if(has_hash AND NOT hash_is_good) - _ep_message_quiet_capture(STATUS "Hash mismatch, removing...") - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - file(REMOVE "@LOCAL@") - else() - _ep_message_quiet_capture(STATUS "Downloading... done") - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - return() - endif() - else() - string(APPEND logFailedURLs -"error: downloading '${url}' failed - status_code: ${status_code} - status_string: ${status_string} - log: - --- LOG BEGIN --- - ${log} - --- LOG END --- - " - ) - if(NOT status_code IN_LIST download_retry_codes) - list(APPEND skip_url_list "${url}") - break() - endif() - endif() - endif() - endforeach() - endforeach() - - _ep_message_quiet_capture(FATAL_ERROR -"Each download failed! - ${logFailedURLs} - " - ) - -endfunction() - -download_and_verify() - -set(extract_script @extract_script_filename@) -if(NOT "${extract_script}" STREQUAL "") - include(${extract_script}) -endif() diff --git a/Modules/ExternalProject/extractfile.cmake.in b/Modules/ExternalProject/extractfile.cmake.in deleted file mode 100644 index d46de73..0000000 --- a/Modules/ExternalProject/extractfile.cmake.in +++ /dev/null @@ -1,73 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -cmake_minimum_required(VERSION 3.5) - -set(quiet "@quiet@") -set(script_dir "@CMAKE_CURRENT_FUNCTION_LIST_DIR@/ExternalProject") -include(${script_dir}/captured_process_setup.cmake) - -# Make file names absolute: -# -get_filename_component(filename "@filename@" ABSOLUTE) -get_filename_component(directory "@directory@" ABSOLUTE) - -_ep_message_quiet_capture(STATUS "extracting... - src='${filename}' - dst='${directory}'" -) - -if(NOT EXISTS "${filename}") - _ep_message_quiet_capture(FATAL_ERROR - "File to extract does not exist: '${filename}'" - ) -endif() - -# Prepare a space for extracting: -# -set(i 1234) -while(EXISTS "${directory}/../ex-@name@${i}") - math(EXPR i "${i} + 1") -endwhile() -set(ut_dir "${directory}/../ex-@name@${i}") -file(MAKE_DIRECTORY "${ut_dir}") - -# Extract it: -# -_ep_message_quiet_capture(STATUS "extracting... [tar @args@]") -execute_process(COMMAND ${CMAKE_COMMAND} -E tar @args@ ${filename} - WORKING_DIRECTORY ${ut_dir} - RESULT_VARIABLE rv - ${capture_output} -) -_ep_accumulate_captured_output() - -if(NOT rv EQUAL 0) - _ep_message_quiet_capture(STATUS "extracting... [error clean up]") - file(REMOVE_RECURSE "${ut_dir}") - _ep_message_quiet_capture(FATAL_ERROR "Extract of '${filename}' failed") -endif() - -# Analyze what came out of the tar file: -# -_ep_message_quiet_capture(STATUS "extracting... [analysis]") -file(GLOB contents "${ut_dir}/*") -list(REMOVE_ITEM contents "${ut_dir}/.DS_Store") -list(LENGTH contents n) -if(NOT n EQUAL 1 OR NOT IS_DIRECTORY "${contents}") - set(contents "${ut_dir}") -endif() - -# Move "the one" directory to the final directory: -# -_ep_message_quiet_capture(STATUS "extracting... [rename]") -file(REMOVE_RECURSE ${directory}) -get_filename_component(contents ${contents} ABSOLUTE) -file(RENAME ${contents} ${directory}) - -# Clean up: -# -_ep_message_quiet_capture(STATUS "extracting... [clean up]") -file(REMOVE_RECURSE "${ut_dir}") - -_ep_message_quiet_capture(STATUS "extracting... done") diff --git a/Modules/ExternalProject/gitclone.cmake.in b/Modules/ExternalProject/gitclone.cmake.in deleted file mode 100644 index edbdd72..0000000 --- a/Modules/ExternalProject/gitclone.cmake.in +++ /dev/null @@ -1,93 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -cmake_minimum_required(VERSION 3.5) - -set(quiet "@quiet@") -set(script_dir "@CMAKE_CURRENT_FUNCTION_LIST_DIR@/ExternalProject") -include(${script_dir}/captured_process_setup.cmake) - -if(EXISTS "@gitclone_stampfile@" AND EXISTS "@gitclone_infofile@" AND - "@gitclone_stampfile@" IS_NEWER_THAN "@gitclone_infofile@") - if(NOT quiet) - message(STATUS - "Avoiding repeated git clone, stamp file is up to date: " - "'@gitclone_stampfile@'" - ) - endif() - return() -endif() - -execute_process( - COMMAND ${CMAKE_COMMAND} -E rm -rf "@source_dir@" - RESULT_VARIABLE error_code - ${capture_output} -) -_ep_command_check_result( - error_code "Failed to remove directory: '@source_dir@'" -) - -# try the clone 3 times in case there is an odd git clone issue -set(error_code 1) -set(number_of_tries 0) -while(error_code AND number_of_tries LESS 3) - # If you are seeing the following call hang and you have QUIET enabled, try - # turning QUIET off to show any output immediately. The command may be - # blocking while waiting for user input (e.g. a password to a SSH key). - execute_process( - COMMAND "@git_EXECUTABLE@" @git_options@ - clone @git_clone_options@ "@git_repository@" "@src_name@" - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} - ) - if(NOT "${out_var}" STREQUAL "") - string(APPEND accumulated_output "${out_var}\n") - endif() - math(EXPR number_of_tries "${number_of_tries} + 1") -endwhile() -if(number_of_tries GREATER 1) - set(msg "Had to git clone more than once: ${number_of_tries} times.") - if(quiet) - string(APPEND accumulated_output "${msg}\n") - else() - message(STATUS "${msg}") - endif() -endif() -_ep_command_check_result( - error_code "Failed to clone repository: '@git_repository@'" -) - -execute_process( - COMMAND "@git_EXECUTABLE@" @git_options@ - checkout "@git_tag@" @git_checkout_explicit--@ - WORKING_DIRECTORY "@work_dir@/@src_name@" - RESULT_VARIABLE error_code - ${capture_output} -) -_ep_command_check_result(error_code "Failed to checkout tag: '@git_tag@'") - -set(init_submodules @init_submodules@) -if(init_submodules) - execute_process( - COMMAND "@git_EXECUTABLE@" @git_options@ - submodule update @git_submodules_recurse@ --init @git_submodules@ - WORKING_DIRECTORY "@work_dir@/@src_name@" - RESULT_VARIABLE error_code - ${capture_output} - ) - _ep_command_check_result( - error_code "Failed to update submodules in: '@work_dir@/@src_name@'" - ) -endif() - -# Complete success, update the script-last-run stamp file: -# -execute_process( - COMMAND ${CMAKE_COMMAND} -E copy "@gitclone_infofile@" "@gitclone_stampfile@" - RESULT_VARIABLE error_code - ${capture_output} -) -_ep_command_check_result( - error_code "Failed to copy script-last-run stamp file: '@gitclone_stampfile@'" -) diff --git a/Modules/ExternalProject/gitupdate.cmake.in b/Modules/ExternalProject/gitupdate.cmake.in deleted file mode 100644 index fc2a6ab..0000000 --- a/Modules/ExternalProject/gitupdate.cmake.in +++ /dev/null @@ -1,315 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -cmake_minimum_required(VERSION 3.5) - -set(quiet "@quiet@") -set(script_dir "@CMAKE_CURRENT_FUNCTION_LIST_DIR@/ExternalProject") -include(${script_dir}/captured_process_setup.cmake) - -function(get_hash_for_ref ref out_var err_var) - execute_process( - COMMAND "@git_EXECUTABLE@" rev-parse "${ref}" - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - OUTPUT_VARIABLE ref_hash - ERROR_VARIABLE error_msg - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - if(error_code) - set(${out_var} "" PARENT_SCOPE) - else() - set(${out_var} "${ref_hash}" PARENT_SCOPE) - endif() - set(${err_var} "${error_msg}" PARENT_SCOPE) -endfunction() - -get_hash_for_ref(HEAD head_sha error_msg) -if(head_sha STREQUAL "") - message(FATAL_ERROR "Failed to get the hash for HEAD:\n${error_msg}") -endif() - - -execute_process( - COMMAND "@git_EXECUTABLE@" show-ref "@git_tag@" - WORKING_DIRECTORY "@work_dir@" - OUTPUT_VARIABLE show_ref_output -) -if(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/remotes/") - # Given a full remote/branch-name and we know about it already. Since - # branches can move around, we always have to fetch. - set(fetch_required YES) - set(checkout_name "@git_tag@") - -elseif(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/tags/") - # Given a tag name that we already know about. We don't know if the tag we - # have matches the remote though (tags can move), so we should fetch. - set(fetch_required YES) - set(checkout_name "@git_tag@") - - # Special case to preserve backward compatibility: if we are already at the - # same commit as the tag we hold locally, don't do a fetch and assume the tag - # hasn't moved on the remote. - # FIXME: We should provide an option to always fetch for this case - get_hash_for_ref("@git_tag@" tag_sha error_msg) - if(tag_sha STREQUAL head_sha) - _ep_message_quiet_capture(VERBOSE "Already at requested tag: ${tag_sha}") - return() - endif() - -elseif(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/heads/") - # Given a branch name without any remote and we already have a branch by that - # name. We might already have that branch checked out or it might be a - # different branch. It isn't safe to use a bare branch name without the - # remote, so do a fetch and replace the ref with one that includes the remote. - set(fetch_required YES) - set(checkout_name "@git_remote_name@/@git_tag@") - -else() - get_hash_for_ref("@git_tag@" tag_sha error_msg) - if(tag_sha STREQUAL head_sha) - # Have the right commit checked out already - _ep_message_quiet_capture(VERBOSE "Already at requested ref: ${tag_sha}") - return() - - elseif(tag_sha STREQUAL "") - # We don't know about this ref yet, so we have no choice but to fetch. - # We deliberately swallow any error message at the default log level - # because it can be confusing for users to see a failed git command. - # That failure is being handled here, so it isn't an error. - set(fetch_required YES) - set(checkout_name "@git_tag@") - if(NOT error_msg STREQUAL "") - _ep_message_quiet_capture(VERBOSE "${error_msg}") - endif() - - else() - # We have the commit, so we know we were asked to find a commit hash - # (otherwise it would have been handled further above), but we don't - # have that commit checked out yet - set(fetch_required NO) - set(checkout_name "@git_tag@") - if(NOT error_msg STREQUAL "") - _ep_message_quiet_capture(WARNING "${error_msg}") - endif() - - endif() -endif() - -if(fetch_required) - _ep_message_quiet_capture(VERBOSE "Fetching latest from the remote @git_remote_name@") - execute_process( - COMMAND "@git_EXECUTABLE@" fetch --tags --force "@git_remote_name@" - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} - ) - _ep_command_check_result( - error_code "Failed to fetch from the remote @git_remote_name@'" - ) -endif() - -set(git_update_strategy "@git_update_strategy@") -if(git_update_strategy STREQUAL "") - # Backward compatibility requires REBASE as the default behavior - set(git_update_strategy REBASE) -endif() - -if(git_update_strategy MATCHES "^REBASE(_CHECKOUT)?$") - # Asked to potentially try to rebase first, maybe with fallback to checkout. - # We can't if we aren't already on a branch and we shouldn't if that local - # branch isn't tracking the one we want to checkout. - execute_process( - COMMAND "@git_EXECUTABLE@" symbolic-ref -q HEAD - WORKING_DIRECTORY "@work_dir@" - OUTPUT_VARIABLE current_branch - OUTPUT_STRIP_TRAILING_WHITESPACE - # Don't test for an error. If this isn't a branch, we get a non-zero error - # code but empty output. - ) - - if(current_branch STREQUAL "") - # Not on a branch, checkout is the only sensible option since any rebase - # would always fail (and backward compatibility requires us to checkout in - # this situation) - set(git_update_strategy CHECKOUT) - - else() - execute_process( - COMMAND "@git_EXECUTABLE@" for-each-ref - "--format='%(upstream:short)'" "${current_branch}" - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code # There is no error if no upstream is set - OUTPUT_VARIABLE upstream_branch - OUTPUT_STRIP_TRAILING_WHITESPACE - ${capture_error_only} - ) - _ep_command_check_result(error_code) - if(NOT upstream_branch STREQUAL checkout_name) - # Not safe to rebase when asked to checkout a different branch to the one - # we are tracking. If we did rebase, we could end up with arbitrary - # commits added to the ref we were asked to checkout if the current local - # branch happens to be able to rebase onto the target branch. There would - # be no error message and the user wouldn't know this was occurring. - set(git_update_strategy CHECKOUT) - endif() - - endif() -elseif(NOT git_update_strategy STREQUAL "CHECKOUT") - _ep_message_quiet_capture(FATAL_ERROR - "Unsupported git update strategy: ${git_update_strategy}" - ) -endif() - - -# Check if stash is needed -execute_process( - COMMAND "@git_EXECUTABLE@" status --porcelain - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - OUTPUT_VARIABLE repo_status - ${capture_error_only} -) -_ep_command_check_result(error_code "Failed to get the status") -string(LENGTH "${repo_status}" need_stash) - -# If not in clean state, stash changes in order to be able to perform a -# rebase or checkout without losing those changes permanently -if(need_stash) - execute_process( - COMMAND "@git_EXECUTABLE@" stash save @git_stash_save_options@ - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} - ) - _ep_command_check_result(error_code) -endif() - -if(git_update_strategy STREQUAL "CHECKOUT") - execute_process( - COMMAND "@git_EXECUTABLE@" checkout "${checkout_name}" - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} - ) - _ep_command_check_result(error_code) -else() - execute_process( - COMMAND "@git_EXECUTABLE@" rebase "${checkout_name}" - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - OUTPUT_VARIABLE rebase_output - ERROR_VARIABLE rebase_output - ) - if(error_code) - # Rebase failed, undo the rebase attempt before continuing - execute_process( - COMMAND "@git_EXECUTABLE@" rebase --abort - WORKING_DIRECTORY "@work_dir@" - ) - - if(NOT git_update_strategy STREQUAL "REBASE_CHECKOUT") - # Not allowed to do a checkout as a fallback, so cannot proceed - if(need_stash) - execute_process( - COMMAND "@git_EXECUTABLE@" stash pop --index --quiet - WORKING_DIRECTORY "@work_dir@" - ) - endif() - _ep_message_quiet_capture(FATAL_ERROR - "\nFailed to rebase in: '@work_dir@'." - "\nOutput from the attempted rebase follows:" - "\n${rebase_output}" - "\n\nYou will have to resolve the conflicts manually" - ) - endif() - - # Fall back to checkout. We create an annotated tag so that the user - # can manually inspect the situation and revert if required. - # We can't log the failed rebase output because MSVC sees it and - # intervenes, causing the build to fail even though it completes. - # Write it to a file instead. - string(TIMESTAMP tag_timestamp "%Y%m%dT%H%M%S" UTC) - set(tag_name _cmake_ExternalProject_moved_from_here_${tag_timestamp}Z) - set(error_log_file ${CMAKE_CURRENT_LIST_DIR}/rebase_error_${tag_timestamp}Z.log) - file(WRITE ${error_log_file} "${rebase_output}") - _ep_message_quiet_capture(WARNING - "Rebase failed, output has been saved to ${error_log_file}" - "\nFalling back to checkout, previous commit tagged as ${tag_name}" - ) - execute_process( - COMMAND "@git_EXECUTABLE@" tag -a - -m "ExternalProject attempting to move from here to ${checkout_name}" - ${tag_name} - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} - ) - _ep_command_check_result(error_code) - - execute_process( - COMMAND "@git_EXECUTABLE@" checkout "${checkout_name}" - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} - ) - _ep_command_check_result(error_code) - endif() -endif() - -if(need_stash) - # Put back the stashed changes - execute_process( - COMMAND "@git_EXECUTABLE@" stash pop --index --quiet - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} - ) - _ep_accumulate_captured_output() - if(error_code) - # Stash pop --index failed: Try again dropping the index - execute_process( - COMMAND "@git_EXECUTABLE@" reset --hard --quiet - WORKING_DIRECTORY "@work_dir@" - ${capture_output} - ) - _ep_accumulate_captured_output() - execute_process( - COMMAND "@git_EXECUTABLE@" stash pop --quiet - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} - ) - _ep_accumulate_captured_output() - if(error_code) - # Stash pop failed: Restore previous state. - execute_process( - COMMAND "@git_EXECUTABLE@" reset --hard --quiet ${head_sha} - WORKING_DIRECTORY "@work_dir@" - ${capture_output} - ) - _ep_accumulate_captured_output() - execute_process( - COMMAND "@git_EXECUTABLE@" stash pop --index --quiet - WORKING_DIRECTORY "@work_dir@" - ${capture_output} - ) - _ep_accumulate_captured_output() - _ep_message_quiet_capture(FATAL_ERROR - "Failed to unstash changes in: '@work_dir@'.\n" - "You will have to resolve the conflicts manually" - ) - endif() - endif() -endif() - -set(init_submodules "@init_submodules@") -if(init_submodules) - execute_process( - COMMAND "@git_EXECUTABLE@" submodule update @git_submodules_recurse@ --init @git_submodules@ - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} - ) - _ep_command_check_result(error_code) -endif() diff --git a/Modules/ExternalProject/hgclone.cmake.in b/Modules/ExternalProject/hgclone.cmake.in deleted file mode 100644 index 9a574d2..0000000 --- a/Modules/ExternalProject/hgclone.cmake.in +++ /dev/null @@ -1,59 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -cmake_minimum_required(VERSION 3.5) - -set(quiet "@quiet@") -set(script_dir "@CMAKE_CURRENT_FUNCTION_LIST_DIR@/ExternalProject") -include(${script_dir}/captured_process_setup.cmake) - -if(EXISTS "@hgclone_stampfile@" AND EXISTS "@hgclone_infofile@" AND - "@hgclone_stampfile@" IS_NEWER_THAN "@hgclone_infofile@") - if(NOT quiet) - message(STATUS - "Avoiding repeated hg clone, stamp file is up to date: " - "'@hgclone_stampfile@'" - ) - endif() - return() -endif() - -execute_process( - COMMAND ${CMAKE_COMMAND} -E rm -rf "@source_dir@" - RESULT_VARIABLE error_code - ${capture_output} -) -_ep_command_check_result( - error_code "Failed to remove directory: '@source_dir@'" -) - -execute_process( - COMMAND "@hg_EXECUTABLE@" clone -U "@hg_repository@" "@src_name@" - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} -) -_ep_command_check_result( - error_code "Failed to clone repository: '@hg_repository@'" -) - -execute_process( - COMMAND "@hg_EXECUTABLE@" update @hg_tag@ - WORKING_DIRECTORY "@work_dir@/@src_name@" - RESULT_VARIABLE error_code - ${capture_output} -) -_ep_command_check_result( - error_code "Failed to checkout tag: '@hg_tag@'" -) - -# Complete success, update the script-last-run stamp file: -# -execute_process( - COMMAND ${CMAKE_COMMAND} -E copy "@hgclone_infofile@" "@hgclone_stampfile@" - RESULT_VARIABLE error_code - ${capture_output} -) -_ep_command_check_result( - error_code "Failed to copy script-last-run stamp file: '@hgclone_stampfile@'" -) diff --git a/Modules/ExternalProject/hgupdate.cmake.in b/Modules/ExternalProject/hgupdate.cmake.in deleted file mode 100644 index a82a819..0000000 --- a/Modules/ExternalProject/hgupdate.cmake.in +++ /dev/null @@ -1,24 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -cmake_minimum_required(VERSION 3.19) - -set(quiet "@quiet@") -set(script_dir "@CMAKE_CURRENT_FUNCTION_LIST_DIR@/ExternalProject") -include(${script_dir}/captured_process_setup.cmake) - -execute_process( - COMMAND "@hg_EXECUTABLE@" pull - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} -) -_ep_command_check_result(error_code) - -execute_process( - COMMAND "@hg_EXECUTABLE@" update @hg_tag@ - WORKING_DIRECTORY "@work_dir@" - RESULT_VARIABLE error_code - ${capture_output} -) -_ep_command_check_result(error_code) diff --git a/Modules/ExternalProject/mkdirs.cmake.in b/Modules/ExternalProject/mkdirs.cmake.in deleted file mode 100644 index 73e80fa..0000000 --- a/Modules/ExternalProject/mkdirs.cmake.in +++ /dev/null @@ -1,19 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -cmake_minimum_required(VERSION 3.5) - -file(MAKE_DIRECTORY - "@source_dir@" - "@binary_dir@" - "@install_dir@" - "@tmp_dir@" - "@stamp_dir@" - "@download_dir@" - "@log_dir@" -) - -set(configSubDirs @CMAKE_CONFIGURATION_TYPES@) -foreach(subDir IN LISTS configSubDirs) - file(MAKE_DIRECTORY "@stamp_dir@/${subDir}") -endforeach() diff --git a/Modules/ExternalProject/verify.cmake.in b/Modules/ExternalProject/verify.cmake.in deleted file mode 100644 index cd34ba9..0000000 --- a/Modules/ExternalProject/verify.cmake.in +++ /dev/null @@ -1,58 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -cmake_minimum_required(VERSION 3.5) - -set(quiet "@quiet@") -set(script_dir "@CMAKE_CURRENT_FUNCTION_LIST_DIR@/ExternalProject") -include(${script_dir}/captured_process_setup.cmake) - -if("@LOCAL@" STREQUAL "") - message(FATAL_ERROR "LOCAL can't be empty") -endif() - -if(NOT EXISTS "@LOCAL@") - message(FATAL_ERROR "File not found: @LOCAL@") -endif() - -function(do_verify) - if("@ALGO@" STREQUAL "") - _ep_message_quiet_capture(WARNING - "File will not be verified since no URL_HASH specified" - ) - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - return() - endif() - - if("@EXPECT_VALUE@" STREQUAL "") - _ep_message_quiet_capture(FATAL_ERROR "EXPECT_VALUE can't be empty") - endif() - - _ep_message_quiet_capture(STATUS -"verifying file... - file='@LOCAL@'" - ) - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) - - file("@ALGO@" "@LOCAL@" actual_value) - - if(NOT "${actual_value}" STREQUAL "@EXPECT_VALUE@") - _ep_message_quiet_capture(FATAL_ERROR -"error: @ALGO@ hash of - @LOCAL@ -does not match expected value - expected: '@EXPECT_VALUE@' - actual: '${actual_value}' -") - endif() - - _ep_message_quiet_capture(STATUS "verifying file... done") - set(accumulated_output "${accumulated_output}" PARENT_SCOPE) -endfunction() - -do_verify() - -set(extract_script "@extract_script_filename@") -if(NOT "${extract_script}" STREQUAL "") - include("${extract_script}") -endif() |