Commit c5d2b99c authored by Chuck Atkins's avatar Chuck Atkins

find_package: Add missing PACKAGE_ROOT_PATH search path implementation.

parent f15cfd89
...@@ -1090,6 +1090,9 @@ void cmFindPackageCommand::AppendSuccessInformation() ...@@ -1090,6 +1090,9 @@ void cmFindPackageCommand::AppendSuccessInformation()
void cmFindPackageCommand::ComputePrefixes() void cmFindPackageCommand::ComputePrefixes()
{ {
if (!this->NoDefaultPath) { if (!this->NoDefaultPath) {
if (!this->NoPackageRootPath) {
this->FillPrefixesPackageRoot();
}
if (!this->NoCMakePath) { if (!this->NoCMakePath) {
this->FillPrefixesCMakeVariable(); this->FillPrefixesCMakeVariable();
} }
...@@ -1117,6 +1120,23 @@ void cmFindPackageCommand::ComputePrefixes() ...@@ -1117,6 +1120,23 @@ void cmFindPackageCommand::ComputePrefixes()
this->ComputeFinalPaths(); this->ComputeFinalPaths();
} }
void cmFindPackageCommand::FillPrefixesPackageRoot()
{
cmSearchPath& paths = this->LabeledPaths[PathLabel::PackageRoot];
// Add package specific search prefixes
// NOTE: This should be using const_reverse_iterator but HP aCC and
// Oracle sunCC both currently have standard library issues
// with the reverse iterator APIs.
for (std::deque<std::string>::reverse_iterator pkg =
this->Makefile->FindPackageModuleStack.rbegin();
pkg != this->Makefile->FindPackageModuleStack.rend(); ++pkg) {
std::string varName = *pkg + "_ROOT";
paths.AddCMakePath(varName);
paths.AddEnvPath(varName);
}
}
void cmFindPackageCommand::FillPrefixesCMakeEnvironment() void cmFindPackageCommand::FillPrefixesCMakeEnvironment()
{ {
cmSearchPath& paths = this->LabeledPaths[PathLabel::CMakeEnvironment]; cmSearchPath& paths = this->LabeledPaths[PathLabel::CMakeEnvironment];
......
...@@ -100,6 +100,7 @@ private: ...@@ -100,6 +100,7 @@ private:
void StoreVersionFound(); void StoreVersionFound();
void ComputePrefixes(); void ComputePrefixes();
void FillPrefixesPackageRoot();
void FillPrefixesCMakeEnvironment(); void FillPrefixesCMakeEnvironment();
void FillPrefixesCMakeVariable(); void FillPrefixesCMakeVariable();
void FillPrefixesSystemEnvironment(); void FillPrefixesSystemEnvironment();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment