mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-11 08:20:18 -06:00
Makefile: Fix double escaping when DEPFILE is used
In commit cfd8a5ac1f (Makefiles: Add support of DEPFILE for
add_custom_command, 2020-12-04, v3.20.0-rc1~237^2~1) we added a
`ConvertToOutputPath` call on a path given to the `depends` field of
`WriteMakeRule`. The latter already handles escaping for Makefile
syntax.
Fixes: #25554
This commit is contained in:
committed by
Brad King
parent
5162ff64d4
commit
7198f0d149
@@ -1722,9 +1722,8 @@ void cmMakefileTargetGenerator::GenerateCustomRuleFile(
|
||||
|
||||
if (!ccg.GetCC().GetDepfile().empty()) {
|
||||
// Add dependency over timestamp file for dependencies management
|
||||
auto dependTimestamp = cmSystemTools::ConvertToOutputPath(
|
||||
this->LocalGenerator->MaybeRelativeToTopBinDir(
|
||||
cmStrCat(this->TargetBuildDirectoryFull, "/compiler_depend.ts")));
|
||||
auto dependTimestamp = this->LocalGenerator->MaybeRelativeToTopBinDir(
|
||||
cmStrCat(this->TargetBuildDirectoryFull, "/compiler_depend.ts"));
|
||||
|
||||
depends.emplace_back(std::move(dependTimestamp));
|
||||
}
|
||||
|
||||
@@ -24,6 +24,17 @@ add_library(toplib STATIC toplib.c)
|
||||
|
||||
add_subdirectory(DepfileSubdir)
|
||||
|
||||
set(TEST_SPACE 1)
|
||||
if(CMAKE_GENERATOR STREQUAL "Unix Makefiles")
|
||||
execute_process(COMMAND "${CMAKE_MAKE_PROGRAM}" no_such_target --version RESULT_VARIABLE res OUTPUT_VARIABLE out ERROR_VARIABLE out)
|
||||
if(NOT res EQUAL 0 OR NOT out MATCHES "GNU")
|
||||
set(TEST_SPACE 0)
|
||||
endif()
|
||||
endif()
|
||||
if(TEST_SPACE)
|
||||
add_subdirectory(DepfileSubdirWithSpace)
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT toplib2.c
|
||||
DEPFILE toplib2.c.d
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
add_subdirectory("path with space")
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/dummy.txt"
|
||||
COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_CURRENT_BINARY_DIR}/dummy.txt"
|
||||
DEPFILE dummy.txt.d
|
||||
)
|
||||
|
||||
add_custom_target(subdir_space ALL
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/dummy.txt"
|
||||
)
|
||||
Reference in New Issue
Block a user