mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 19:08:07 +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 =
|
std::string cleanArgs =
|
||||||
cmStrCat("-E chdir \"", lgen->GetObjectOutputRoot(), "\" \"",
|
cmStrCat("-E chdir \"", lgen->GetObjectOutputRoot(), "\" \"",
|
||||||
cmSystemTools::GetCMakeCommand(), "\" -P \"");
|
cmSystemTools::GetCMakeCommand(), "\" -P \"");
|
||||||
cleanArgs += lgen->GetTargetDirectory(target.get());
|
cleanArgs += lgen->GetTargetDirectory(
|
||||||
|
target.get(), cmStateEnums::IntermediateDirKind::ObjectFiles);
|
||||||
cleanArgs += "/cmake_clean.cmake\"";
|
cleanArgs += "/cmake_clean.cmake\"";
|
||||||
cmExtraEclipseCDT4Generator::AppendTarget(
|
cmExtraEclipseCDT4Generator::AppendTarget(
|
||||||
xml, "Clean", cmSystemTools::GetCMakeCommand(), cleanArgs,
|
xml, "Clean", cmSystemTools::GetCMakeCommand(), cleanArgs,
|
||||||
|
@@ -5436,7 +5436,7 @@ std::string cmGeneratorTarget::GetSupportDirectory(
|
|||||||
{
|
{
|
||||||
cmLocalGenerator* lg = this->GetLocalGenerator();
|
cmLocalGenerator* lg = this->GetLocalGenerator();
|
||||||
return cmStrCat(lg->GetObjectOutputRoot(kind), '/',
|
return cmStrCat(lg->GetObjectOutputRoot(kind), '/',
|
||||||
lg->GetTargetDirectory(this));
|
lg->GetTargetDirectory(this, kind));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string cmGeneratorTarget::GetCMFSupportDirectory(
|
std::string cmGeneratorTarget::GetCMFSupportDirectory(
|
||||||
@@ -5445,10 +5445,10 @@ std::string cmGeneratorTarget::GetCMFSupportDirectory(
|
|||||||
cmLocalGenerator* lg = this->GetLocalGenerator();
|
cmLocalGenerator* lg = this->GetLocalGenerator();
|
||||||
if (!lg->AlwaysUsesCMFPaths()) {
|
if (!lg->AlwaysUsesCMFPaths()) {
|
||||||
return cmStrCat(lg->GetCurrentBinaryDirectory(), "/CMakeFiles/",
|
return cmStrCat(lg->GetCurrentBinaryDirectory(), "/CMakeFiles/",
|
||||||
lg->GetTargetDirectory(this));
|
lg->GetTargetDirectory(this, kind));
|
||||||
}
|
}
|
||||||
return cmStrCat(lg->GetObjectOutputRoot(kind), '/',
|
return cmStrCat(lg->GetObjectOutputRoot(kind), '/',
|
||||||
lg->GetTargetDirectory(this));
|
lg->GetTargetDirectory(this, kind));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cmGeneratorTarget::IsLinkable() const
|
bool cmGeneratorTarget::IsLinkable() const
|
||||||
|
@@ -105,9 +105,10 @@ std::string cmLocalCommonGenerator::ComputeLongTargetDirectory(
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::string cmLocalCommonGenerator::GetTargetDirectory(
|
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->ComputeShortTargetDirectory(target);
|
||||||
}
|
}
|
||||||
return this->ComputeLongTargetDirectory(target);
|
return this->ComputeLongTargetDirectory(target);
|
||||||
|
@@ -15,6 +15,9 @@ class cmGlobalGenerator;
|
|||||||
class cmMakefile;
|
class cmMakefile;
|
||||||
struct cmObjectLocations;
|
struct cmObjectLocations;
|
||||||
class cmSourceFile;
|
class cmSourceFile;
|
||||||
|
namespace cmStateEnums {
|
||||||
|
enum class IntermediateDirKind;
|
||||||
|
}
|
||||||
|
|
||||||
/** \class cmLocalCommonGenerator
|
/** \class cmLocalCommonGenerator
|
||||||
* \brief Common infrastructure for Makefile and Ninja local generators.
|
* \brief Common infrastructure for Makefile and Ninja local generators.
|
||||||
@@ -37,7 +40,8 @@ public:
|
|||||||
|
|
||||||
std::string ComputeLongTargetDirectory(cmGeneratorTarget const* gt) const;
|
std::string ComputeLongTargetDirectory(cmGeneratorTarget const* gt) const;
|
||||||
std::string GetTargetDirectory(
|
std::string GetTargetDirectory(
|
||||||
cmGeneratorTarget const* target) const override;
|
cmGeneratorTarget const* target,
|
||||||
|
cmStateEnums::IntermediateDirKind kind) const override;
|
||||||
|
|
||||||
void ComputeObjectFilenames(
|
void ComputeObjectFilenames(
|
||||||
std::map<cmSourceFile const*, cmObjectLocations>& mapping,
|
std::map<cmSourceFile const*, cmObjectLocations>& mapping,
|
||||||
|
@@ -4381,7 +4381,8 @@ std::string const& cmLocalGenerator::GetCurrentSourceDirectory() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::string cmLocalGenerator::GetTargetDirectory(
|
std::string cmLocalGenerator::GetTargetDirectory(
|
||||||
cmGeneratorTarget const* /*unused*/) const
|
cmGeneratorTarget const* /*unused*/,
|
||||||
|
cmStateEnums::IntermediateDirKind /*kind*/) const
|
||||||
{
|
{
|
||||||
cmSystemTools::Error("GetTargetDirectory"
|
cmSystemTools::Error("GetTargetDirectory"
|
||||||
" called on cmLocalGenerator");
|
" called on cmLocalGenerator");
|
||||||
|
@@ -429,7 +429,8 @@ public:
|
|||||||
* per-target support directory.
|
* per-target support directory.
|
||||||
*/
|
*/
|
||||||
virtual std::string GetTargetDirectory(
|
virtual std::string GetTargetDirectory(
|
||||||
cmGeneratorTarget const* target) const;
|
cmGeneratorTarget const* target,
|
||||||
|
cmStateEnums::IntermediateDirKind kind) const;
|
||||||
|
|
||||||
cmPolicies::PolicyStatus GetPolicyStatus(cmPolicies::PolicyID id) const;
|
cmPolicies::PolicyStatus GetPolicyStatus(cmPolicies::PolicyID id) const;
|
||||||
|
|
||||||
|
@@ -15,6 +15,10 @@
|
|||||||
#include "cmStringAlgorithms.h"
|
#include "cmStringAlgorithms.h"
|
||||||
#include "cmSystemTools.h"
|
#include "cmSystemTools.h"
|
||||||
|
|
||||||
|
namespace cmStateEnums {
|
||||||
|
enum class IntermediateDirKind;
|
||||||
|
}
|
||||||
|
|
||||||
cmLocalGhsMultiGenerator::cmLocalGhsMultiGenerator(cmGlobalGenerator* gg,
|
cmLocalGhsMultiGenerator::cmLocalGhsMultiGenerator(cmGlobalGenerator* gg,
|
||||||
cmMakefile* mf)
|
cmMakefile* mf)
|
||||||
: cmLocalGenerator(gg, mf)
|
: cmLocalGenerator(gg, mf)
|
||||||
@@ -24,7 +28,8 @@ cmLocalGhsMultiGenerator::cmLocalGhsMultiGenerator(cmGlobalGenerator* gg,
|
|||||||
cmLocalGhsMultiGenerator::~cmLocalGhsMultiGenerator() = default;
|
cmLocalGhsMultiGenerator::~cmLocalGhsMultiGenerator() = default;
|
||||||
|
|
||||||
std::string cmLocalGhsMultiGenerator::GetTargetDirectory(
|
std::string cmLocalGhsMultiGenerator::GetTargetDirectory(
|
||||||
cmGeneratorTarget const* target) const
|
cmGeneratorTarget const* target,
|
||||||
|
cmStateEnums::IntermediateDirKind /*kind*/) const
|
||||||
{
|
{
|
||||||
std::string dir = cmStrCat(target->GetName(), ".dir");
|
std::string dir = cmStrCat(target->GetName(), ".dir");
|
||||||
return dir;
|
return dir;
|
||||||
|
@@ -12,6 +12,9 @@ class cmGlobalGenerator;
|
|||||||
class cmMakefile;
|
class cmMakefile;
|
||||||
struct cmObjectLocations;
|
struct cmObjectLocations;
|
||||||
class cmSourceFile;
|
class cmSourceFile;
|
||||||
|
namespace cmStateEnums {
|
||||||
|
enum class IntermediateDirKind;
|
||||||
|
}
|
||||||
|
|
||||||
/** \class cmLocalGhsMultiGenerator
|
/** \class cmLocalGhsMultiGenerator
|
||||||
* \brief Write Green Hills MULTI project files.
|
* \brief Write Green Hills MULTI project files.
|
||||||
@@ -32,7 +35,8 @@ public:
|
|||||||
void Generate() override;
|
void Generate() override;
|
||||||
|
|
||||||
std::string GetTargetDirectory(
|
std::string GetTargetDirectory(
|
||||||
cmGeneratorTarget const* target) const override;
|
cmGeneratorTarget const* target,
|
||||||
|
cmStateEnums::IntermediateDirKind kind) const override;
|
||||||
|
|
||||||
void ComputeObjectFilenames(
|
void ComputeObjectFilenames(
|
||||||
std::map<cmSourceFile const*, cmObjectLocations>& mapping,
|
std::map<cmSourceFile const*, cmObjectLocations>& mapping,
|
||||||
|
@@ -2229,10 +2229,11 @@ void cmLocalVisualStudio7Generator::ReadAndStoreExternalGUID(
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::string cmLocalVisualStudio7Generator::GetTargetDirectory(
|
std::string cmLocalVisualStudio7Generator::GetTargetDirectory(
|
||||||
cmGeneratorTarget const* target) const
|
cmGeneratorTarget const* target,
|
||||||
|
cmStateEnums::IntermediateDirKind kind) const
|
||||||
{
|
{
|
||||||
std::string dir;
|
std::string dir;
|
||||||
if (target->GetUseShortObjectNames()) {
|
if (target->GetUseShortObjectNames(kind)) {
|
||||||
dir = this->ComputeShortTargetDirectory(target);
|
dir = this->ComputeShortTargetDirectory(target);
|
||||||
} else {
|
} else {
|
||||||
dir = cmStrCat(target->GetName(), ".dir");
|
dir = cmStrCat(target->GetName(), ".dir");
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "cmLocalVisualStudioGenerator.h"
|
#include "cmLocalVisualStudioGenerator.h"
|
||||||
|
#include "cmStateTypes.h"
|
||||||
#include "cmVisualStudioGeneratorOptions.h"
|
#include "cmVisualStudioGeneratorOptions.h"
|
||||||
|
|
||||||
class cmCustomCommand;
|
class cmCustomCommand;
|
||||||
@@ -76,7 +77,8 @@ public:
|
|||||||
void SetBuildType(BuildType, std::string const& name);
|
void SetBuildType(BuildType, std::string const& name);
|
||||||
|
|
||||||
std::string GetTargetDirectory(
|
std::string GetTargetDirectory(
|
||||||
cmGeneratorTarget const* target) const override;
|
cmGeneratorTarget const* target,
|
||||||
|
cmStateEnums::IntermediateDirKind kind) const override;
|
||||||
cmSourceFile* CreateVCProjBuildRule();
|
cmSourceFile* CreateVCProjBuildRule();
|
||||||
void WriteStampFiles();
|
void WriteStampFiles();
|
||||||
std::string ComputeLongestObjectDirectory(
|
std::string ComputeLongestObjectDirectory(
|
||||||
|
@@ -28,7 +28,8 @@ cmLocalXCodeGenerator::cmLocalXCodeGenerator(cmGlobalGenerator* gg,
|
|||||||
cmLocalXCodeGenerator::~cmLocalXCodeGenerator() = default;
|
cmLocalXCodeGenerator::~cmLocalXCodeGenerator() = default;
|
||||||
|
|
||||||
std::string cmLocalXCodeGenerator::GetTargetDirectory(
|
std::string cmLocalXCodeGenerator::GetTargetDirectory(
|
||||||
cmGeneratorTarget const* target) const
|
cmGeneratorTarget const* target,
|
||||||
|
cmStateEnums::IntermediateDirKind /*kind*/) const
|
||||||
{
|
{
|
||||||
return cmStrCat(target->GetName(), ".dir");
|
return cmStrCat(target->GetName(), ".dir");
|
||||||
}
|
}
|
||||||
|
@@ -30,7 +30,8 @@ public:
|
|||||||
|
|
||||||
~cmLocalXCodeGenerator() override;
|
~cmLocalXCodeGenerator() override;
|
||||||
std::string GetTargetDirectory(
|
std::string GetTargetDirectory(
|
||||||
cmGeneratorTarget const* target) const override;
|
cmGeneratorTarget const* target,
|
||||||
|
cmStateEnums::IntermediateDirKind kind) const override;
|
||||||
void AppendFlagEscape(std::string& flags,
|
void AppendFlagEscape(std::string& flags,
|
||||||
std::string const& rawFlag) const override;
|
std::string const& rawFlag) const override;
|
||||||
void Generate() override;
|
void Generate() override;
|
||||||
|
Reference in New Issue
Block a user