diff options
author | Brad King <brad.king@kitware.com> | 2007-05-23 17:27:00 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2007-05-23 17:27:00 (GMT) |
commit | c288da754a3f1221ca4ebfd9c9efb8c935d499d6 (patch) | |
tree | 998d24826c3e2e32158b8255d5c1c8715139761c /Tests/BuildDepends/Project/CMakeLists.txt | |
parent | 702d785c9ae49015a770530a9c5f27e7bfaff716 (diff) | |
download | CMake-c288da754a3f1221ca4ebfd9c9efb8c935d499d6.zip CMake-c288da754a3f1221ca4ebfd9c9efb8c935d499d6.tar.gz CMake-c288da754a3f1221ca4ebfd9c9efb8c935d499d6.tar.bz2 |
BUG: Target names in the COMMAND part of a custom command should not create a file-level dependency that forces the command to rerun when the executable target rebuilds, but the target-level dependency should still be created. Target names in a DEPENDS should do both a target-level and file-level dependency. Updated the BuildDepends test to check that this works.
Diffstat (limited to 'Tests/BuildDepends/Project/CMakeLists.txt')
-rw-r--r-- | Tests/BuildDepends/Project/CMakeLists.txt | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/Tests/BuildDepends/Project/CMakeLists.txt b/Tests/BuildDepends/Project/CMakeLists.txt index f9cbc56..e831676 100644 --- a/Tests/BuildDepends/Project/CMakeLists.txt +++ b/Tests/BuildDepends/Project/CMakeLists.txt @@ -1,4 +1,30 @@ project(testRebuild) add_library(foo STATIC ${testRebuild_BINARY_DIR}/foo.cxx) -add_executable(bar bar.cxx) + +# Add a generated header that regenerates when the generator is +# rebuilt. +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/regen.h + COMMAND generator ${CMAKE_CURRENT_BINARY_DIR}/regen.h regen + DEPENDS generator # adds file-level dependency to re-run rule + ) + +# Add a generated header that does NOT regenerate when the generator +# is rebuilt. +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/noregen.h + COMMAND generator ${CMAKE_CURRENT_BINARY_DIR}/noregen.h noregen + ) + +# Test that the generator rebuilds when the static library source file +# changes. This should cause regen.h to be recreated also. +add_executable(generator generator.cxx) +target_link_libraries(generator foo) + +# Build an executable to drive the build and rebuild. +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +add_executable(bar bar.cxx + ${CMAKE_CURRENT_BINARY_DIR}/regen.h + ${CMAKE_CURRENT_BINARY_DIR}/noregen.h + ) target_link_libraries(bar foo) |