diff options
author | Brad King <brad.king@kitware.com> | 2023-02-20 13:34:08 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2023-02-20 13:34:34 (GMT) |
commit | d18806e67336d96a9a22b860246de3f1c518ce40 (patch) | |
tree | c734e10d0aaedf072173e449d56fa37d100c2cd8 /Tests | |
parent | 20cb716e4f8061441599c3972a036e91e62b9af0 (diff) | |
parent | ea2a05f402d2e1090d8d1e92e67c08ac1e5af66a (diff) | |
download | CMake-d18806e67336d96a9a22b860246de3f1c518ce40.zip CMake-d18806e67336d96a9a22b860246de3f1c518ce40.tar.gz CMake-d18806e67336d96a9a22b860246de3f1c518ce40.tar.bz2 |
Merge topic 'ninja-custom-command-depends'
ea2a05f402 Add variable CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8220
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/RunCMake/Ninja/CustomCommandExplicitDepends.cmake | 30 | ||||
-rw-r--r-- | Tests/RunCMake/Ninja/RunCMakeTest.cmake | 28 |
2 files changed, 48 insertions, 10 deletions
diff --git a/Tests/RunCMake/Ninja/CustomCommandExplicitDepends.cmake b/Tests/RunCMake/Ninja/CustomCommandExplicitDepends.cmake index e0c2434..fefd86a 100644 --- a/Tests/RunCMake/Ninja/CustomCommandExplicitDepends.cmake +++ b/Tests/RunCMake/Ninja/CustomCommandExplicitDepends.cmake @@ -2,17 +2,35 @@ cmake_minimum_required(VERSION 3.26) project(CustomCommandExplicitDepends C) add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/command.h" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/command-option.h" COMMAND "${CMAKE_COMMAND}" -E touch - "${CMAKE_CURRENT_BINARY_DIR}/command.h" - COMMENT "Creating command.h" + "${CMAKE_CURRENT_BINARY_DIR}/command-option.h" + COMMENT "Creating command-option.h" DEPENDS_EXPLICIT_ONLY ) -add_library(dep STATIC dep.c) +set(CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY ON) +add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/command-variable-on.h" + COMMAND "${CMAKE_COMMAND}" -E touch + "${CMAKE_CURRENT_BINARY_DIR}/command-variable-on.h" + COMMENT "Creating command-variable-on.h" +) + +set(CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY OFF) +add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/command-variable-off.h" + COMMAND "${CMAKE_COMMAND}" -E touch + "${CMAKE_CURRENT_BINARY_DIR}/command-variable-off.h" + COMMENT "Creating command-variable-off.h" +) + +add_library(dep SHARED dep.c) -add_library(top STATIC +add_library(top SHARED top.c - "${CMAKE_CURRENT_BINARY_DIR}/command.h" + "${CMAKE_CURRENT_BINARY_DIR}/command-option.h" + "${CMAKE_CURRENT_BINARY_DIR}/command-variable-on.h" + "${CMAKE_CURRENT_BINARY_DIR}/command-variable-off.h" ) target_link_libraries(top PRIVATE dep) diff --git a/Tests/RunCMake/Ninja/RunCMakeTest.cmake b/Tests/RunCMake/Ninja/RunCMakeTest.cmake index 17ad035..91c48c6 100644 --- a/Tests/RunCMake/Ninja/RunCMakeTest.cmake +++ b/Tests/RunCMake/Ninja/RunCMakeTest.cmake @@ -193,11 +193,31 @@ run_LooseObjectDepends() function (run_CustomCommandExplictDepends) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CustomCommandExplicitDepends-build) run_cmake(CustomCommandExplicitDepends) - run_ninja("${RunCMake_TEST_BINARY_DIR}" "command.h") - if (EXISTS "${RunCMake_TEST_BINARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}dep${CMAKE_STATIC_LIBRARY_SUFFIX}") + + set(DEP_LIB "${RunCMake_TEST_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}dep${CMAKE_SHARED_LIBRARY_SUFFIX}") + + run_ninja("${RunCMake_TEST_BINARY_DIR}" "command-option.h") + if (EXISTS "${DEP_LIB}") + message(FATAL_ERROR + "The `dep` library was created when requesting a custom command to be " + "generated; this should no longer be necessary when passing " + "DEPENDS_EXPLICIT_ONLY option.") + endif () + + run_ninja("${RunCMake_TEST_BINARY_DIR}" "command-variable-on.h") + if (EXISTS "${DEP_LIB}") + message(FATAL_ERROR + "The `dep` library was created when requesting a custom command to be " + "generated; this should no longer be necessary when setting " + "CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY variable to ON.") + endif () + + run_ninja("${RunCMake_TEST_BINARY_DIR}" "command-variable-off.h") + if (NOT EXISTS "${DEP_LIB}") message(FATAL_ERROR - "The `dep` library was created when requesting an custom command to be " - "generated; this should no longer be necessary when passing DEPENDS_EXPLICIT_ONLY keyword.") + "The `dep` library was not created when requesting a custom command to be " + "generated; this should be necessary when setting " + "CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY variable to OFF.") endif () endfunction () run_CustomCommandExplictDepends() |