mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-05 06:40:26 -06:00
Since commit df58dbb0e9 (VS: Add CMake input files to ZERO_CHECK,
2023-03-19, v3.27.0-rc1~157^2), projects that specify the same file both
as input to `configure_file` and as the `MAIN_DEPENDENCY` of a custom
command fail to configure. Revert the change pending further
investigation. Add a test case demonstrating the problem.
Issue: #24557
Fixes: #25149
73 lines
2.2 KiB
CMake
73 lines
2.2 KiB
CMake
include(RunCMake)
|
|
|
|
run_cmake(AppendLiteralQuotes)
|
|
run_cmake(AppendNoOutput)
|
|
run_cmake(AppendNotOutput)
|
|
run_cmake(BadArgument)
|
|
run_cmake(BadByproduct)
|
|
run_cmake(BadOutput)
|
|
run_cmake(BadCommand)
|
|
run_cmake(ConfigureFile)
|
|
run_cmake(GeneratedProperty)
|
|
run_cmake(LiteralQuotes)
|
|
run_cmake(NoArguments)
|
|
run_cmake(NoOutputOrTarget)
|
|
run_cmake(OutputAndTarget)
|
|
run_cmake(SourceByproducts)
|
|
run_cmake(SourceUsesTerminal)
|
|
run_cmake(TargetImported)
|
|
run_cmake(TargetLiteralQuotes)
|
|
run_cmake(TargetNotInDir)
|
|
|
|
if(${RunCMake_GENERATOR} MATCHES "Visual Studio ([^89]|[89][0-9])")
|
|
run_cmake(RemoveEmptyCommands)
|
|
endif()
|
|
|
|
run_cmake(AssigningMultipleTargets)
|
|
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/AssigningMultipleTargets-build)
|
|
set(RunCMake_TEST_NO_CLEAN 1)
|
|
run_cmake_command(AssigningMultipleTargets-build ${CMAKE_COMMAND} --build .)
|
|
unset(RunCMake_TEST_BINARY_DIR)
|
|
unset(RunCMake_TEST_NO_CLEAN)
|
|
|
|
if(NOT RunCMake_GENERATOR STREQUAL "Ninja Multi-Config")
|
|
run_cmake(WorkingDirectory)
|
|
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/WorkingDirectory-build)
|
|
set(RunCMake_TEST_NO_CLEAN 1)
|
|
if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
|
|
set(RunCMake-stdout-file WorkingDirectory-build-multi-config-stdout.txt)
|
|
else()
|
|
set(RunCMake-stdout-file WorkingDirectory-build-single-config-stdout.txt)
|
|
endif()
|
|
run_cmake_command(WorkingDirectory-build ${CMAKE_COMMAND} --build . --config Debug)
|
|
unset(RunCMake-stdout-file)
|
|
unset(RunCMake_TEST_BINARY_DIR)
|
|
unset(RunCMake_TEST_NO_CLEAN)
|
|
endif()
|
|
|
|
function(test_genex name)
|
|
run_cmake(${name})
|
|
|
|
set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${name}-build")
|
|
set(RunCMake_TEST_NO_CLEAN 1)
|
|
run_cmake_command(${name}-build ${CMAKE_COMMAND} --build .)
|
|
|
|
if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/wdir/touched")
|
|
message(SEND_ERROR "File not created by target-dependent add_custom_command()!")
|
|
endif()
|
|
|
|
unset(RunCMake_TEST_NO_CLEAN)
|
|
unset(RunCMake_TEST_BINARY_DIR)
|
|
endfunction()
|
|
|
|
test_genex(TargetGenexEvent)
|
|
|
|
if(NOT RunCMake_GENERATOR STREQUAL "Xcode")
|
|
block()
|
|
run_cmake(CommentGenex)
|
|
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CommentGenex-build)
|
|
set(RunCMake_TEST_NO_CLEAN 1)
|
|
run_cmake_command(CommentGenex-build ${CMAKE_COMMAND} --build .)
|
|
endblock()
|
|
endif()
|