Merge topic 'ninja-multi-automoc-regression'
23fe4b861f
Ninja Multi-Config: Fix dependencies of custom commands
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5238
This commit is contained in:
commit
5d952fd6e2
@ -1222,6 +1222,7 @@ void cmGlobalNinjaGenerator::AppendTargetDependsClosure(
|
||||
for (auto const& dep_target : this->GetTargetDirectDepends(target)) {
|
||||
if (!dep_target->IsInBuildSystem() ||
|
||||
(target->GetType() != cmStateEnums::UTILITY &&
|
||||
dep_target->GetType() != cmStateEnums::UTILITY &&
|
||||
this->EnableCrossConfigBuild() && !dep_target.IsCross())) {
|
||||
continue;
|
||||
}
|
||||
|
@ -0,0 +1,5 @@
|
||||
check_files("${RunCMake_TEST_BINARY_DIR}"
|
||||
INCLUDE
|
||||
${TARGET_BYPRODUCTS_LeafExe}
|
||||
${TARGET_BYPRODUCTS_RootCustom}
|
||||
)
|
@ -1,6 +1,7 @@
|
||||
check_files("${RunCMake_TEST_BINARY_DIR}"
|
||||
INCLUDE
|
||||
${TARGET_FILE_LeafExe_Release}
|
||||
${TARGET_BYPRODUCTS_LeafExe}
|
||||
${TARGET_BYPRODUCTS_RootCustom}
|
||||
${TARGET_FILE_RootExe_Release}
|
||||
)
|
||||
|
@ -35,13 +35,15 @@ add_subdirectory(CustomCommandsAndTargetsSubdir)
|
||||
create_targets(Top)
|
||||
|
||||
add_executable(RootExe main.c)
|
||||
add_custom_target(RootCustom COMMAND ${CMAKE_COMMAND} -E touch Root.txt BYPRODUCTS Root.txt)
|
||||
add_executable(LeafExe main.c)
|
||||
add_custom_target(LeafCustom COMMAND ${CMAKE_COMMAND} -E touch Leaf.txt BYPRODUCTS Leaf.txt DEPENDS RootCustom RootExe)
|
||||
add_dependencies(LeafExe RootExe RootCustom)
|
||||
add_custom_target(RootCustom COMMAND ${CMAKE_COMMAND} -E touch RootCustom.txt BYPRODUCTS RootCustom.txt)
|
||||
add_custom_command(OUTPUT main.c COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/main.c ${CMAKE_CURRENT_BINARY_DIR}/main.c DEPENDS RootCustom)
|
||||
add_executable(LeafExe ${CMAKE_CURRENT_BINARY_DIR}/main.c)
|
||||
add_custom_target(LeafCustom COMMAND ${CMAKE_COMMAND} -E touch LeafCustom.txt BYPRODUCTS LeafCustom.txt DEPENDS RootCustom RootExe)
|
||||
add_dependencies(LeafExe RootExe)
|
||||
file(APPEND "${CMAKE_BINARY_DIR}/target_files_custom.cmake"
|
||||
"set(TARGET_BYPRODUCTS_LeafCustom [==[${CMAKE_CURRENT_BINARY_DIR}/Leaf.txt]==])
|
||||
set(TARGET_BYPRODUCTS_RootCustom [==[${CMAKE_CURRENT_BINARY_DIR}/Root.txt]==])
|
||||
"set(TARGET_BYPRODUCTS_LeafCustom [==[${CMAKE_CURRENT_BINARY_DIR}/LeafCustom.txt]==])
|
||||
set(TARGET_BYPRODUCTS_LeafExe [==[${CMAKE_CURRENT_BINARY_DIR}/main.c]==])
|
||||
set(TARGET_BYPRODUCTS_RootCustom [==[${CMAKE_CURRENT_BINARY_DIR}/RootCustom.txt]==])
|
||||
")
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/Common.cmake)
|
||||
|
@ -0,0 +1,7 @@
|
||||
input: CUSTOM_COMMAND(
|
||||
[^
|
||||
]*)*
|
||||
\|\| exe_autogen_timestamp_deps:Debug(
|
||||
[^
|
||||
]*)*
|
||||
outputs:
|
@ -236,9 +236,11 @@ run_ninja(CustomCommandsAndTargets release-postbuild build-Release.ninja SubdirP
|
||||
run_cmake_build(CustomCommandsAndTargets debug-targetpostbuild Debug TopTargetPostBuild)
|
||||
run_ninja(CustomCommandsAndTargets release-targetpostbuild build-Release.ninja SubdirTargetPostBuild)
|
||||
run_cmake_build(CustomCommandsAndTargets release-clean Release clean:all)
|
||||
run_ninja(CustomCommandsAndTargets release-leaf-custom build-Release.ninja Leaf.txt)
|
||||
run_ninja(CustomCommandsAndTargets release-leaf-custom build-Release.ninja LeafCustom.txt)
|
||||
run_cmake_build(CustomCommandsAndTargets release-clean Release clean:all)
|
||||
run_ninja(CustomCommandsAndTargets release-leaf-exe build-Release.ninja LeafExe)
|
||||
run_cmake_build(CustomCommandsAndTargets release-clean Release clean:all)
|
||||
run_ninja(CustomCommandsAndTargets release-leaf-byproduct build-Release.ninja main.c)
|
||||
|
||||
unset(RunCMake_TEST_BINARY_DIR)
|
||||
|
||||
@ -314,4 +316,7 @@ if(CMake_TEST_Qt5)
|
||||
unset(RunCMake_TEST_OPTIONS)
|
||||
include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake)
|
||||
run_cmake_build(Qt5 debug-in-release-graph Release exe:Debug)
|
||||
if(CMAKE_TEST_Qt5Core_Version VERSION_GREATER_EQUAL 5.15.0)
|
||||
run_ninja(Qt5 automoc-check build-Debug.ninja -t query exe_autogen/timestamp)
|
||||
endif()
|
||||
endif()
|
||||
|
Loading…
Reference in New Issue
Block a user