diff options
author | Brad King <brad.king@kitware.com> | 2017-04-26 12:35:11 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-04-26 12:46:11 (GMT) |
commit | 434f5cef657a001bcfbaa5e8b5c4fba80215efb5 (patch) | |
tree | f6b91cfe663b4921dd5090bd1d63b691ec7c1346 /Tests/RunCMake | |
parent | 6d1be6e3826a98ffbcd3bf7d951024e34d69e452 (diff) | |
download | CMake-434f5cef657a001bcfbaa5e8b5c4fba80215efb5.zip CMake-434f5cef657a001bcfbaa5e8b5c4fba80215efb5.tar.gz CMake-434f5cef657a001bcfbaa5e8b5c4fba80215efb5.tar.bz2 |
Tests: Add case for IMPLICIT_DEPENDS in custom target
Use the `IMPLICIT_DEPENDS` option of `add_custom_command` and place the
command in a custom target. Verify that `INCLUDE_DIRECTORIES` of that
custom target are honored. This is a case that was not really designed
to work but happens to work, is useful, and makes sense. Add a test
case make sure it continues to work.
Issue: #16830
Diffstat (limited to 'Tests/RunCMake')
5 files changed, 26 insertions, 0 deletions
diff --git a/Tests/RunCMake/BuildDepends/MakeCustomIncludes.cmake b/Tests/RunCMake/BuildDepends/MakeCustomIncludes.cmake new file mode 100644 index 0000000..0f92e0e --- /dev/null +++ b/Tests/RunCMake/BuildDepends/MakeCustomIncludes.cmake @@ -0,0 +1,13 @@ +add_custom_command( + OUTPUT output.cxx + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/MakeCustomIncludes.cxx output.cxx + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/MakeCustomIncludes.cxx + IMPLICIT_DEPENDS CXX ${CMAKE_CURRENT_SOURCE_DIR}/MakeCustomIncludes.cxx) +add_custom_target(generate ALL DEPENDS output.cxx) +set_property(TARGET generate PROPERTY INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR}) + +file(GENERATE OUTPUT check-$<LOWER_CASE:$<CONFIG>>.cmake CONTENT " +set(check_pairs + \"${CMAKE_CURRENT_BINARY_DIR}/output.cxx|${CMAKE_CURRENT_BINARY_DIR}/MakeCustomIncludes.h\" + ) +") diff --git a/Tests/RunCMake/BuildDepends/MakeCustomIncludes.cxx b/Tests/RunCMake/BuildDepends/MakeCustomIncludes.cxx new file mode 100644 index 0000000..9a0edef --- /dev/null +++ b/Tests/RunCMake/BuildDepends/MakeCustomIncludes.cxx @@ -0,0 +1,6 @@ +#include "MakeCustomIncludes.h" + +int main() +{ + return MakeCustomIncludes(); +} diff --git a/Tests/RunCMake/BuildDepends/MakeCustomIncludes.step1.cmake b/Tests/RunCMake/BuildDepends/MakeCustomIncludes.step1.cmake new file mode 100644 index 0000000..6bb01a6 --- /dev/null +++ b/Tests/RunCMake/BuildDepends/MakeCustomIncludes.step1.cmake @@ -0,0 +1,3 @@ +file(WRITE "${RunCMake_TEST_BINARY_DIR}/MakeCustomIncludes.h" [[ +inline int MakeCustomIncludes() { return 1; } +]]) diff --git a/Tests/RunCMake/BuildDepends/MakeCustomIncludes.step2.cmake b/Tests/RunCMake/BuildDepends/MakeCustomIncludes.step2.cmake new file mode 100644 index 0000000..6b3151d --- /dev/null +++ b/Tests/RunCMake/BuildDepends/MakeCustomIncludes.step2.cmake @@ -0,0 +1,3 @@ +file(WRITE "${RunCMake_TEST_BINARY_DIR}/MakeCustomIncludes.h" [[ +inline int MakeCustomIncludes() { return 2; } +]]) diff --git a/Tests/RunCMake/BuildDepends/RunCMakeTest.cmake b/Tests/RunCMake/BuildDepends/RunCMakeTest.cmake index 736ecff..9941c70 100644 --- a/Tests/RunCMake/BuildDepends/RunCMakeTest.cmake +++ b/Tests/RunCMake/BuildDepends/RunCMakeTest.cmake @@ -44,6 +44,7 @@ run_BuildDepends(Custom-Symbolic-and-Byproduct) run_BuildDepends(Custom-Always) if(RunCMake_GENERATOR MATCHES "Make") + run_BuildDepends(MakeCustomIncludes) if(NOT "${RunCMake_BINARY_DIR}" STREQUAL "${RunCMake_SOURCE_DIR}") run_BuildDepends(MakeInProjectOnly) endif() |