diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2003-11-11 17:36:03 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2003-11-11 17:36:03 (GMT) |
commit | 220aea3aee658e59d02c1d6758688a085cf570f4 (patch) | |
tree | 64d73895a8f0e74d68d95dbb0f202075b4c71063 | |
parent | 2bb8d871cb160710cf38ad196e1ae5d3313557d2 (diff) | |
download | CMake-220aea3aee658e59d02c1d6758688a085cf570f4.zip CMake-220aea3aee658e59d02c1d6758688a085cf570f4.tar.gz CMake-220aea3aee658e59d02c1d6758688a085cf570f4.tar.bz2 |
BUG: Handle -C properly for executables that are not in the project; Fix Bug #344 - ctest -C Debug
-rw-r--r-- | Source/cmCTest.cxx | 64 |
1 files changed, 35 insertions, 29 deletions
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 114ba2d..4b63ad8 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -449,49 +449,45 @@ std::string cmCTest::FindTheExecutable(const char *exe) std::string file; cmSystemTools::SplitProgramPath(exe, dir, file); - if(m_ConfigType != "") - { - if(TryExecutable(dir.c_str(), file.c_str(), &fullPath, - m_ConfigType.c_str())) - { - return fullPath; - } - dir += "/"; - dir += m_ConfigType; - dir += "/"; - dir += file; - cmSystemTools::Error("config type specified on the command line, but test executable not found.", - dir.c_str()); - return ""; - } - if (TryExecutable(dir.c_str(),file.c_str(),&fullPath,".")) + if(m_ConfigType != "" && + ::TryExecutable(dir.c_str(), file.c_str(), &fullPath, + m_ConfigType.c_str())) { return fullPath; } - if (TryExecutable(dir.c_str(),file.c_str(),&fullPath,"")) + if (::TryExecutable(dir.c_str(),file.c_str(),&fullPath,".")) { return fullPath; } - if (TryExecutable(dir.c_str(),file.c_str(),&fullPath,"Release")) + if (::TryExecutable(dir.c_str(),file.c_str(),&fullPath,"")) { return fullPath; } - if (TryExecutable(dir.c_str(),file.c_str(),&fullPath,"Debug")) + if ( m_ConfigType == "" ) { - return fullPath; - } + // No config type, so try to guess it + if (::TryExecutable(dir.c_str(),file.c_str(),&fullPath,"Release")) + { + return fullPath; + } - if (TryExecutable(dir.c_str(),file.c_str(),&fullPath,"MinSizeRel")) - { - return fullPath; - } + if (::TryExecutable(dir.c_str(),file.c_str(),&fullPath,"Debug")) + { + return fullPath; + } - if (TryExecutable(dir.c_str(),file.c_str(),&fullPath,"RelWithDebInfo")) - { - return fullPath; + if (::TryExecutable(dir.c_str(),file.c_str(),&fullPath,"MinSizeRel")) + { + return fullPath; + } + + if (::TryExecutable(dir.c_str(),file.c_str(),&fullPath,"RelWithDebInfo")) + { + return fullPath; + } } // if everything else failed, check the users path @@ -503,7 +499,17 @@ std::string cmCTest::FindTheExecutable(const char *exe) return path; } } - + + if ( m_ConfigType != "" ) + { + dir += "/"; + dir += m_ConfigType; + dir += "/"; + dir += file; + cmSystemTools::Error("config type specified on the command line, but test executable not found.", + dir.c_str()); + return ""; + } return fullPath; } |