summaryrefslogtreecommitdiffstats
path: root/Source/cmProjectCommand.cxx
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2012-02-17 17:41:39 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2012-02-17 17:41:39 (GMT)
commit9090572f5cdde7b30d2c1ad1c0bbf4ab86ddb969 (patch)
tree4069a3f908fd7d1fa0709c774ad476152f4dcd77 /Source/cmProjectCommand.cxx
parente2042b68d36e0881bfc00f926a275dda3d6cbc9d (diff)
downloadCMake-9090572f5cdde7b30d2c1ad1c0bbf4ab86ddb969.zip
CMake-9090572f5cdde7b30d2c1ad1c0bbf4ab86ddb969.tar.gz
CMake-9090572f5cdde7b30d2c1ad1c0bbf4ab86ddb969.tar.bz2
Add ability to include a file in a project via a cache variable.
If a variable exists called CMAKE_PROJECT_<projectName>_INCLUDE, the file pointed to by that variable will be included as the last step of the project command.
Diffstat (limited to 'Source/cmProjectCommand.cxx')
-rw-r--r--Source/cmProjectCommand.cxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/cmProjectCommand.cxx b/Source/cmProjectCommand.cxx
index 6e3b6af..4c1abcf 100644
--- a/Source/cmProjectCommand.cxx
+++ b/Source/cmProjectCommand.cxx
@@ -77,6 +77,24 @@ bool cmProjectCommand
languages.push_back("CXX");
}
this->Makefile->EnableLanguage(languages, false);
+ std::string extraInclude = "CMAKE_PROJECT_" + args[0] + "_INCLUDE";
+ const char* include = this->Makefile->GetDefinition(extraInclude.c_str());
+ if(include)
+ {
+ std::string fullFilePath;
+ bool readit =
+ this->Makefile->ReadListFile( this->Makefile->GetCurrentListFile(),
+ include);
+ if(!readit && !cmSystemTools::GetFatalErrorOccured())
+ {
+ std::string m =
+ "could not find load file:\n"
+ " ";
+ m += include;
+ this->SetError(m.c_str());
+ return false;
+ }
+ }
return true;
}