From 733801b57f61233601e1c11e4cb7ed121ec4fa71 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Sat, 2 Jul 2022 00:18:46 -0400 Subject: file(TIMESTAMP): Interpret relative paths w.r.t. the source tree Fixes: #23610 --- Source/cmFileCommand.cxx | 6 +++++- Tests/RunCMake/file/RunCMakeTest.cmake | 1 + Tests/RunCMake/file/TIMESTAMP-stdout.txt | 1 + Tests/RunCMake/file/TIMESTAMP.cmake | 2 ++ 4 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 Tests/RunCMake/file/TIMESTAMP-stdout.txt create mode 100644 Tests/RunCMake/file/TIMESTAMP.cmake diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 1cfe29c..ecbc5c5 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -2836,7 +2836,11 @@ bool HandleTimestampCommand(std::vector const& args, unsigned int argsIndex = 1; - const std::string& filename = args[argsIndex++]; + std::string filename = args[argsIndex++]; + if (!cmsys::SystemTools::FileIsFullPath(filename)) { + filename = cmStrCat(status.GetMakefile().GetCurrentSourceDirectory(), '/', + filename); + } const std::string& outputVariable = args[argsIndex++]; diff --git a/Tests/RunCMake/file/RunCMakeTest.cmake b/Tests/RunCMake/file/RunCMakeTest.cmake index aff4735..db88956 100644 --- a/Tests/RunCMake/file/RunCMakeTest.cmake +++ b/Tests/RunCMake/file/RunCMakeTest.cmake @@ -47,6 +47,7 @@ run_cmake(GLOB_RECURSE) run_cmake(GLOB_RECURSE-noexp-FOLLOW_SYMLINKS) run_cmake(SIZE) run_cmake(SIZE-error-does-not-exist) +run_cmake(TIMESTAMP) run_cmake(REMOVE-empty) diff --git a/Tests/RunCMake/file/TIMESTAMP-stdout.txt b/Tests/RunCMake/file/TIMESTAMP-stdout.txt new file mode 100644 index 0000000..42be6ba --- /dev/null +++ b/Tests/RunCMake/file/TIMESTAMP-stdout.txt @@ -0,0 +1 @@ +-- '[0-9]*-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-6][0-9]Z' diff --git a/Tests/RunCMake/file/TIMESTAMP.cmake b/Tests/RunCMake/file/TIMESTAMP.cmake new file mode 100644 index 0000000..2bd2577 --- /dev/null +++ b/Tests/RunCMake/file/TIMESTAMP.cmake @@ -0,0 +1,2 @@ +file(TIMESTAMP "TIMESTAMP.cmake" output UTC) +message(STATUS "'${output}'") -- cgit v0.12