diff options
author | Brad King <brad.king@kitware.com> | 2015-04-10 17:03:34 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-04-10 20:27:42 (GMT) |
commit | 9660a3cceae12ebb3cdc49484dcef590a12eb33c (patch) | |
tree | d428b0ccad4c23027ea6adeab4decc7b858e9a3e /Tests/BuildDepends/Project | |
parent | 5c08e2559cf8ad5fc3cb220396016cf816a7b4b8 (diff) | |
download | CMake-9660a3cceae12ebb3cdc49484dcef590a12eb33c.zip CMake-9660a3cceae12ebb3cdc49484dcef590a12eb33c.tar.gz CMake-9660a3cceae12ebb3cdc49484dcef590a12eb33c.tar.bz2 |
Makefile: Fix multiple custom command outputs with one missing
The use of "cmake -E touch_nocreate" added in commit v3.2.1~4^2
(Makefile: Fix multiple custom command outputs regression, 2015-03-06)
caused builds to fail when one of the outputs is intentionally not
created. This was fixed by our parent commit by making touch_nocreate
succeed when the file is missing. Add a test case covering it.
For the Watcom WMake generator, check for the SYMBOLIC source file
property separately on each output. The mark is needed on outputs that
are not really created to tell 'wmake' not to complain that it is
missing. The mark is also needed on outputs that are created or 'wmake'
will not consider them out of date when they exist.
Inspired-by: Ben Boeckel <ben.boeckel@kitware.com>
Diffstat (limited to 'Tests/BuildDepends/Project')
-rw-r--r-- | Tests/BuildDepends/Project/CMakeLists.txt | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Tests/BuildDepends/Project/CMakeLists.txt b/Tests/BuildDepends/Project/CMakeLists.txt index cb9fbf8..0db39c5 100644 --- a/Tests/BuildDepends/Project/CMakeLists.txt +++ b/Tests/BuildDepends/Project/CMakeLists.txt @@ -164,3 +164,21 @@ add_custom_command( DEPENDS multi1-out2.txt ) add_custom_target(multi1 ALL DEPENDS multi1-out2-copy.txt) + +# Test having the first output never created. +add_custom_command( + OUTPUT multi2-dummy.txt multi2-real.txt + COMMAND ${CMAKE_COMMAND} -E touch multi2-real.txt + ) +set_property(SOURCE multi2-real.txt multi2-dummy.txt PROPERTY SYMBOLIC 1) +add_custom_target(multi2 ALL DEPENDS multi2-real.txt) + +if(TEST_MULTI3) + # Test having the second output never created. Does not work with msbuild. + add_custom_command( + OUTPUT multi3-real.txt multi3-dummy.txt + COMMAND ${CMAKE_COMMAND} -E touch multi3-real.txt + ) + set_property(SOURCE multi3-real.txt multi3-dummy.txt PROPERTY SYMBOLIC 1) + add_custom_target(multi3 ALL DEPENDS multi3-real.txt) +endif() |