diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx index cabfe193f6..968145c2d0 100644 --- a/Source/cmExtraEclipseCDT4Generator.cxx +++ b/Source/cmExtraEclipseCDT4Generator.cxx @@ -974,7 +974,8 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const std::string cleanArgs = cmStrCat("-E chdir \"", lgen->GetObjectOutputRoot(), "\" \"", cmSystemTools::GetCMakeCommand(), "\" -P \""); - cleanArgs += lgen->GetTargetDirectory(target.get()); + cleanArgs += lgen->GetTargetDirectory( + target.get(), cmStateEnums::IntermediateDirKind::ObjectFiles); cleanArgs += "/cmake_clean.cmake\""; cmExtraEclipseCDT4Generator::AppendTarget( xml, "Clean", cmSystemTools::GetCMakeCommand(), cleanArgs, diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 91fa0f3052..cb12b2e4e3 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -5436,7 +5436,7 @@ std::string cmGeneratorTarget::GetSupportDirectory( { cmLocalGenerator* lg = this->GetLocalGenerator(); return cmStrCat(lg->GetObjectOutputRoot(kind), '/', - lg->GetTargetDirectory(this)); + lg->GetTargetDirectory(this, kind)); } std::string cmGeneratorTarget::GetCMFSupportDirectory( @@ -5445,10 +5445,10 @@ std::string cmGeneratorTarget::GetCMFSupportDirectory( cmLocalGenerator* lg = this->GetLocalGenerator(); if (!lg->AlwaysUsesCMFPaths()) { return cmStrCat(lg->GetCurrentBinaryDirectory(), "/CMakeFiles/", - lg->GetTargetDirectory(this)); + lg->GetTargetDirectory(this, kind)); } return cmStrCat(lg->GetObjectOutputRoot(kind), '/', - lg->GetTargetDirectory(this)); + lg->GetTargetDirectory(this, kind)); } bool cmGeneratorTarget::IsLinkable() const diff --git a/Source/cmLocalCommonGenerator.cxx b/Source/cmLocalCommonGenerator.cxx index b79b24bdb3..3c026eed99 100644 --- a/Source/cmLocalCommonGenerator.cxx +++ b/Source/cmLocalCommonGenerator.cxx @@ -105,9 +105,10 @@ std::string cmLocalCommonGenerator::ComputeLongTargetDirectory( } std::string cmLocalCommonGenerator::GetTargetDirectory( - cmGeneratorTarget const* target) const + cmGeneratorTarget const* target, + cmStateEnums::IntermediateDirKind kind) const { - if (target->GetUseShortObjectNames()) { + if (target->GetUseShortObjectNames(kind)) { return this->ComputeShortTargetDirectory(target); } return this->ComputeLongTargetDirectory(target); diff --git a/Source/cmLocalCommonGenerator.h b/Source/cmLocalCommonGenerator.h index 1c104a7a85..82271a7454 100644 --- a/Source/cmLocalCommonGenerator.h +++ b/Source/cmLocalCommonGenerator.h @@ -15,6 +15,9 @@ class cmGlobalGenerator; class cmMakefile; struct cmObjectLocations; class cmSourceFile; +namespace cmStateEnums { +enum class IntermediateDirKind; +} /** \class cmLocalCommonGenerator * \brief Common infrastructure for Makefile and Ninja local generators. @@ -37,7 +40,8 @@ public: std::string ComputeLongTargetDirectory(cmGeneratorTarget const* gt) const; std::string GetTargetDirectory( - cmGeneratorTarget const* target) const override; + cmGeneratorTarget const* target, + cmStateEnums::IntermediateDirKind kind) const override; void ComputeObjectFilenames( std::map& mapping, diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 45b0a65c8f..a46b36da3c 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -4381,7 +4381,8 @@ std::string const& cmLocalGenerator::GetCurrentSourceDirectory() const } std::string cmLocalGenerator::GetTargetDirectory( - cmGeneratorTarget const* /*unused*/) const + cmGeneratorTarget const* /*unused*/, + cmStateEnums::IntermediateDirKind /*kind*/) const { cmSystemTools::Error("GetTargetDirectory" " called on cmLocalGenerator"); diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h index 81b516b542..9f38a903ff 100644 --- a/Source/cmLocalGenerator.h +++ b/Source/cmLocalGenerator.h @@ -429,7 +429,8 @@ public: * per-target support directory. */ virtual std::string GetTargetDirectory( - cmGeneratorTarget const* target) const; + cmGeneratorTarget const* target, + cmStateEnums::IntermediateDirKind kind) const; cmPolicies::PolicyStatus GetPolicyStatus(cmPolicies::PolicyID id) const; diff --git a/Source/cmLocalGhsMultiGenerator.cxx b/Source/cmLocalGhsMultiGenerator.cxx index 812f025282..9bded02c2c 100644 --- a/Source/cmLocalGhsMultiGenerator.cxx +++ b/Source/cmLocalGhsMultiGenerator.cxx @@ -15,6 +15,10 @@ #include "cmStringAlgorithms.h" #include "cmSystemTools.h" +namespace cmStateEnums { +enum class IntermediateDirKind; +} + cmLocalGhsMultiGenerator::cmLocalGhsMultiGenerator(cmGlobalGenerator* gg, cmMakefile* mf) : cmLocalGenerator(gg, mf) @@ -24,7 +28,8 @@ cmLocalGhsMultiGenerator::cmLocalGhsMultiGenerator(cmGlobalGenerator* gg, cmLocalGhsMultiGenerator::~cmLocalGhsMultiGenerator() = default; std::string cmLocalGhsMultiGenerator::GetTargetDirectory( - cmGeneratorTarget const* target) const + cmGeneratorTarget const* target, + cmStateEnums::IntermediateDirKind /*kind*/) const { std::string dir = cmStrCat(target->GetName(), ".dir"); return dir; diff --git a/Source/cmLocalGhsMultiGenerator.h b/Source/cmLocalGhsMultiGenerator.h index ae80b2b591..390648788e 100644 --- a/Source/cmLocalGhsMultiGenerator.h +++ b/Source/cmLocalGhsMultiGenerator.h @@ -12,6 +12,9 @@ class cmGlobalGenerator; class cmMakefile; struct cmObjectLocations; class cmSourceFile; +namespace cmStateEnums { +enum class IntermediateDirKind; +} /** \class cmLocalGhsMultiGenerator * \brief Write Green Hills MULTI project files. @@ -32,7 +35,8 @@ public: void Generate() override; std::string GetTargetDirectory( - cmGeneratorTarget const* target) const override; + cmGeneratorTarget const* target, + cmStateEnums::IntermediateDirKind kind) const override; void ComputeObjectFilenames( std::map& mapping, diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 1d6d973125..02abea8cd9 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -2229,10 +2229,11 @@ void cmLocalVisualStudio7Generator::ReadAndStoreExternalGUID( } std::string cmLocalVisualStudio7Generator::GetTargetDirectory( - cmGeneratorTarget const* target) const + cmGeneratorTarget const* target, + cmStateEnums::IntermediateDirKind kind) const { std::string dir; - if (target->GetUseShortObjectNames()) { + if (target->GetUseShortObjectNames(kind)) { dir = this->ComputeShortTargetDirectory(target); } else { dir = cmStrCat(target->GetName(), ".dir"); diff --git a/Source/cmLocalVisualStudio7Generator.h b/Source/cmLocalVisualStudio7Generator.h index c1002c5b69..837a0e1526 100644 --- a/Source/cmLocalVisualStudio7Generator.h +++ b/Source/cmLocalVisualStudio7Generator.h @@ -12,6 +12,7 @@ #include #include "cmLocalVisualStudioGenerator.h" +#include "cmStateTypes.h" #include "cmVisualStudioGeneratorOptions.h" class cmCustomCommand; @@ -76,7 +77,8 @@ public: void SetBuildType(BuildType, std::string const& name); std::string GetTargetDirectory( - cmGeneratorTarget const* target) const override; + cmGeneratorTarget const* target, + cmStateEnums::IntermediateDirKind kind) const override; cmSourceFile* CreateVCProjBuildRule(); void WriteStampFiles(); std::string ComputeLongestObjectDirectory( diff --git a/Source/cmLocalXCodeGenerator.cxx b/Source/cmLocalXCodeGenerator.cxx index 5d6a32fa6b..c46ff1b3f9 100644 --- a/Source/cmLocalXCodeGenerator.cxx +++ b/Source/cmLocalXCodeGenerator.cxx @@ -28,7 +28,8 @@ cmLocalXCodeGenerator::cmLocalXCodeGenerator(cmGlobalGenerator* gg, cmLocalXCodeGenerator::~cmLocalXCodeGenerator() = default; std::string cmLocalXCodeGenerator::GetTargetDirectory( - cmGeneratorTarget const* target) const + cmGeneratorTarget const* target, + cmStateEnums::IntermediateDirKind /*kind*/) const { return cmStrCat(target->GetName(), ".dir"); } diff --git a/Source/cmLocalXCodeGenerator.h b/Source/cmLocalXCodeGenerator.h index 7b501fb6e5..aea32e1c54 100644 --- a/Source/cmLocalXCodeGenerator.h +++ b/Source/cmLocalXCodeGenerator.h @@ -30,7 +30,8 @@ public: ~cmLocalXCodeGenerator() override; std::string GetTargetDirectory( - cmGeneratorTarget const* target) const override; + cmGeneratorTarget const* target, + cmStateEnums::IntermediateDirKind kind) const override; void AppendFlagEscape(std::string& flags, std::string const& rawFlag) const override; void Generate() override;