Commit e67963ed authored by Brad King's avatar Brad King
Browse files

cmFindLibraryCommand: Refactor AddArchitecturePath logic

Use boolean variables to save results and rename variables to more
closely represent their roles.
parent 2b1cdd85
......@@ -77,31 +77,41 @@ void cmFindLibraryCommand::AddArchitecturePath(
bool fresh)
{
std::string::size_type pos = dir.find("lib/", start_pos);
if (pos != std::string::npos) {
std::string cur_dir = dir.substr(0, pos + 3);
// Follow "lib<suffix>".
std::string next_dir = cur_dir + suffix;
if (cmSystemTools::FileIsDirectory(next_dir)) {
next_dir += dir.substr(pos + 3);
std::string::size_type next_pos = pos + 3 + strlen(suffix) + 1;
this->AddArchitecturePath(next_dir, next_pos, suffix);
// Check for "lib".
std::string lib = dir.substr(0, pos + 3);
bool use_lib = cmSystemTools::FileIsDirectory(lib);
// Check for "lib<suffix>" and use it first.
std::string libX = lib + suffix;
bool use_libX = cmSystemTools::FileIsDirectory(libX);
if (use_libX) {
libX += dir.substr(pos + 3);
std::string::size_type libX_pos = pos + 3 + strlen(suffix) + 1;
this->AddArchitecturePath(libX, libX_pos, suffix);
}
// Follow "lib".
if (cmSystemTools::FileIsDirectory(cur_dir)) {
if (use_lib) {
this->AddArchitecturePath(dir, pos + 3 + 1, suffix, false);
}
}
if (fresh) {
// Check for <dir><suffix>/.
std::string cur_dir = dir + suffix + "/";
if (cmSystemTools::FileIsDirectory(cur_dir)) {
this->SearchPaths.push_back(cur_dir);
// Check for the original unchanged path.
bool use_dir = cmSystemTools::FileIsDirectory(dir);
// Check for <dir><suffix>/ and use it first.
std::string dirX = dir + suffix;
bool use_dirX = cmSystemTools::FileIsDirectory(dirX);
if (use_dirX) {
dirX += "/";
this->SearchPaths.push_back(dirX);
}
// Now add the original unchanged path
if (cmSystemTools::FileIsDirectory(dir)) {
if (use_dir) {
this->SearchPaths.push_back(dir);
}
}
......
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