summaryrefslogtreecommitdiffstats
path: root/Source/cmSystemTools.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-04-27 15:45:49 (GMT)
committerBrad King <brad.king@kitware.com>2015-04-27 15:49:29 (GMT)
commitc46490dad525e5f5e10eba12808718340ad40ace (patch)
tree767fb017f4d1d22af31994f0eef4eb57a6229d71 /Source/cmSystemTools.cxx
parentebb54e02c4bfd9ef8ffb92a49afb873a0af58f2a (diff)
downloadCMake-c46490dad525e5f5e10eba12808718340ad40ace.zip
CMake-c46490dad525e5f5e10eba12808718340ad40ace.tar.gz
CMake-c46490dad525e5f5e10eba12808718340ad40ace.tar.bz2
cmSystemTools: Fix IsPathToFramework implementation (#15535)
Use more reliable logic to detect if a path ends in ".framework". The old logic added by commit v2.4.0~791 (add better support for framework linking, 2005-12-26) did not account for paths not ending in it at all. With a 9-character path the logic and "npos == -1" happens to make the old check pass.
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r--Source/cmSystemTools.cxx11
1 files changed, 2 insertions, 9 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 0e0532d..e2adabe 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -1486,15 +1486,8 @@ void cmSystemTools::EnableVSConsoleOutput()
bool cmSystemTools::IsPathToFramework(const char* path)
{
- if(cmSystemTools::FileIsFullPath(path))
- {
- std::string libname = path;
- if(libname.find(".framework") == libname.size()+1-sizeof(".framework"))
- {
- return true;
- }
- }
- return false;
+ return (cmSystemTools::FileIsFullPath(path) &&
+ cmHasLiteralSuffix(path, ".framework"));
}
bool cmSystemTools::CreateTar(const char* outFileName,