Merge topic 'cmMakefile-Configure'

7657e8b1 cmMakefile: Introduce a local cmMakefile variable.
4e8f242d cmMakefile: Store unconfigured cmMakefiles.
d65e0123 cmMakefile: Implement ConfigureSubDirectory in terms of cmMakefile.
f059ed16 cmMakefile: Move Configure responsibility from cmLocalGenerator.
a653611d cmake: Replace CurrentLocalGenerator concept with CurrentMakefile.
69a038a9 cmMakefile: Refactor directories specified with the subdirs command.
08637970 cmLocalGenerator: ComputeObjectMaxPath just before generating.
27e11c6f Merge Configure state with GeneratingBuildSystem state.
363caa2f cmLocalGenerator: De-virtualize Configure().
This commit is contained in:
Brad King 2015-06-04 09:13:35 -04:00 committed by CMake Topic Stage
commit 0886880e3b
13 changed files with 115 additions and 153 deletions

View File

@ -70,7 +70,7 @@ cmGlobalGenerator::cmGlobalGenerator(cmake* cm)
this->TryCompileTimeout = 0; this->TryCompileTimeout = 0;
this->ExtraGenerator = 0; this->ExtraGenerator = 0;
this->CurrentLocalGenerator = 0; this->CurrentMakefile = 0;
this->TryCompileOuterMakefile = 0; this->TryCompileOuterMakefile = 0;
} }
@ -1101,7 +1101,7 @@ void cmGlobalGenerator::Configure()
this->CMakeInstance->GetHomeOutputDirectory()); this->CMakeInstance->GetHomeOutputDirectory());
// now do it // now do it
lg->Configure(); lg->GetMakefile()->Configure();
// update the cache entry for the number of local generators, this is used // update the cache entry for the number of local generators, this is used
// for progress // for progress
@ -1218,6 +1218,7 @@ void cmGlobalGenerator::Generate()
this->CreateDefaultGlobalTargets(&globalTargets); this->CreateDefaultGlobalTargets(&globalTargets);
for (i = 0; i < this->LocalGenerators.size(); ++i) for (i = 0; i < this->LocalGenerators.size(); ++i)
{ {
this->LocalGenerators[i]->ComputeObjectMaxPath();
cmMakefile* mf = this->LocalGenerators[i]->GetMakefile(); cmMakefile* mf = this->LocalGenerators[i]->GetMakefile();
cmTargets* targets = &(mf->GetTargets()); cmTargets* targets = &(mf->GetTargets());
cmTargets::iterator tit; cmTargets::iterator tit;
@ -1275,8 +1276,7 @@ void cmGlobalGenerator::Generate()
// Generate project files // Generate project files
for (i = 0; i < this->LocalGenerators.size(); ++i) for (i = 0; i < this->LocalGenerators.size(); ++i)
{ {
this->LocalGenerators[i]->GetMakefile()->SetGeneratingBuildSystem(); this->SetCurrentMakefile(this->LocalGenerators[i]->GetMakefile());
this->SetCurrentLocalGenerator(this->LocalGenerators[i]);
this->LocalGenerators[i]->Generate(); this->LocalGenerators[i]->Generate();
if(!this->LocalGenerators[i]->GetMakefile()->IsOn( if(!this->LocalGenerators[i]->GetMakefile()->IsOn(
"CMAKE_SKIP_INSTALL_RULES")) "CMAKE_SKIP_INSTALL_RULES"))
@ -1288,7 +1288,7 @@ void cmGlobalGenerator::Generate()
(static_cast<float>(i)+1.0f)/ (static_cast<float>(i)+1.0f)/
static_cast<float>(this->LocalGenerators.size())); static_cast<float>(this->LocalGenerators.size()));
} }
this->SetCurrentLocalGenerator(0); this->SetCurrentMakefile(0);
if(!this->GenerateCPackPropertiesFile()) if(!this->GenerateCPackPropertiesFile())
{ {

View File

@ -168,11 +168,13 @@ public:
const std::vector<cmLocalGenerator *>& GetLocalGenerators() const { const std::vector<cmLocalGenerator *>& GetLocalGenerators() const {
return this->LocalGenerators;} return this->LocalGenerators;}
cmLocalGenerator* GetCurrentLocalGenerator() cmMakefile* GetCurrentMakefile() const
{return this->CurrentLocalGenerator;} {
return this->CurrentMakefile;
}
void SetCurrentLocalGenerator(cmLocalGenerator* lg) void SetCurrentMakefile(cmMakefile* mf)
{this->CurrentLocalGenerator = lg;} {this->CurrentMakefile = mf;}
void AddLocalGenerator(cmLocalGenerator *lg); void AddLocalGenerator(cmLocalGenerator *lg);
@ -404,7 +406,7 @@ protected:
std::string ConfiguredFilesPath; std::string ConfiguredFilesPath;
cmake *CMakeInstance; cmake *CMakeInstance;
std::vector<cmLocalGenerator *> LocalGenerators; std::vector<cmLocalGenerator *> LocalGenerators;
cmLocalGenerator* CurrentLocalGenerator; cmMakefile* CurrentMakefile;
// map from project name to vector of local generators in that project // map from project name to vector of local generators in that project
std::map<std::string, std::vector<cmLocalGenerator*> > ProjectMap; std::map<std::string, std::vector<cmLocalGenerator*> > ProjectMap;
std::map<cmLocalGenerator*, std::set<cmTarget const*> > std::map<cmLocalGenerator*, std::set<cmTarget const*> >

View File

@ -59,7 +59,6 @@ cmLocalGenerator::cmLocalGenerator(cmGlobalGenerator* gg,
this->Makefile = new cmMakefile(this); this->Makefile = new cmMakefile(this);
this->LinkScriptShell = false; this->LinkScriptShell = false;
this->Configured = false;
this->EmitUniversalBinaryFlags = true; this->EmitUniversalBinaryFlags = true;
this->BackwardsCompatibility = 0; this->BackwardsCompatibility = 0;
this->BackwardsCompatibilityFinal = false; this->BackwardsCompatibilityFinal = false;
@ -75,72 +74,6 @@ bool cmLocalGenerator::IsRootMakefile() const
return !this->StateSnapshot.GetBuildsystemDirectoryParent().IsValid(); return !this->StateSnapshot.GetBuildsystemDirectoryParent().IsValid();
} }
//----------------------------------------------------------------------------
class cmLocalGeneratorCurrent
{
cmGlobalGenerator* GG;
cmLocalGenerator* LG;
cmState::Snapshot Snapshot;
public:
cmLocalGeneratorCurrent(cmLocalGenerator* lg)
{
this->GG = lg->GetGlobalGenerator();
this->LG = this->GG->GetCurrentLocalGenerator();
this->Snapshot = this->GG->GetCMakeInstance()->GetCurrentSnapshot();
this->GG->GetCMakeInstance()->SetCurrentSnapshot(lg->GetStateSnapshot());
this->GG->SetCurrentLocalGenerator(lg);
#if defined(CMAKE_BUILD_WITH_CMAKE)
this->GG->GetFileLockPool().PushFileScope();
#endif
}
~cmLocalGeneratorCurrent()
{
#if defined(CMAKE_BUILD_WITH_CMAKE)
this->GG->GetFileLockPool().PopFileScope();
#endif
this->GG->SetCurrentLocalGenerator(this->LG);
this->GG->GetCMakeInstance()->SetCurrentSnapshot(this->Snapshot);
}
};
//----------------------------------------------------------------------------
void cmLocalGenerator::Configure()
{
// Manage the global generator's current local generator.
cmLocalGeneratorCurrent clg(this);
static_cast<void>(clg);
// make sure the CMakeFiles dir is there
std::string filesDir = this->StateSnapshot.GetCurrentBinaryDirectory();
filesDir += cmake::GetCMakeFilesDirectory();
cmSystemTools::MakeDirectory(filesDir.c_str());
std::string currentStart = this->StateSnapshot.GetCurrentSourceDirectory();
currentStart += "/CMakeLists.txt";
assert(cmSystemTools::FileExists(currentStart.c_str(), true));
this->Makefile->ProcessBuildsystemFile(currentStart.c_str());
// at the end of the ReadListFile handle any old style subdirs
// first get all the subdirectories
std::vector<cmLocalGenerator *> subdirs = this->GetChildren();
// for each subdir recurse
std::vector<cmLocalGenerator *>::iterator sdi = subdirs.begin();
for (; sdi != subdirs.end(); ++sdi)
{
if (!(*sdi)->Configured)
{
this->Makefile->ConfigureSubDirectory(*sdi);
}
}
this->Makefile->AddCMakeDependFilesFromUser();
this->ComputeObjectMaxPath();
this->Configured = true;
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
void cmLocalGenerator::ComputeObjectMaxPath() void cmLocalGenerator::ComputeObjectMaxPath()
{ {
@ -3179,11 +3112,6 @@ bool cmLocalGenerator::IsNMake() const
return this->GetState()->UseNMake(); return this->GetState()->UseNMake();
} }
void cmLocalGenerator::SetConfiguredCMP0014(bool configured)
{
this->Configured = configured;
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
std::string std::string
cmLocalGenerator cmLocalGenerator
@ -3465,7 +3393,7 @@ cmIML_INT_uint64_t cmLocalGenerator::GetBackwardsCompatibility()
} }
} }
this->BackwardsCompatibility = CMake_VERSION_ENCODE(major, minor, patch); this->BackwardsCompatibility = CMake_VERSION_ENCODE(major, minor, patch);
this->BackwardsCompatibilityFinal = this->Configured; this->BackwardsCompatibilityFinal = this->Makefile->IsConfigured();
} }
return this->BackwardsCompatibility; return this->BackwardsCompatibility;

View File

@ -46,12 +46,6 @@ public:
*/ */
virtual void Generate() {} virtual void Generate() {}
/**
* Process the CMakeLists files for this directory to fill in the
* Makefile ivar
*/
virtual void Configure();
/** /**
* Calls TraceVSDependencies() on all targets of this generator. * Calls TraceVSDependencies() on all targets of this generator.
*/ */
@ -383,8 +377,7 @@ public:
bool IsMinGWMake() const; bool IsMinGWMake() const;
bool IsNMake() const; bool IsNMake() const;
void SetConfiguredCMP0014(bool configured); void ComputeObjectMaxPath();
protected: protected:
///! put all the libraries for a target on into the given stream ///! put all the libraries for a target on into the given stream
void OutputLinkLibraries(std::string& linkLibraries, void OutputLinkLibraries(std::string& linkLibraries,
@ -430,7 +423,6 @@ protected:
std::string& CreateSafeUniqueObjectFileName(const std::string& sin, std::string& CreateSafeUniqueObjectFileName(const std::string& sin,
std::string const& dir_max); std::string const& dir_max);
void ComputeObjectMaxPath();
virtual std::string ConvertToLinkReference(std::string const& lib, virtual std::string ConvertToLinkReference(std::string const& lib,
OutputFormat format = SHELL); OutputFormat format = SHELL);
@ -451,7 +443,6 @@ protected:
std::set<cmTarget const*> WarnCMP0063; std::set<cmTarget const*> WarnCMP0063;
bool LinkScriptShell; bool LinkScriptShell;
bool Configured;
bool EmitUniversalBinaryFlags; bool EmitUniversalBinaryFlags;
// Hack for ExpandRuleVariable until object-oriented version is // Hack for ExpandRuleVariable until object-oriented version is

View File

@ -41,6 +41,15 @@ cmLocalNinjaGenerator::~cmLocalNinjaGenerator()
void cmLocalNinjaGenerator::Generate() void cmLocalNinjaGenerator::Generate()
{ {
// Compute the path to use when referencing the current output
// directory from the top output directory.
this->HomeRelativeOutputPath =
this->Convert(this->Makefile->GetCurrentBinaryDirectory(), HOME_OUTPUT);
if(this->HomeRelativeOutputPath == ".")
{
this->HomeRelativeOutputPath = "";
}
this->SetConfigName(); this->SetConfigName();
this->WriteProcessedMakefile(this->GetBuildFileStream()); this->WriteProcessedMakefile(this->GetBuildFileStream());
@ -91,25 +100,6 @@ void cmLocalNinjaGenerator::Generate()
this->WriteCustomCommandBuildStatements(); this->WriteCustomCommandBuildStatements();
} }
// Implemented in:
// cmLocalUnixMakefileGenerator3.
// Used in:
// Source/cmMakefile.cxx
// Source/cmGlobalGenerator.cxx
void cmLocalNinjaGenerator::Configure()
{
// Compute the path to use when referencing the current output
// directory from the top output directory.
this->HomeRelativeOutputPath =
this->Convert(this->Makefile->GetCurrentBinaryDirectory(), HOME_OUTPUT);
if(this->HomeRelativeOutputPath == ".")
{
this->HomeRelativeOutputPath = "";
}
this->cmLocalGenerator::Configure();
}
// TODO: Picked up from cmLocalUnixMakefileGenerator3. Refactor it. // TODO: Picked up from cmLocalUnixMakefileGenerator3. Refactor it.
std::string cmLocalNinjaGenerator std::string cmLocalNinjaGenerator
::GetTargetDirectory(cmTarget const& target) const ::GetTargetDirectory(cmTarget const& target) const

View File

@ -38,8 +38,6 @@ public:
virtual void Generate(); virtual void Generate();
virtual void Configure();
virtual std::string GetTargetDirectory(cmTarget const& target) const; virtual std::string GetTargetDirectory(cmTarget const& target) const;
const cmGlobalNinjaGenerator* GetGlobalNinjaGenerator() const; const cmGlobalNinjaGenerator* GetGlobalNinjaGenerator() const;

View File

@ -98,7 +98,7 @@ cmLocalUnixMakefileGenerator3::~cmLocalUnixMakefileGenerator3()
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
void cmLocalUnixMakefileGenerator3::Configure() void cmLocalUnixMakefileGenerator3::Generate()
{ {
// Compute the path to use when referencing the current output // Compute the path to use when referencing the current output
// directory from the top output directory. // directory from the top output directory.
@ -112,12 +112,7 @@ void cmLocalUnixMakefileGenerator3::Configure()
{ {
this->HomeRelativeOutputPath += "/"; this->HomeRelativeOutputPath += "/";
} }
this->cmLocalGenerator::Configure();
}
//----------------------------------------------------------------------------
void cmLocalUnixMakefileGenerator3::Generate()
{
// Store the configuration name that will be generated. // Store the configuration name that will be generated.
if(const char* config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE")) if(const char* config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE"))
{ {

View File

@ -39,12 +39,6 @@ public:
cmState::Snapshot snapshot); cmState::Snapshot snapshot);
virtual ~cmLocalUnixMakefileGenerator3(); virtual ~cmLocalUnixMakefileGenerator3();
/**
* Process the CMakeLists files for this directory to fill in the
* Makefile ivar
*/
virtual void Configure();
/** /**
* Generate the makefile for this directory. * Generate the makefile for this directory.
*/ */

View File

@ -146,7 +146,7 @@ cmMakefile::cmMakefile(cmLocalGenerator* localGenerator)
this->WarnUnused = this->GetCMakeInstance()->GetWarnUnused(); this->WarnUnused = this->GetCMakeInstance()->GetWarnUnused();
this->CheckSystemVars = this->GetCMakeInstance()->GetCheckSystemVars(); this->CheckSystemVars = this->GetCMakeInstance()->GetCheckSystemVars();
this->GeneratingBuildSystem = false; this->Configured = false;
this->SuppressWatches = false; this->SuppressWatches = false;
// Setup the default include file regular expression (match everything). // Setup the default include file regular expression (match everything).
@ -1562,10 +1562,68 @@ void cmMakefile::InitializeFromParent()
this->ImportedTargets = parent->ImportedTargets; this->ImportedTargets = parent->ImportedTargets;
} }
void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2) //----------------------------------------------------------------------------
class cmMakefileCurrent
{ {
lg2->GetMakefile()->InitializeFromParent(); cmGlobalGenerator* GG;
std::string currentStart = lg2->GetMakefile()->GetCurrentSourceDirectory(); cmMakefile* MF;
cmState::Snapshot Snapshot;
public:
cmMakefileCurrent(cmMakefile* mf)
{
this->GG = mf->GetGlobalGenerator();
this->MF = this->GG->GetCurrentMakefile();
this->Snapshot = this->GG->GetCMakeInstance()->GetCurrentSnapshot();
this->GG->GetCMakeInstance()->SetCurrentSnapshot(
this->GG->GetCMakeInstance()->GetCurrentSnapshot());
this->GG->SetCurrentMakefile(mf);
#if defined(CMAKE_BUILD_WITH_CMAKE)
this->GG->GetFileLockPool().PushFileScope();
#endif
}
~cmMakefileCurrent()
{
#if defined(CMAKE_BUILD_WITH_CMAKE)
this->GG->GetFileLockPool().PopFileScope();
#endif
this->GG->SetCurrentMakefile(this->MF);
this->GG->GetCMakeInstance()->SetCurrentSnapshot(this->Snapshot);
}
};
//----------------------------------------------------------------------------
void cmMakefile::Configure()
{
cmMakefileCurrent cmf(this);
// make sure the CMakeFiles dir is there
std::string filesDir = this->StateSnapshot.GetCurrentBinaryDirectory();
filesDir += cmake::GetCMakeFilesDirectory();
cmSystemTools::MakeDirectory(filesDir.c_str());
std::string currentStart = this->StateSnapshot.GetCurrentSourceDirectory();
currentStart += "/CMakeLists.txt";
assert(cmSystemTools::FileExists(currentStart.c_str(), true));
this->ProcessBuildsystemFile(currentStart.c_str());
// at the end handle any old style subdirs
std::vector<cmMakefile*> subdirs = this->UnConfiguredDirectories;
// for each subdir recurse
std::vector<cmMakefile*>::iterator sdi = subdirs.begin();
for (; sdi != subdirs.end(); ++sdi)
{
this->ConfigureSubDirectory(*sdi);
}
this->AddCMakeDependFilesFromUser();
this->SetConfigured();
}
void cmMakefile::ConfigureSubDirectory(cmMakefile *mf)
{
mf->InitializeFromParent();
std::string currentStart = mf->GetCurrentSourceDirectory();
if (this->GetCMakeInstance()->GetDebugOutput()) if (this->GetCMakeInstance()->GetDebugOutput())
{ {
std::string msg=" Entering "; std::string msg=" Entering ";
@ -1603,11 +1661,12 @@ void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2)
// NEW behavior prints the error. // NEW behavior prints the error.
this->IssueMessage(cmake::FATAL_ERROR, e.str()); this->IssueMessage(cmake::FATAL_ERROR, e.str());
} }
lg2->SetConfiguredCMP0014(true); mf->SetConfigured();
return; return;
} }
// finally configure the subdir // finally configure the subdir
lg2->Configure(); mf->Configure();
if (this->GetCMakeInstance()->GetDebugOutput()) if (this->GetCMakeInstance()->GetDebugOutput())
{ {
std::string msg=" Returning to "; std::string msg=" Returning to ";
@ -1635,17 +1694,23 @@ void cmMakefile::AddSubDirectory(const std::string& srcPath,
->MakeLocalGenerator(newSnapshot, this->LocalGenerator); ->MakeLocalGenerator(newSnapshot, this->LocalGenerator);
this->GetGlobalGenerator()->AddLocalGenerator(lg2); this->GetGlobalGenerator()->AddLocalGenerator(lg2);
cmMakefile* subMf = lg2->GetMakefile();
// set the subdirs start dirs // set the subdirs start dirs
lg2->GetMakefile()->SetCurrentSourceDirectory(srcPath); subMf->SetCurrentSourceDirectory(srcPath);
lg2->GetMakefile()->SetCurrentBinaryDirectory(binPath); subMf->SetCurrentBinaryDirectory(binPath);
if(excludeFromAll) if(excludeFromAll)
{ {
lg2->GetMakefile()->SetProperty("EXCLUDE_FROM_ALL", "TRUE"); subMf->SetProperty("EXCLUDE_FROM_ALL", "TRUE");
} }
if (immediate) if (immediate)
{ {
this->ConfigureSubDirectory(lg2); this->ConfigureSubDirectory(subMf);
}
else
{
this->UnConfiguredDirectories.push_back(subMf);
} }
} }

View File

@ -270,10 +270,12 @@ public:
bool excludeFromAll, bool excludeFromAll,
bool immediate); bool immediate);
void Configure();
/** /**
* Configure a subdirectory * Configure a subdirectory
*/ */
void ConfigureSubDirectory(cmLocalGenerator *); void ConfigureSubDirectory(cmMakefile* mf);
/** /**
* Add an include directory to the build. * Add an include directory to the build.
@ -782,8 +784,8 @@ public:
return this->CompileDefinitionsEntries; return this->CompileDefinitionsEntries;
} }
bool IsGeneratingBuildSystem() const { return this->GeneratingBuildSystem; } bool IsConfigured() const { return this->Configured; }
void SetGeneratingBuildSystem(){ this->GeneratingBuildSystem = true; } void SetConfigured(){ this->Configured = true; }
void AddQtUiFileWithOptions(cmSourceFile *sf); void AddQtUiFileWithOptions(cmSourceFile *sf);
std::vector<cmSourceFile*> GetQtUiFilesWithOptions() const; std::vector<cmSourceFile*> GetQtUiFilesWithOptions() const;
@ -921,6 +923,8 @@ private:
mutable cmsys::RegularExpression cmAtVarRegex; mutable cmsys::RegularExpression cmAtVarRegex;
mutable cmsys::RegularExpression cmNamedCurly; mutable cmsys::RegularExpression cmNamedCurly;
std::vector<cmMakefile*> UnConfiguredDirectories;
cmPropertyMap Properties; cmPropertyMap Properties;
// Unused variable flags // Unused variable flags
@ -995,7 +999,7 @@ private:
long line, long line,
bool removeEmpty, bool removeEmpty,
bool replaceAt) const; bool replaceAt) const;
bool GeneratingBuildSystem; bool Configured;
/** /**
* Old version of GetSourceFileWithOutput(const std::string&) kept for * Old version of GetSourceFileWithOutput(const std::string&) kept for
* backward-compatibility. It implements a linear search and support * backward-compatibility. It implements a linear search and support

View File

@ -1215,7 +1215,7 @@ bool cmQtAutoGenerators::Run(const std::string& targetDirectory,
cmLocalGenerator* lg = gg.MakeLocalGenerator(); cmLocalGenerator* lg = gg.MakeLocalGenerator();
lg->GetMakefile()->SetCurrentBinaryDirectory(targetDirectory); lg->GetMakefile()->SetCurrentBinaryDirectory(targetDirectory);
lg->GetMakefile()->SetCurrentSourceDirectory(targetDirectory); lg->GetMakefile()->SetCurrentSourceDirectory(targetDirectory);
gg.SetCurrentLocalGenerator(lg); gg.SetCurrentMakefile(lg->GetMakefile());
this->ReadAutogenInfoFile(lg->GetMakefile(), targetDirectory, config); this->ReadAutogenInfoFile(lg->GetMakefile(), targetDirectory, config);
this->ReadOldMocDefinitionsFile(lg->GetMakefile(), targetDirectory); this->ReadOldMocDefinitionsFile(lg->GetMakefile(), targetDirectory);

View File

@ -764,7 +764,7 @@ void cmTarget::GetSourceFiles(std::vector<std::string> &files,
"SOURCES") "SOURCES")
!= debugProperties.end(); != debugProperties.end();
if (this->Makefile->IsGeneratingBuildSystem()) if (this->Makefile->IsConfigured())
{ {
this->DebugSourcesDone = true; this->DebugSourcesDone = true;
} }
@ -2106,7 +2106,7 @@ cmTarget::GetIncludeDirectories(const std::string& config,
"INCLUDE_DIRECTORIES") "INCLUDE_DIRECTORIES")
!= debugProperties.end(); != debugProperties.end();
if (this->Makefile->IsGeneratingBuildSystem()) if (this->Makefile->IsConfigured())
{ {
this->DebugIncludesDone = true; this->DebugIncludesDone = true;
} }
@ -2277,7 +2277,7 @@ void cmTarget::GetCompileOptions(std::vector<std::string> &result,
"COMPILE_OPTIONS") "COMPILE_OPTIONS")
!= debugProperties.end(); != debugProperties.end();
if (this->Makefile->IsGeneratingBuildSystem()) if (this->Makefile->IsConfigured())
{ {
this->DebugCompileOptionsDone = true; this->DebugCompileOptionsDone = true;
} }
@ -2348,7 +2348,7 @@ void cmTarget::GetCompileDefinitions(std::vector<std::string> &list,
"COMPILE_DEFINITIONS") "COMPILE_DEFINITIONS")
!= debugProperties.end(); != debugProperties.end();
if (this->Makefile->IsGeneratingBuildSystem()) if (this->Makefile->IsConfigured())
{ {
this->DebugCompileDefinitionsDone = true; this->DebugCompileDefinitionsDone = true;
} }
@ -2449,7 +2449,7 @@ void cmTarget::GetCompileFeatures(std::vector<std::string> &result,
"COMPILE_FEATURES") "COMPILE_FEATURES")
!= debugProperties.end(); != debugProperties.end();
if (this->Makefile->IsGeneratingBuildSystem()) if (this->Makefile->IsConfigured())
{ {
this->DebugCompileFeaturesDone = true; this->DebugCompileFeaturesDone = true;
} }
@ -4857,7 +4857,7 @@ cmTarget::ReportPropertyOrigin(const std::string &p,
p) p)
!= debugProperties.end(); != debugProperties.end();
if (this->Makefile->IsGeneratingBuildSystem()) if (this->Makefile->IsConfigured())
{ {
this->DebugCompatiblePropertiesDone[p] = true; this->DebugCompatiblePropertiesDone[p] = true;
} }

View File

@ -113,12 +113,7 @@ static cmMakefile* cmakemainGetMakefile(void *clientdata)
cmGlobalGenerator* gg=cm->GetGlobalGenerator(); cmGlobalGenerator* gg=cm->GetGlobalGenerator();
if (gg) if (gg)
{ {
cmLocalGenerator* lg=gg->GetCurrentLocalGenerator(); return gg->GetCurrentMakefile();
if (lg)
{
cmMakefile* mf = lg->GetMakefile();
return mf;
}
} }
} }
return 0; return 0;