mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 09:54:15 +00:00
Merge topic 'add_custom_command-genex-slash'
c16641607f
add_custom_command: Delay slash conversion until after genex evaluation
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3791
This commit is contained in:
commit
1df2f8803b
@ -4,7 +4,6 @@
|
||||
|
||||
#include <sstream>
|
||||
#include <unordered_set>
|
||||
#include <utility>
|
||||
|
||||
#include "cmCustomCommand.h"
|
||||
#include "cmCustomCommandLines.h"
|
||||
@ -248,6 +247,8 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
|
||||
// An implicit dependency starting point is also an
|
||||
// explicit dependency.
|
||||
std::string dep = copy;
|
||||
// Upfront path conversion is correct because Genex
|
||||
// are not supported.
|
||||
cmSystemTools::ConvertToUnixSlashes(dep);
|
||||
depends.push_back(dep);
|
||||
|
||||
@ -264,9 +265,7 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
|
||||
target = copy;
|
||||
break;
|
||||
case doing_depends: {
|
||||
std::string dep = copy;
|
||||
cmSystemTools::ConvertToUnixSlashes(dep);
|
||||
depends.push_back(std::move(dep));
|
||||
depends.push_back(copy);
|
||||
} break;
|
||||
case doing_outputs:
|
||||
outputs.push_back(filename);
|
||||
|
@ -58,6 +58,7 @@ cmCustomCommandGenerator::cmCustomCommandGenerator(cmCustomCommand const& cc,
|
||||
std::vector<std::string> result =
|
||||
cmExpandedList(cge->Evaluate(this->LG, this->Config));
|
||||
for (std::string& it : result) {
|
||||
cmSystemTools::ConvertToUnixSlashes(it);
|
||||
if (cmSystemTools::FileIsFullPath(it)) {
|
||||
it = cmSystemTools::CollapseFullPath(it);
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ add_custom_target(check-part1 ALL
|
||||
-Dtest_colons_4=$<1:C:\\CMake>
|
||||
-Dtest_colons_5=$<1:C:/CMake>
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/check-part1.cmake
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 1 of 4)"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 1 of 5)"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
@ -157,7 +157,7 @@ add_custom_target(check-part2 ALL
|
||||
-Dtest_arbitrary_content_comma_9=$<1:a,,b,,>
|
||||
-Dtest_arbitrary_content_comma_10=$<1:,,a,,b,,>
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/check-part2.cmake
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 2 of 4)"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 2 of 5)"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
@ -251,7 +251,7 @@ add_custom_target(check-part3 ALL
|
||||
-Dequal22=$<EQUAL:10,-012>
|
||||
-Dequal23=$<EQUAL:-10,-012>
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/check-part3.cmake
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 3 of 4)"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 3 of 5)"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
@ -277,7 +277,27 @@ add_custom_target(check-part4 ALL
|
||||
-DWIN32=${WIN32}
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/check-part4.cmake
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 4 of 4)"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 4 of 5)"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(check-part5 ALL
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 5 of 5)"
|
||||
DEPENDS check-part5.stamp
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT check-part5.stamp
|
||||
DEPENDS $<FILTER:file.foo.bar,EXCLUDE,\\.foo\\.bar$>
|
||||
COMMAND ${CMAKE_COMMAND} -E sleep 0
|
||||
VERBATIM
|
||||
)
|
||||
set_property(SOURCE check-part5.stamp PROPERTY SYMBOLIC 1)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT file.foo.bar
|
||||
COMMAND ${CMAKE_COMMAND} -P check-part5.cmake
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
|
1
Tests/GeneratorExpression/check-part5.cmake
Normal file
1
Tests/GeneratorExpression/check-part5.cmake
Normal file
@ -0,0 +1 @@
|
||||
message(SEND_ERROR "$<FILTER:file.foo.bar,EXCLUDE,\\.foo\\.bar$> genex in DEPENDS argument of 'add_custom_command()' is not empty")
|
Loading…
Reference in New Issue
Block a user