Ninja: Remove config suffix from order-only target

Fixes: #20621
This commit is contained in:
Kyle Edwards
2020-04-23 09:18:10 -04:00
parent 8c00f5ef0a
commit b45976fe10
5 changed files with 36 additions and 6 deletions

View File

@@ -1055,10 +1055,9 @@ void cmGlobalNinjaGenerator::WriteAssumedSourceDependencies()
}
std::string cmGlobalNinjaGenerator::OrderDependsTargetForTarget(
cmGeneratorTarget const* target, const std::string& config)
cmGeneratorTarget const* target, const std::string& /*config*/) const
{
return "cmake_object_order_depends_target_" + target->GetName() + "_" +
cmSystemTools::UpperCase(config);
return cmStrCat("cmake_object_order_depends_target_", target->GetName());
}
void cmGlobalNinjaGenerator::AppendTargetOutputs(
@@ -2679,3 +2678,10 @@ bool cmGlobalNinjaMultiGenerator::ReadCacheEntriesForBuild(
return true;
}
std::string cmGlobalNinjaMultiGenerator::OrderDependsTargetForTarget(
cmGeneratorTarget const* target, const std::string& config) const
{
return cmStrCat("cmake_object_order_depends_target_", target->GetName(), '_',
cmSystemTools::UpperCase(config));
}

View File

@@ -315,8 +315,8 @@ public:
ASD.insert(deps.begin(), deps.end());
}
static std::string OrderDependsTargetForTarget(
cmGeneratorTarget const* target, const std::string& config);
virtual std::string OrderDependsTargetForTarget(
cmGeneratorTarget const* target, const std::string& config) const;
void AppendTargetOutputs(
cmGeneratorTarget const* target, cmNinjaDeps& outputs,
@@ -644,6 +644,9 @@ public:
bool SupportsCrossConfigs() const override { return true; }
bool SupportsDefaultConfigs() const override { return true; }
std::string OrderDependsTargetForTarget(
cmGeneratorTarget const* target, const std::string& config) const override;
protected:
bool OpenBuildFileStreams() override;
void CloseBuildFileStreams() override;

View File

@@ -142,7 +142,7 @@ bool cmNinjaTargetGenerator::NeedDyndep(std::string const& lang) const
std::string cmNinjaTargetGenerator::OrderDependsTargetForTarget(
const std::string& config)
{
return cmGlobalNinjaGenerator::OrderDependsTargetForTarget(
return this->GetGlobalGenerator()->OrderDependsTargetForTarget(
this->GeneratorTarget, config);
}

View File

@@ -0,0 +1,12 @@
enable_language(C)
function(change_build_type_subdir)
set(CMAKE_BUILD_TYPE Release)
add_subdirectory(SubDirPrefix)
endfunction()
change_build_type_subdir()
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
add_executable(hello hello_sub_greeting.c)
target_link_libraries(hello greeting)

View File

@@ -307,3 +307,12 @@ function (run_PreventConfigureFileDupBuildRule)
run_ninja("${RunCMake_TEST_BINARY_DIR}" -w dupbuild=err)
endfunction()
run_PreventConfigureFileDupBuildRule()
function (run_ChangeBuildType)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/ChangeBuildType-build)
set(RunCMake_TEST_OPTIONS "-DCMAKE_BUILD_TYPE:STRING=Debug")
run_cmake(ChangeBuildType)
unset(RunCMake_TEST_OPTIONS)
run_ninja("${RunCMake_TEST_BINARY_DIR}" -w dupbuild=err)
endfunction()
run_ChangeBuildType()