diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2006-03-30 16:55:19 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2006-03-30 16:55:19 (GMT) |
commit | 3cf3fc510febc42af0db07c71c7c3925724b3201 (patch) | |
tree | e6872ad9d7d949ef6c067dd2159075f5c9dbb6cf /Source/cmFindBase.cxx | |
parent | 7b3be313ee9997879bc1496bb3801021039d4d5b (diff) | |
download | CMake-3cf3fc510febc42af0db07c71c7c3925724b3201.zip CMake-3cf3fc510febc42af0db07c71c7c3925724b3201.tar.gz CMake-3cf3fc510febc42af0db07c71c7c3925724b3201.tar.bz2 |
ENH: make sure framework search order is correct
Diffstat (limited to 'Source/cmFindBase.cxx')
-rw-r--r-- | Source/cmFindBase.cxx | 59 |
1 files changed, 40 insertions, 19 deletions
diff --git a/Source/cmFindBase.cxx b/Source/cmFindBase.cxx index eae6186..758065e 100644 --- a/Source/cmFindBase.cxx +++ b/Source/cmFindBase.cxx @@ -351,44 +351,49 @@ void cmFindBase::ExpandPaths(std::vector<std::string> userPaths) // standard search paths. if(!this->NoDefaultPath) { - if(!this->NoCMakeEnvironmentPath) + if(this->SearchFrameworkFirst) + { + this->AddFrameWorkPaths(); + } + if(!this->NoCMakeEnvironmentPath && !this->SearchFrameworkOnly) { // Add CMAKE_*_PATH environment variables this->AddEnvironmentVairables(); } - if(!this->NoCMakePath) + if(!this->NoCMakePath && !this->SearchFrameworkOnly) { // Add CMake varibles of the same name as the previous environment // varibles CMAKE_*_PATH to be used most of the time with -D // command line options this->AddCMakeVairables(); } - if(!this->NoSystemEnvironmentPath) + if(!this->NoSystemEnvironmentPath && !this->SearchFrameworkOnly) { // add System environment PATH and (LIB or INCLUDE) this->AddSystemEnvironmentVairables(); } - if(!this->NoCMakeSystemPath) + if(!this->NoCMakeSystemPath && !this->SearchFrameworkOnly) { // Add CMAKE_SYSTEM_*_PATH variables which are defined in platform files this->AddCMakeSystemVariables(); } + if(this->SearchFrameworkLast) + { + this->AddFrameWorkPaths(); + } } // add the paths specified in the FIND_* call for(unsigned int i =0; i < userPaths.size(); ++i) { this->SearchPaths.push_back(userPaths[i]); } + // clean things up this->ExpandRegistryAndCleanPath(); } void cmFindBase::AddEnvironmentVairables() { - if(this->SearchFrameworkFirst || this->SearchFrameworkOnly) - { - cmSystemTools::GetPath(this->SearchPaths, "CMAKE_FRAMEWORK_PATH"); - } std::string var = "CMAKE_"; var += this->CMakePathName; var += "_PATH"; @@ -400,16 +405,39 @@ void cmFindBase::AddEnvironmentVairables() } -void cmFindBase::AddCMakeVairables() -{ - if(this->SearchFrameworkFirst || this->SearchFrameworkOnly) - { +void cmFindBase::AddFrameWorkPaths() +{ + if(this->NoDefaultPath) + { + return; + } + // first environment variables + if(!this->NoCMakeEnvironmentPath) + { + cmSystemTools::GetPath(this->SearchPaths, "CMAKE_FRAMEWORK_PATH"); + } + // add cmake variables + if(!this->NoCMakePath) + { if(const char* path = this->Makefile->GetDefinition("CMAKE_FRAMEWORK_PATH")) { cmSystemTools::ExpandListArgument(path, this->SearchPaths); } } + // AddCMakeSystemVariables + if(!this->NoCMakeSystemPath) + { + if(const char* path = + this->Makefile->GetDefinition("CMAKE_SYSTEM_FRAMEWORK_PATH")) + { + cmSystemTools::ExpandListArgument(path, this->SearchPaths); + } + } +} + +void cmFindBase::AddCMakeVairables() +{ std::string var = "CMAKE_"; var += this->CMakePathName; var += "_PATH"; @@ -440,13 +468,6 @@ void cmFindBase::AddSystemEnvironmentVairables() void cmFindBase::AddCMakeSystemVariables() { - if(this->SearchFrameworkFirst || this->SearchFrameworkOnly) - { - if(const char* path = this->Makefile->GetDefinition("CMAKE_SYSTEM_FRAMEWORK_PATH")) - { - cmSystemTools::ExpandListArgument(path, this->SearchPaths); - } - } std::string var = "CMAKE_SYSTEM_"; var += this->CMakePathName; var += "_PATH"; |