1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-16 05:26:58 +08:00

add_custom_command: Add tests for custom command output checks

This commit is contained in:
Daniel Eiband
2019-09-21 15:16:36 +02:00
parent ebb9346490
commit cbb861ade8
8 changed files with 90 additions and 2 deletions

View File

@@ -396,8 +396,8 @@ bool cmAddCustomCommandCommandCheckOutputs(
// Make sure the file will not be generated into the source
// directory during an out of source build.
if (!mf.CanIWriteThisFile(o)) {
std::string e = "attempted to have a file \"" + o +
"\" in a source directory as an output of custom command.";
std::string e = "attempted to have a file\n\"" + o +
"\"\nin a source directory as an output of custom command.";
status.SetError(e);
cmSystemTools::SetFatalErrorOccured();
return false;

View File

@@ -0,0 +1 @@
1

View File

@@ -0,0 +1,36 @@
CMake Error at BadByproduct.cmake:2 \(add_custom_command\):
add_custom_command called with OUTPUT containing a "#". This character is
not allowed.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
CMake Error at BadByproduct.cmake:3 \(add_custom_command\):
add_custom_command called with OUTPUT containing a "<". This character is
not allowed.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
CMake Error at BadByproduct.cmake:4 \(add_custom_command\):
add_custom_command called with OUTPUT containing a ">". This character is
not allowed.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
CMake Error at BadByproduct.cmake:5 \(add_custom_command\):
add_custom_command called with OUTPUT containing a "<". This character is
not allowed.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
CMake Error at BadByproduct.cmake:6 \(add_custom_command\):
add_custom_command attempted to have a file
.*/f".*
in a source directory as an output of custom command.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)

View File

@@ -0,0 +1,6 @@
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
add_custom_command(OUTPUT a BYPRODUCTS "a#")
add_custom_command(OUTPUT b BYPRODUCTS "a<")
add_custom_command(OUTPUT c BYPRODUCTS "a>")
add_custom_command(OUTPUT d BYPRODUCTS "$<CONFIG>/#")
add_custom_command(OUTPUT e BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR}/f)

View File

@@ -0,0 +1 @@
1

View File

@@ -0,0 +1,36 @@
CMake Error at BadOutput.cmake:2 \(add_custom_command\):
add_custom_command called with OUTPUT containing a "#". This character is
not allowed.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
CMake Error at BadOutput.cmake:3 \(add_custom_command\):
add_custom_command called with OUTPUT containing a "<". This character is
not allowed.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
CMake Error at BadOutput.cmake:4 \(add_custom_command\):
add_custom_command called with OUTPUT containing a ">". This character is
not allowed.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
CMake Error at BadOutput.cmake:5 \(add_custom_command\):
add_custom_command called with OUTPUT containing a "<". This character is
not allowed.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
CMake Error at BadOutput.cmake:6 \(add_custom_command\):
add_custom_command attempted to have a file
.*/e".*
in a source directory as an output of custom command.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)

View File

@@ -0,0 +1,6 @@
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
add_custom_command(OUTPUT "a#" COMMAND a)
add_custom_command(OUTPUT "a<" COMMAND b)
add_custom_command(OUTPUT "a>" COMMAND c)
add_custom_command(OUTPUT "$<CONFIG>/#" COMMAND d)
add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/e COMMAND f)

View File

@@ -4,6 +4,8 @@ run_cmake(AppendLiteralQuotes)
run_cmake(AppendNoOutput)
run_cmake(AppendNotOutput)
run_cmake(BadArgument)
run_cmake(BadByproduct)
run_cmake(BadOutput)
run_cmake(GeneratedProperty)
run_cmake(LiteralQuotes)
run_cmake(NoArguments)