浏览代码

Cleanups: Use cmHas{Prefix,Suffix} instead of String{Starts,Ends}With

Sebastian Holtermann 6 年之前
父节点
当前提交
a693e875db

+ 2 - 1
Source/CPack/cmCPackGenerator.cxx

@@ -21,6 +21,7 @@
 #include "cmMakefile.h"
 #include "cmMakefile.h"
 #include "cmState.h"
 #include "cmState.h"
 #include "cmStateSnapshot.h"
 #include "cmStateSnapshot.h"
+#include "cmStringAlgorithms.h"
 #include "cmVersion.h"
 #include "cmVersion.h"
 #include "cmWorkingDirectory.h"
 #include "cmWorkingDirectory.h"
 #include "cmXMLSafe.h"
 #include "cmXMLSafe.h"
@@ -772,7 +773,7 @@ int cmCPackGenerator::InstallCMakeProject(
     // Make sure that DESTDIR + CPACK_INSTALL_PREFIX directory
     // Make sure that DESTDIR + CPACK_INSTALL_PREFIX directory
     // exists:
     // exists:
     //
     //
-    if (cmSystemTools::StringStartsWith(dir.c_str(), "/")) {
+    if (cmHasLiteralPrefix(dir, "/")) {
       dir = tempInstallDirectory + dir;
       dir = tempInstallDirectory + dir;
     } else {
     } else {
       dir = tempInstallDirectory + "/" + dir;
       dir = tempInstallDirectory + "/" + dir;

+ 2 - 1
Source/CTest/cmCTestCoverageHandler.cxx

@@ -13,6 +13,7 @@
 #include "cmParseGTMCoverage.h"
 #include "cmParseGTMCoverage.h"
 #include "cmParseJacocoCoverage.h"
 #include "cmParseJacocoCoverage.h"
 #include "cmParsePHPCoverage.h"
 #include "cmParsePHPCoverage.h"
+#include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 #include "cmWorkingDirectory.h"
 #include "cmWorkingDirectory.h"
 #include "cmXMLWriter.h"
 #include "cmXMLWriter.h"
@@ -1181,7 +1182,7 @@ int cmCTestCoverageHandler::HandleGCovCoverage(
         // gcov 4.7 can have output lines saying "No executable lines" and
         // gcov 4.7 can have output lines saying "No executable lines" and
         // "Removing 'filename.gcov'"... Don't log those as "errors."
         // "Removing 'filename.gcov'"... Don't log those as "errors."
         if (line != "No executable lines" &&
         if (line != "No executable lines" &&
-            !cmSystemTools::StringStartsWith(line.c_str(), "Removing ")) {
+            !cmHasLiteralPrefix(line, "Removing ")) {
           cmCTestLog(this->CTest, ERROR_MESSAGE,
           cmCTestLog(this->CTest, ERROR_MESSAGE,
                      "Unknown gcov output line: [" << line << "]"
                      "Unknown gcov output line: [" << line << "]"
                                                    << std::endl);
                                                    << std::endl);

+ 2 - 1
Source/CTest/cmCTestLaunch.cxx

@@ -16,6 +16,7 @@
 #include "cmProcessOutput.h"
 #include "cmProcessOutput.h"
 #include "cmState.h"
 #include "cmState.h"
 #include "cmStateSnapshot.h"
 #include "cmStateSnapshot.h"
+#include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 #include "cmXMLWriter.h"
 #include "cmXMLWriter.h"
 #include "cmake.h"
 #include "cmake.h"
@@ -594,7 +595,7 @@ bool cmCTestLaunch::Match(std::string const& line,
 bool cmCTestLaunch::MatchesFilterPrefix(std::string const& line) const
 bool cmCTestLaunch::MatchesFilterPrefix(std::string const& line) const
 {
 {
   return !this->OptionFilterPrefix.empty() &&
   return !this->OptionFilterPrefix.empty() &&
-    cmSystemTools::StringStartsWith(line, this->OptionFilterPrefix.c_str());
+    cmHasPrefix(line, this->OptionFilterPrefix);
 }
 }
 
 
 int cmCTestLaunch::Main(int argc, const char* const argv[])
 int cmCTestLaunch::Main(int argc, const char* const argv[])

+ 2 - 1
Source/CTest/cmParseJacocoCoverage.cxx

@@ -2,6 +2,7 @@
 
 
 #include "cmCTest.h"
 #include "cmCTest.h"
 #include "cmCTestCoverageHandler.h"
 #include "cmCTestCoverageHandler.h"
+#include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 #include "cmXMLParser.h"
 #include "cmXMLParser.h"
 
 
@@ -118,7 +119,7 @@ protected:
     // Check if any of the locations found match our package.
     // Check if any of the locations found match our package.
     for (std::string const& f : files) {
     for (std::string const& f : files) {
       std::string dir = cmsys::SystemTools::GetParentDirectory(f);
       std::string dir = cmsys::SystemTools::GetParentDirectory(f);
-      if (cmsys::SystemTools::StringEndsWith(dir, this->PackageName.c_str())) {
+      if (cmHasSuffix(dir, this->PackageName)) {
         cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
         cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
                            "Found package directory for " << fileName << ": "
                            "Found package directory for " << fileName << ": "
                                                           << dir << std::endl,
                                                           << dir << std::endl,

+ 2 - 2
Source/cmCTest.cxx

@@ -1965,7 +1965,7 @@ bool cmCTest::HandleCommandLineArguments(size_t& i,
   if (this->CheckArgument(arg, "-N", "--show-only")) {
   if (this->CheckArgument(arg, "-N", "--show-only")) {
     this->Impl->ShowOnly = true;
     this->Impl->ShowOnly = true;
   }
   }
-  if (cmSystemTools::StringStartsWith(arg.c_str(), "--show-only=")) {
+  if (cmHasLiteralPrefix(arg, "--show-only=")) {
     this->Impl->ShowOnly = true;
     this->Impl->ShowOnly = true;
 
 
     // Check if a specific format is requested. Defaults to human readable
     // Check if a specific format is requested. Defaults to human readable
@@ -2227,7 +2227,7 @@ int cmCTest::Run(std::vector<std::string>& args, std::string* output)
     // attempts are simply ignored since previous ctest versions ignore
     // attempts are simply ignored since previous ctest versions ignore
     // this too. (As well as many other unknown command line args.)
     // this too. (As well as many other unknown command line args.)
     //
     //
-    if (arg != "-D" && cmSystemTools::StringStartsWith(arg.c_str(), "-D")) {
+    if (arg != "-D" && cmHasLiteralPrefix(arg, "-D")) {
       std::string input = arg.substr(2);
       std::string input = arg.substr(2);
       this->AddVariableDefinition(input);
       this->AddVariableDefinition(input);
     }
     }

+ 2 - 2
Source/cmCallVisualStudioMacro.cxx

@@ -4,6 +4,7 @@
 
 
 #include <sstream>
 #include <sstream>
 
 
+#include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 
 
 #if defined(_MSC_VER)
 #if defined(_MSC_VER)
@@ -328,8 +329,7 @@ HRESULT FindVisualStudioInstances(const std::string& slnFile,
   if (SUCCEEDED(hr)) {
   if (SUCCEEDED(hr)) {
     std::map<std::string, IUnknownPtr>::iterator it;
     std::map<std::string, IUnknownPtr>::iterator it;
     for (it = mrot.begin(); it != mrot.end(); ++it) {
     for (it = mrot.begin(); it != mrot.end(); ++it) {
-      if (cmSystemTools::StringStartsWith(it->first.c_str(),
-                                          "!VisualStudio.DTE.")) {
+      if (cmHasLiteralPrefix(it->first, "!VisualStudio.DTE.")) {
         IDispatchPtr disp(it->second);
         IDispatchPtr disp(it->second);
         if (disp != (IDispatch*)0) {
         if (disp != (IDispatch*)0) {
           std::string slnName;
           std::string slnName;

+ 2 - 2
Source/cmExportFileGenerator.cxx

@@ -1209,8 +1209,8 @@ bool cmExportFileGenerator::PopulateExportProperties(
         targetProperties.GetPropertyValue("EXPORT_PROPERTIES")) {
         targetProperties.GetPropertyValue("EXPORT_PROPERTIES")) {
     for (auto& prop : cmSystemTools::ExpandedListArgument(exportProperties)) {
     for (auto& prop : cmSystemTools::ExpandedListArgument(exportProperties)) {
       /* Black list reserved properties */
       /* Black list reserved properties */
-      if (cmSystemTools::StringStartsWith(prop, "IMPORTED_") ||
-          cmSystemTools::StringStartsWith(prop, "INTERFACE_")) {
+      if (cmHasLiteralPrefix(prop, "IMPORTED_") ||
+          cmHasLiteralPrefix(prop, "INTERFACE_")) {
         std::ostringstream e;
         std::ostringstream e;
         e << "Target \"" << gte->Target->GetName() << "\" contains property \""
         e << "Target \"" << gte->Target->GetName() << "\" contains property \""
           << prop << "\" in EXPORT_PROPERTIES but IMPORTED_* and INTERFACE_* "
           << prop << "\" in EXPORT_PROPERTIES but IMPORTED_* and INTERFACE_* "

+ 2 - 1
Source/cmFindProgramCommand.cxx

@@ -4,6 +4,7 @@
 
 
 #include "cmMakefile.h"
 #include "cmMakefile.h"
 #include "cmStateTypes.h"
 #include "cmStateTypes.h"
+#include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 
 
 class cmExecutionStatus;
 class cmExecutionStatus;
@@ -71,7 +72,7 @@ struct cmFindProgramHelper
   bool CheckDirectoryForName(std::string const& path, std::string const& name)
   bool CheckDirectoryForName(std::string const& path, std::string const& name)
   {
   {
     for (std::string const& ext : this->Extensions) {
     for (std::string const& ext : this->Extensions) {
-      if (!ext.empty() && cmSystemTools::StringEndsWith(name, ext.c_str())) {
+      if (!ext.empty() && cmHasSuffix(name, ext)) {
         continue;
         continue;
       }
       }
       this->TestNameExt = name;
       this->TestNameExt = name;

+ 1 - 1
Source/cmGeneratorTarget.cxx

@@ -4192,7 +4192,7 @@ cmGeneratorTarget::GetTargetSourceFileFlags(const cmSourceFile* sf) const
         if (stripResources) {
         if (stripResources) {
           flags.MacFolder = "";
           flags.MacFolder = "";
         }
         }
-      } else if (cmSystemTools::StringStartsWith(location, "Resources/")) {
+      } else if (cmHasLiteralPrefix(location, "Resources/")) {
         flags.Type = cmGeneratorTarget::SourceFileTypeDeepResource;
         flags.Type = cmGeneratorTarget::SourceFileTypeDeepResource;
         if (stripResources) {
         if (stripResources) {
           flags.MacFolder += strlen("Resources/");
           flags.MacFolder += strlen("Resources/");

+ 5 - 4
Source/cmGlobalVisualStudio7Generator.cxx

@@ -8,7 +8,9 @@
 #include "cmMakefile.h"
 #include "cmMakefile.h"
 #include "cmMessageType.h"
 #include "cmMessageType.h"
 #include "cmState.h"
 #include "cmState.h"
+#include "cmStringAlgorithms.h"
 #include "cmUuid.h"
 #include "cmUuid.h"
+#include "cm_string_view.hxx"
 #include "cmake.h"
 #include "cmake.h"
 #include "cmsys/Encoding.hxx"
 #include "cmsys/Encoding.hxx"
 
 
@@ -432,16 +434,15 @@ void cmGlobalVisualStudio7Generator::WriteTargetDepends(
 
 
 void cmGlobalVisualStudio7Generator::WriteFolders(std::ostream& fout)
 void cmGlobalVisualStudio7Generator::WriteFolders(std::ostream& fout)
 {
 {
-  const char* prefix = "CMAKE_FOLDER_GUID_";
-  const std::string::size_type skip_prefix = strlen(prefix);
+  cm::string_view const prefix = "CMAKE_FOLDER_GUID_";
   std::string guidProjectTypeFolder = "2150E333-8FDC-42A3-9474-1A3956D46DE8";
   std::string guidProjectTypeFolder = "2150E333-8FDC-42A3-9474-1A3956D46DE8";
   for (auto const& iter : VisualStudioFolders) {
   for (auto const& iter : VisualStudioFolders) {
     std::string fullName = iter.first;
     std::string fullName = iter.first;
     std::string guid = this->GetGUID(fullName);
     std::string guid = this->GetGUID(fullName);
 
 
     std::replace(fullName.begin(), fullName.end(), '/', '\\');
     std::replace(fullName.begin(), fullName.end(), '/', '\\');
-    if (cmSystemTools::StringStartsWith(fullName.c_str(), prefix)) {
-      fullName = fullName.substr(skip_prefix);
+    if (cmHasPrefix(fullName, prefix)) {
+      fullName = fullName.substr(prefix.size());
     }
     }
 
 
     std::string nameOnly = cmSystemTools::GetFilenameName(fullName);
     std::string nameOnly = cmSystemTools::GetFilenameName(fullName);

+ 1 - 1
Source/cmQtAutoMocUic.cxx

@@ -1894,7 +1894,7 @@ bool cmQtAutoMocUic::Init(cmMakefile* makefile)
           std::list<std::string>::iterator it = includes.begin();
           std::list<std::string>::iterator it = includes.begin();
           while (it != includes.end()) {
           while (it != includes.end()) {
             std::string const& path = *it;
             std::string const& path = *it;
-            if (cmSystemTools::StringStartsWith(path, ppath->c_str())) {
+            if (cmHasPrefix(path, *ppath)) {
               MocConst_.IncludePaths.push_back(path);
               MocConst_.IncludePaths.push_back(path);
               it = includes.erase(it);
               it = includes.erase(it);
             } else {
             } else {

+ 2 - 1
Source/cmSourceGroupCommand.cxx

@@ -9,6 +9,7 @@
 
 
 #include "cmMakefile.h"
 #include "cmMakefile.h"
 #include "cmSourceGroup.h"
 #include "cmSourceGroup.h"
+#include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 
 
 namespace {
 namespace {
@@ -54,7 +55,7 @@ bool rootIsPrefix(const std::string& root,
                   const std::vector<std::string>& files, std::string& error)
                   const std::vector<std::string>& files, std::string& error)
 {
 {
   for (std::string const& file : files) {
   for (std::string const& file : files) {
-    if (!cmSystemTools::StringStartsWith(file, root.c_str())) {
+    if (!cmHasPrefix(file, root)) {
       error = "ROOT: " + root + " is not a prefix of file: " + file;
       error = "ROOT: " + root + " is not a prefix of file: " + file;
       return false;
       return false;
     }
     }

+ 3 - 2
Source/cmVisualStudioSlnParser.cxx

@@ -2,6 +2,7 @@
    file Copyright.txt or https://cmake.org/licensing for details.  */
    file Copyright.txt or https://cmake.org/licensing for details.  */
 #include "cmVisualStudioSlnParser.h"
 #include "cmVisualStudioSlnParser.h"
 
 
+#include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 #include "cmVisualStudioSlnData.h"
 #include "cmVisualStudioSlnData.h"
 #include "cmsys/FStream.hxx"
 #include "cmsys/FStream.hxx"
@@ -192,8 +193,8 @@ bool cmVisualStudioSlnParser::State::Process(
   assert(!line.IsComment());
   assert(!line.IsComment());
   switch (this->Stack.top()) {
   switch (this->Stack.top()) {
     case FileStateStart:
     case FileStateStart:
-      if (!cmSystemTools::StringStartsWith(
-            line.GetTag().c_str(), "Microsoft Visual Studio Solution File")) {
+      if (!cmHasLiteralPrefix(line.GetTag(),
+                              "Microsoft Visual Studio Solution File")) {
         result.SetError(ResultErrorInputStructure, this->GetCurrentLine());
         result.SetError(ResultErrorInputStructure, this->GetCurrentLine());
         return false;
         return false;
       }
       }

+ 1 - 2
Source/cmake.cxx

@@ -2031,8 +2031,7 @@ void cmake::AppendGlobalGeneratorsDocumentation(
   for (cmGlobalGeneratorFactory* g : this->Generators) {
   for (cmGlobalGeneratorFactory* g : this->Generators) {
     cmDocumentationEntry e;
     cmDocumentationEntry e;
     g->GetDocumentation(e);
     g->GetDocumentation(e);
-    if (!foundDefaultOne &&
-        cmSystemTools::StringStartsWith(e.Name, defaultName.c_str())) {
+    if (!foundDefaultOne && cmHasPrefix(e.Name, defaultName)) {
       e.CustomNamePrefix = '*';
       e.CustomNamePrefix = '*';
       foundDefaultOne = true;
       foundDefaultOne = true;
     }
     }