cmMakefile: Add wrapper for reading listfiles which have an origin.

Such files are delegates from other files, and so they set the
CMAKE_PARENT_LIST_FILE to the originator.  They also may set a
policy scope.
This commit is contained in:
Stephen Kelly 2015-04-18 14:50:32 +02:00
parent 68f791cd06
commit a2f2aeee2f
8 changed files with 16 additions and 15 deletions

View File

@ -117,9 +117,7 @@ bool cmCTestSubdirCommand
}
fname += "/";
fname += testFilename;
bool readit =
this->Makefile->ReadListFile(this->Makefile->GetCurrentListFile(),
fname.c_str());
bool readit = this->Makefile->ReadDependentFile(fname.c_str());
cmSystemTools::ChangeDirectory(cwd);
if(!readit)
{
@ -205,9 +203,7 @@ bool cmCTestAddSubdirectoryCommand
}
fname += "/";
fname += testFilename;
bool readit =
this->Makefile->ReadListFile(this->Makefile->GetCurrentListFile(),
fname.c_str());
bool readit = this->Makefile->ReadDependentFile(fname.c_str());
cmSystemTools::ChangeDirectory(cwd);
if(!readit)
{

View File

@ -687,8 +687,7 @@ bool cmCTest::InitializeFromCommand(cmCTestStartCommand* command)
{
cmCTestOptionalLog(this, OUTPUT, " Reading ctest configuration file: "
<< fname << std::endl, command->ShouldBeQuiet());
bool readit = mf->ReadListFile(mf->GetCurrentListFile(),
fname.c_str() );
bool readit = mf->ReadDependentFile(fname.c_str());
if(!readit)
{
std::string m = "Could not find include file: ";

View File

@ -999,8 +999,8 @@ bool cmFindPackageCommand::FindAppBundleConfig()
//----------------------------------------------------------------------------
bool cmFindPackageCommand::ReadListFile(const char* f, PolicyScopeRule psr)
{
if(this->Makefile->ReadListFile(this->Makefile->GetCurrentListFile(), f,
!this->PolicyScope || psr == NoPolicyScope))
const bool noPolicyScope = !this->PolicyScope || psr == NoPolicyScope;
if(this->Makefile->ReadDependentFile(f, noPolicyScope))
{
return true;
}

View File

@ -60,7 +60,7 @@ void cmGlobalVisualStudio6Generator::GenerateConfigurations(cmMakefile* mf)
fname += "/Templates";
}
fname += "/CMakeVisualStudio6Configurations.cmake";
if(!mf->ReadListFile(mf->GetCurrentListFile(), fname.c_str()))
if(!mf->ReadDependentFile(fname.c_str()))
{
cmSystemTools::Error("Cannot open ", fname.c_str(),
". Please copy this file from the main "

View File

@ -131,8 +131,7 @@ bool cmIncludeCommand
}
bool readit =
this->Makefile->ReadListFile( this->Makefile->GetCurrentListFile(),
fname.c_str(), noPolicyScope);
this->Makefile->ReadDependentFile(fname.c_str(), noPolicyScope);
// add the location of the included file if a result variable was given
if (!resultVarName.empty())

View File

@ -528,6 +528,12 @@ bool cmMakefile::ProcessBuildsystemFile(const char* listfile)
this->cmStartDirectory == this->cmHomeDirectory);
}
bool cmMakefile::ReadDependentFile(const char* listfile, bool noPolicyScope)
{
return this->ReadListFile(this->GetCurrentListFile(), listfile,
noPolicyScope);
}
//----------------------------------------------------------------------------
// Parse the given CMakeLists.txt file executing all commands
//

View File

@ -90,6 +90,8 @@ public:
bool noPolicyScope = true,
bool requireProjectCommand = false);
bool ReadDependentFile(const char* listfile, bool noPolicyScope = true);
bool ProcessBuildsystemFile(const char* listfile);
/**

View File

@ -236,8 +236,7 @@ bool cmProjectCommand
{
std::string fullFilePath;
bool readit =
this->Makefile->ReadListFile( this->Makefile->GetCurrentListFile(),
include);
this->Makefile->ReadDependentFile(include);
if(!readit && !cmSystemTools::GetFatalErrorOccured())
{
std::string m =