mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00
autogen: compute short directories too
Not just short directory roots. The test suites did an improper generator check and masked them as the generator masks were put in place after the core development but before the autogen-specific logic tests were created.
This commit is contained in:
@@ -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,
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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<cmSourceFile const*, cmObjectLocations>& mapping,
|
||||
|
@@ -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");
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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<cmSourceFile const*, cmObjectLocations>& mapping,
|
||||
|
@@ -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");
|
||||
|
@@ -12,6 +12,7 @@
|
||||
#include <vector>
|
||||
|
||||
#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(
|
||||
|
@@ -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");
|
||||
}
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user