mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
Merge topic 'ninja-multi-automoc-regression' into release-3.18
a9fd3a107dNinja Multi-Config: Fix dependencies of utility targetsf1199bdc96Ninja Multi-Config: Fix cleaning of utility targets with commands657047cd24Ninja Multi-Config: Fix clean:all targetc35d1927a5Tests: Pass additional Qt information to Ninja and NMC tests Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5177
This commit is contained in:
@@ -1170,7 +1170,8 @@ void cmGlobalNinjaGenerator::AppendTargetDependsClosure(
|
||||
|
||||
for (auto const& dep_target : this->GetTargetDirectDepends(target)) {
|
||||
if (dep_target->GetType() == cmStateEnums::INTERFACE_LIBRARY ||
|
||||
(this->EnableCrossConfigBuild() && !dep_target.IsCross())) {
|
||||
(target->GetType() != cmStateEnums::UTILITY &&
|
||||
this->EnableCrossConfigBuild() && !dep_target.IsCross())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1863,6 +1864,7 @@ void cmGlobalNinjaGenerator::WriteTargetClean(std::ostream& os)
|
||||
byproducts.push_back(
|
||||
this->BuildAlias(GetByproductsForCleanTargetName(), config));
|
||||
}
|
||||
byproducts.emplace_back(GetByproductsForCleanTargetName());
|
||||
build.Variables["TARGETS"] = cmJoin(byproducts, " ");
|
||||
|
||||
for (auto const& fileConfig : configs) {
|
||||
|
||||
@@ -100,6 +100,8 @@ void cmNinjaUtilityTargetGenerator::Generate(const std::string& config)
|
||||
if (genTarget->Target->GetType() != cmStateEnums::GLOBAL_TARGET) {
|
||||
lg->AppendTargetOutputs(genTarget, gg->GetByproductsForCleanTarget(),
|
||||
config);
|
||||
std::copy(util_outputs.begin(), util_outputs.end(),
|
||||
std::back_inserter(gg->GetByproductsForCleanTarget()));
|
||||
}
|
||||
lg->AppendTargetDepends(genTarget, deps, config, config);
|
||||
|
||||
|
||||
@@ -143,14 +143,14 @@ if(CMAKE_GENERATOR MATCHES "Ninja")
|
||||
list(APPEND Ninja_ARGS -DTEST_Fortran=1)
|
||||
endif()
|
||||
if(CMake_TEST_Qt5 AND Qt5Core_FOUND)
|
||||
list(APPEND Ninja_ARGS -DCMake_TEST_Qt5=1 -DCMAKE_TEST_Qt5Core_Version=${Qt5Core_VERSION})
|
||||
list(APPEND Ninja_ARGS -DCMake_TEST_Qt5=1 -DQt5Core_DIR=${Qt5Core_DIR} -DCMAKE_TEST_Qt5Core_Version=${Qt5Core_VERSION})
|
||||
endif()
|
||||
add_RunCMake_test(Ninja)
|
||||
set(NinjaMultiConfig_ARGS
|
||||
-DCYGWIN=${CYGWIN}
|
||||
)
|
||||
if(CMake_TEST_Qt5 AND Qt5Core_FOUND)
|
||||
list(APPEND NinjaMultiConfig_ARGS -DCMake_TEST_Qt5=1)
|
||||
list(APPEND NinjaMultiConfig_ARGS -DCMake_TEST_Qt5=1 -DQt5Core_DIR=${Qt5Core_DIR} -DCMAKE_TEST_Qt5Core_Version=${Qt5Core_VERSION})
|
||||
endif()
|
||||
if(DEFINED CMake_TEST_CUDA)
|
||||
list(APPEND NinjaMultiConfig_ARGS -DCMake_TEST_CUDA=${CMake_TEST_CUDA})
|
||||
|
||||
@@ -327,6 +327,7 @@ run_ChangeBuildType()
|
||||
function(run_Qt5AutoMocDeps)
|
||||
if(CMake_TEST_Qt5 AND CMAKE_TEST_Qt5Core_Version VERSION_GREATER_EQUAL 5.15.0)
|
||||
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Qt5AutoMocDeps-build)
|
||||
set(RunCMake_TEST_OPTIONS "-DQt5Core_DIR=${Qt5Core_DIR}")
|
||||
run_cmake(Qt5AutoMocDeps)
|
||||
unset(RunCMake_TEST_OPTIONS)
|
||||
# Build the project.
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
check_files("${RunCMake_TEST_BINARY_DIR}"
|
||||
INCLUDE
|
||||
)
|
||||
@@ -0,0 +1,6 @@
|
||||
check_files("${RunCMake_TEST_BINARY_DIR}"
|
||||
INCLUDE
|
||||
${TARGET_BYPRODUCTS_LeafCustom}
|
||||
${TARGET_BYPRODUCTS_RootCustom}
|
||||
${TARGET_FILE_RootExe_Release}
|
||||
)
|
||||
@@ -0,0 +1,6 @@
|
||||
check_files("${RunCMake_TEST_BINARY_DIR}"
|
||||
INCLUDE
|
||||
${TARGET_FILE_LeafExe_Release}
|
||||
${TARGET_BYPRODUCTS_RootCustom}
|
||||
${TARGET_FILE_RootExe_Release}
|
||||
)
|
||||
@@ -34,6 +34,16 @@ 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)
|
||||
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]==])
|
||||
")
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/Common.cmake)
|
||||
generate_output_files(TopPostBuild SubdirPostBuild)
|
||||
generate_output_files(TopPostBuild SubdirPostBuild RootExe LeafExe)
|
||||
file(APPEND "${CMAKE_BINARY_DIR}/target_files.cmake" "include(\${CMAKE_CURRENT_LIST_DIR}/target_files_custom.cmake)\n")
|
||||
|
||||
@@ -235,6 +235,10 @@ run_cmake_build(CustomCommandsAndTargets debug-in-release-graph-postbuild Releas
|
||||
run_ninja(CustomCommandsAndTargets release-postbuild build-Release.ninja SubdirPostBuild)
|
||||
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_cmake_build(CustomCommandsAndTargets release-clean Release clean:all)
|
||||
run_ninja(CustomCommandsAndTargets release-leaf-exe build-Release.ninja LeafExe)
|
||||
|
||||
unset(RunCMake_TEST_BINARY_DIR)
|
||||
|
||||
@@ -300,7 +304,7 @@ endif()
|
||||
|
||||
if(CMake_TEST_Qt5)
|
||||
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Qt5-build)
|
||||
set(RunCMake_TEST_OPTIONS "-DCMAKE_CROSS_CONFIGS=all")
|
||||
set(RunCMake_TEST_OPTIONS "-DCMAKE_CROSS_CONFIGS=all" "-DQt5Core_DIR=${Qt5Core_DIR}")
|
||||
run_cmake_configure(Qt5)
|
||||
unset(RunCMake_TEST_OPTIONS)
|
||||
include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake)
|
||||
|
||||
Reference in New Issue
Block a user