From 404cddb7bbb0e05bba2f3023f0ee2fa302c35124 Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Sun, 21 Feb 2021 17:40:21 +1100 Subject: ExternalProject: Fix misuse of IS_NEWER_THAN in timestamp checks When using a file system which only has second resolution timestamps, there is a reasonably high likelihood of timestamps being the same. The IS_NEWER_THAN test returns true when timestamps are the same, so don't redo downloads when they match exactly. --- Modules/ExternalProject/gitclone.cmake.in | 3 ++- Modules/ExternalProject/hgclone.cmake.in | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'Modules/ExternalProject') diff --git a/Modules/ExternalProject/gitclone.cmake.in b/Modules/ExternalProject/gitclone.cmake.in index a2e900c112..edbdd72bde 100644 --- a/Modules/ExternalProject/gitclone.cmake.in +++ b/Modules/ExternalProject/gitclone.cmake.in @@ -7,7 +7,8 @@ set(quiet "@quiet@") set(script_dir "@CMAKE_CURRENT_FUNCTION_LIST_DIR@/ExternalProject") include(${script_dir}/captured_process_setup.cmake) -if(NOT "@gitclone_infofile@" IS_NEWER_THAN "@gitclone_stampfile@") +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: " diff --git a/Modules/ExternalProject/hgclone.cmake.in b/Modules/ExternalProject/hgclone.cmake.in index 5561955cad..9a574d201c 100644 --- a/Modules/ExternalProject/hgclone.cmake.in +++ b/Modules/ExternalProject/hgclone.cmake.in @@ -7,7 +7,8 @@ set(quiet "@quiet@") set(script_dir "@CMAKE_CURRENT_FUNCTION_LIST_DIR@/ExternalProject") include(${script_dir}/captured_process_setup.cmake) -if(NOT "@hgclone_infofile@" IS_NEWER_THAN "@hgclone_stampfile@") +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: " -- cgit v1.2.1