mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-17 15:32:10 +08:00

This makes the scripts easier to work on, since the separate files don't require the extra level of escaping that the inlined code did. This also means the scripts can be rendered with appropriate syntax highlighting in IDEs, etc.
50 lines
1.4 KiB
CMake
50 lines
1.4 KiB
CMake
# 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)
|
|
|
|
if(EXISTS "@hgclone_stampfile@" AND EXISTS "@hgclone_infofile@" AND
|
|
"@hgclone_stampfile@" IS_NEWER_THAN "@hgclone_infofile@")
|
|
message(STATUS
|
|
"Avoiding repeated hg clone, stamp file is up to date: "
|
|
"'@hgclone_stampfile@'"
|
|
)
|
|
return()
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E rm -rf "@source_dir@"
|
|
RESULT_VARIABLE error_code
|
|
)
|
|
if(error_code)
|
|
message(FATAL_ERROR "Failed to remove directory: '@source_dir@'")
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND "@hg_EXECUTABLE@" clone -U "@hg_repository@" "@src_name@"
|
|
WORKING_DIRECTORY "@work_dir@"
|
|
RESULT_VARIABLE error_code
|
|
)
|
|
if(error_code)
|
|
message(FATAL_ERROR "Failed to clone repository: '@hg_repository@'")
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND "@hg_EXECUTABLE@" update @hg_tag@
|
|
WORKING_DIRECTORY "@work_dir@/@src_name@"
|
|
RESULT_VARIABLE error_code
|
|
)
|
|
if(error_code)
|
|
message(FATAL_ERROR "Failed to checkout tag: '@hg_tag@'")
|
|
endif()
|
|
|
|
# Complete success, update the script-last-run stamp file:
|
|
#
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E copy "@hgclone_infofile@" "@hgclone_stampfile@"
|
|
RESULT_VARIABLE error_code
|
|
)
|
|
if(error_code)
|
|
message(FATAL_ERROR "Failed to copy script-last-run stamp file: '@hgclone_stampfile@'")
|
|
endif()
|