[Cmake-commits] CMake branch, next, updated. v2.8.12.1-5491-g5d52400

Stephen Kelly steveire at gmail.com
Wed Nov 20 06:42:42 EST 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  5d524003ea7ee45e7391528cbbb4a7aac7836c20 (commit)
       via  bedeade06b55f475c1c028c1f72c10244302c6fa (commit)
       via  a08248bb7d04331c5816ae598c44011cf1011c78 (commit)
       via  b7cecfcb21c60a3e9a989dabdd411c306e7b9e51 (commit)
      from  dea2575980a97200067418058c1d6fcdcf394acb (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5d524003ea7ee45e7391528cbbb4a7aac7836c20
commit 5d524003ea7ee45e7391528cbbb4a7aac7836c20
Merge: dea2575 bedeade
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Nov 20 06:42:30 2013 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Nov 20 06:42:30 2013 -0500

    Merge topic 'add-cmLiteralNCompare' into next
    
    bedeade Use new cmLiteralNCompare function
    a08248b cmStandardIncludes: Add new cmLiteralNCompare function.
    b7cecfc CMake Nightly Date Stamp

diff --cc Source/cmTarget.cxx
index 6533404,dda9f51..083a784
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@@ -2418,10 -2276,10 +2418,10 @@@ static void cmTargetCheckINTERFACE_LINK
  }
  
  //----------------------------------------------------------------------------
 -void cmTarget::CheckProperty(const char* prop, cmMakefile* context)
 +void cmTarget::CheckProperty(const char* prop, cmMakefile* context) const
  {
    // Certain properties need checking.
-   if(strncmp(prop, "LINK_INTERFACE_LIBRARIES", 24) == 0)
+   if(cmLiteralNCompare(prop, "LINK_INTERFACE_LIBRARIES") == 0)
      {
      if(const char* value = this->GetProperty(prop))
        {

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bedeade06b55f475c1c028c1f72c10244302c6fa
commit bedeade06b55f475c1c028c1f72c10244302c6fa
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Nov 20 02:12:00 2013 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Nov 20 12:41:48 2013 +0100

    Use new cmLiteralNCompare function

diff --git a/Source/CTest/cmCTestBuildHandler.cxx b/Source/CTest/cmCTestBuildHandler.cxx
index 39eeb70..85d7c2b 100644
--- a/Source/CTest/cmCTestBuildHandler.cxx
+++ b/Source/CTest/cmCTestBuildHandler.cxx
@@ -763,7 +763,7 @@ void cmCTestBuildHandler::GenerateXMLLaunchedFragment(std::ostream& os,
 bool cmCTestBuildHandler::IsLaunchedErrorFile(const char* fname)
 {
   // error-{hash}.xml
-  return (strncmp(fname, "error-", 6) == 0 &&
+  return (cmLiteralNCompare(fname, "error-") == 0 &&
           strcmp(fname+strlen(fname)-4, ".xml") == 0);
 }
 
@@ -771,7 +771,7 @@ bool cmCTestBuildHandler::IsLaunchedErrorFile(const char* fname)
 bool cmCTestBuildHandler::IsLaunchedWarningFile(const char* fname)
 {
   // warning-{hash}.xml
-  return (strncmp(fname, "warning-", 8) == 0 &&
+  return (cmLiteralNCompare(fname, "warning-") == 0 &&
           strcmp(fname+strlen(fname)-4, ".xml") == 0);
 }
 
diff --git a/Source/CTest/cmCTestGIT.cxx b/Source/CTest/cmCTestGIT.cxx
index 5b34491..4fe40d3 100644
--- a/Source/CTest/cmCTestGIT.cxx
+++ b/Source/CTest/cmCTestGIT.cxx
@@ -536,11 +536,11 @@ private:
   void DoHeaderLine()
     {
     // Look for header fields that we need.
-    if(strncmp(this->Line.c_str(), "commit ", 7) == 0)
+    if(cmLiteralNCompare(this->Line.c_str(), "commit ") == 0)
       {
       this->Rev.Rev = this->Line.c_str()+7;
       }
-    else if(strncmp(this->Line.c_str(), "author ", 7) == 0)
+    else if(cmLiteralNCompare(this->Line.c_str(), "author ") == 0)
       {
       Person author;
       this->ParsePerson(this->Line.c_str()+7, author);
@@ -548,7 +548,7 @@ private:
       this->Rev.EMail = author.EMail;
       this->Rev.Date = this->FormatDateTime(author);
       }
-    else if(strncmp(this->Line.c_str(), "committer ", 10) == 0)
+    else if(cmLiteralNCompare(this->Line.c_str(), "committer ") == 0)
       {
       Person committer;
       this->ParsePerson(this->Line.c_str()+10, committer);
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index bfabc9f..6c77b9f 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -1131,11 +1131,11 @@ int cmCTest::GetTestModelFromString(const char* str)
     return cmCTest::EXPERIMENTAL;
     }
   std::string rstr = cmSystemTools::LowerCase(str);
-  if ( strncmp(rstr.c_str(), "cont", 4) == 0 )
+  if ( cmLiteralNCompare(rstr.c_str(), "cont") == 0 )
     {
     return cmCTest::CONTINUOUS;
     }
-  if ( strncmp(rstr.c_str(), "nigh", 4) == 0 )
+  if ( cmLiteralNCompare(rstr.c_str(), "nigh") == 0 )
     {
     return cmCTest::NIGHTLY;
     }
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx
index fdc075e..fa54077 100644
--- a/Source/cmExportFileGenerator.cxx
+++ b/Source/cmExportFileGenerator.cxx
@@ -240,7 +240,7 @@ static bool checkInterfaceDirs(const std::string &prepro,
       {
       continue;
       }
-    if (strncmp(li->c_str(), "${_IMPORT_PREFIX}", 17) == 0)
+    if (cmLiteralNCompare(li->c_str(), "${_IMPORT_PREFIX}") == 0)
       {
       continue;
       }
diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx
index 133944e..f55b6bf 100644
--- a/Source/cmExportInstallFileGenerator.cxx
+++ b/Source/cmExportInstallFileGenerator.cxx
@@ -81,10 +81,10 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
     os << "# Compute the installation prefix relative to this file.\n"
        << "get_filename_component(_IMPORT_PREFIX"
        << " \"${CMAKE_CURRENT_LIST_FILE}\" PATH)\n";
-    if(strncmp(absDestS.c_str(), "/lib/", 5) == 0 ||
-       strncmp(absDestS.c_str(), "/lib64/", 7) == 0 ||
-       strncmp(absDestS.c_str(), "/usr/lib/", 9) == 0 ||
-       strncmp(absDestS.c_str(), "/usr/lib64/", 11) == 0)
+    if(cmLiteralNCompare(absDestS.c_str(), "/lib/") == 0 ||
+       cmLiteralNCompare(absDestS.c_str(), "/lib64/") == 0 ||
+       cmLiteralNCompare(absDestS.c_str(), "/usr/lib/") == 0 ||
+       cmLiteralNCompare(absDestS.c_str(), "/usr/lib64/") == 0)
       {
       // Handle "/usr move" symlinks created by some Linux distros.
       os <<
diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx
index 92dc054..ead940a 100644
--- a/Source/cmGeneratorExpressionDAGChecker.cxx
+++ b/Source/cmGeneratorExpressionDAGChecker.cxx
@@ -173,8 +173,8 @@ bool cmGeneratorExpressionDAGChecker::EvaluatingLinkLibraries(const char *tgt)
   return (strcmp(prop, "LINK_LIBRARIES") == 0
        || strcmp(prop, "LINK_INTERFACE_LIBRARIES") == 0
        || strcmp(prop, "IMPORTED_LINK_INTERFACE_LIBRARIES") == 0
-       || strncmp(prop, "LINK_INTERFACE_LIBRARIES_", 25) == 0
-       || strncmp(prop, "IMPORTED_LINK_INTERFACE_LIBRARIES_", 34) == 0)
+       || cmLiteralNCompare(prop, "LINK_INTERFACE_LIBRARIES_") == 0
+       || cmLiteralNCompare(prop, "IMPORTED_LINK_INTERFACE_LIBRARIES_") == 0)
        || strcmp(prop, "INTERFACE_LINK_LIBRARIES") == 0;
 }
 
@@ -200,7 +200,7 @@ bool cmGeneratorExpressionDAGChecker::EvaluatingCompileDefinitions() const
   const char *prop = this->Property.c_str();
   return (strcmp(prop, "COMPILE_DEFINITIONS") == 0
        || strcmp(prop, "INTERFACE_COMPILE_DEFINITIONS") == 0
-       || strncmp(prop, "COMPILE_DEFINITIONS_", 20) == 0);
+       || cmLiteralNCompare(prop, "COMPILE_DEFINITIONS_") == 0);
 }
 
 //----------------------------------------------------------------------------
diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index 2ae5a22..35aa381 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -902,8 +902,8 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
 
     CM_FOR_EACH_TRANSITIVE_PROPERTY_NAME(POPULATE_INTERFACE_PROPERTY_NAME)
       // Note that the above macro terminates with an else
-    /* else */ if (strncmp(propertyName.c_str(),
-                           "COMPILE_DEFINITIONS_", 20) == 0)
+    /* else */ if (cmLiteralNCompare(propertyName.c_str(),
+                           "COMPILE_DEFINITIONS_") == 0)
       {
       interfacePropertyName = "INTERFACE_COMPILE_DEFINITIONS";
       }
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx
index 29401c6..0de8dd5 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -28,7 +28,7 @@ static const char* cmVS10GenName(const char* name, std::string& genName)
     return 0;
     }
   const char* p = name + sizeof(vs10generatorName) - 6;
-  if(strncmp(p, " 2010", 5) == 0)
+  if(cmLiteralNCompare(p, " 2010") == 0)
     {
     p += 5;
     }
diff --git a/Source/cmGlobalVisualStudio11Generator.cxx b/Source/cmGlobalVisualStudio11Generator.cxx
index f1d7312..40f3d0f 100644
--- a/Source/cmGlobalVisualStudio11Generator.cxx
+++ b/Source/cmGlobalVisualStudio11Generator.cxx
@@ -23,7 +23,7 @@ static const char* cmVS11GenName(const char* name, std::string& genName)
     return 0;
     }
   const char* p = name + sizeof(vs11generatorName) - 6;
-  if(strncmp(p, " 2012", 5) == 0)
+  if(cmLiteralNCompare(p, " 2012") == 0)
     {
     p += 5;
     }
diff --git a/Source/cmGlobalVisualStudio12Generator.cxx b/Source/cmGlobalVisualStudio12Generator.cxx
index edd5567..d2cd554 100644
--- a/Source/cmGlobalVisualStudio12Generator.cxx
+++ b/Source/cmGlobalVisualStudio12Generator.cxx
@@ -23,7 +23,7 @@ static const char* cmVS12GenName(const char* name, std::string& genName)
     return 0;
     }
   const char* p = name + sizeof(vs12generatorName) - 6;
-  if(strncmp(p, " 2013", 5) == 0)
+  if(cmLiteralNCompare(p, " 2013") == 0)
     {
     p += 5;
     }
diff --git a/Source/cmOutputRequiredFilesCommand.cxx b/Source/cmOutputRequiredFilesCommand.cxx
index 16b2bea..411650c 100644
--- a/Source/cmOutputRequiredFilesCommand.cxx
+++ b/Source/cmOutputRequiredFilesCommand.cxx
@@ -32,7 +32,7 @@ void cmLBDepend::DependWalk(cmDependInformation* info)
   std::string line;
   while(cmSystemTools::GetLineFromStream(fin, line))
     {
-    if(!strncmp(line.c_str(), "#include", 8))
+    if(!cmLiteralNCompare(line.c_str(), "#include"))
       {
       // if it is an include line then create a string class
       std::string currentline = line;
diff --git a/Source/cmSetCommand.cxx b/Source/cmSetCommand.cxx
index bb193bf..7cc8060 100644
--- a/Source/cmSetCommand.cxx
+++ b/Source/cmSetCommand.cxx
@@ -23,7 +23,7 @@ bool cmSetCommand
 
   // watch for ENV signatures
   const char* variable = args[0].c_str(); // VAR is always first
-  if (!strncmp(variable,"ENV{",4) && strlen(variable) > 5)
+  if (!cmLiteralNCompare(variable, "ENV{") && strlen(variable) > 5)
     {
     // what is the variable name
     char *varName = new char [strlen(variable)];
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index c9905b6..dda9f51 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -560,7 +560,7 @@ cmSourceFile* cmTarget::AddSource(const char* s)
 //----------------------------------------------------------------------------
 void cmTarget::ProcessSourceExpression(std::string const& expr)
 {
-  if(strncmp(expr.c_str(), "$<TARGET_OBJECTS:", 17) == 0 &&
+  if(cmLiteralNCompare(expr.c_str(), "$<TARGET_OBJECTS:") == 0 &&
      expr[expr.size()-1] == '>')
     {
     std::string objLibName = expr.substr(17, expr.size()-18);
@@ -2199,11 +2199,11 @@ void cmTarget::GetCompileDefinitions(std::vector<std::string> &list,
 void cmTarget::MaybeInvalidatePropertyCache(const char* prop)
 {
   // Wipe out maps caching information affected by this property.
-  if(this->IsImported() && strncmp(prop, "IMPORTED", 8) == 0)
+  if(this->IsImported() && cmLiteralNCompare(prop, "IMPORTED") == 0)
     {
     this->Internal->ImportInfoMap.clear();
     }
-  if(!this->IsImported() && strncmp(prop, "LINK_INTERFACE_", 15) == 0)
+  if(!this->IsImported() && cmLiteralNCompare(prop, "LINK_INTERFACE_") == 0)
     {
     this->ClearLinkMaps();
     }
@@ -2279,21 +2279,21 @@ static void cmTargetCheckINTERFACE_LINK_LIBRARIES(const char* value,
 void cmTarget::CheckProperty(const char* prop, cmMakefile* context)
 {
   // Certain properties need checking.
-  if(strncmp(prop, "LINK_INTERFACE_LIBRARIES", 24) == 0)
+  if(cmLiteralNCompare(prop, "LINK_INTERFACE_LIBRARIES") == 0)
     {
     if(const char* value = this->GetProperty(prop))
       {
       cmTargetCheckLINK_INTERFACE_LIBRARIES(prop, value, context, false);
       }
     }
-  if(strncmp(prop, "IMPORTED_LINK_INTERFACE_LIBRARIES", 33) == 0)
+  if(cmLiteralNCompare(prop, "IMPORTED_LINK_INTERFACE_LIBRARIES") == 0)
     {
     if(const char* value = this->GetProperty(prop))
       {
       cmTargetCheckLINK_INTERFACE_LIBRARIES(prop, value, context, true);
       }
     }
-  if(strncmp(prop, "INTERFACE_LINK_LIBRARIES", 24) == 0)
+  if(cmLiteralNCompare(prop, "INTERFACE_LINK_LIBRARIES") == 0)
     {
     if(const char* value = this->GetProperty(prop))
       {
@@ -2595,7 +2595,7 @@ const char *cmTarget::GetProperty(const char* prop,
       }
 
     // Support "LOCATION_<CONFIG>".
-    if(strncmp(prop, "LOCATION_", 9) == 0)
+    if(cmLiteralNCompare(prop, "LOCATION_") == 0)
       {
       if (!this->HandleLocationPropertyPolicy())
         {
diff --git a/Source/cmTargetCompileDefinitionsCommand.cxx b/Source/cmTargetCompileDefinitionsCommand.cxx
index 46c9666..29a997b 100644
--- a/Source/cmTargetCompileDefinitionsCommand.cxx
+++ b/Source/cmTargetCompileDefinitionsCommand.cxx
@@ -44,7 +44,7 @@ std::string cmTargetCompileDefinitionsCommand
   for(std::vector<std::string>::const_iterator it = content.begin();
     it != content.end(); ++it)
     {
-    if (strncmp(it->c_str(), "-D", 2) == 0)
+    if (cmLiteralNCompare(it->c_str(), "-D") == 0)
       {
       defs += sep + it->substr(2);
       }
diff --git a/Source/cmUnsetCommand.cxx b/Source/cmUnsetCommand.cxx
index 84f3029..e9fee4f 100644
--- a/Source/cmUnsetCommand.cxx
+++ b/Source/cmUnsetCommand.cxx
@@ -24,7 +24,7 @@ bool cmUnsetCommand::InitialPass(std::vector<std::string> const& args,
   const char* variable = args[0].c_str();
 
   // unset(ENV{VAR})
-  if (!strncmp(variable,"ENV{",4) && strlen(variable) > 5)
+  if (!cmLiteralNCompare(variable, "ENV{") && strlen(variable) > 5)
     {
     // what is the variable name
     char *envVarName = new char [strlen(variable)];
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index 6ef0579..77ff503 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -273,7 +273,7 @@ int do_cmake(int ac, char** av)
       list_all_cached = true;
       list_help = true;
       }
-    else if (strncmp(av[i], "-P", strlen("-P")) == 0)
+    else if (cmLiteralNCompare(av[i], "-P") == 0)
       {
       if ( i == ac -1 )
         {
@@ -287,8 +287,7 @@ int do_cmake(int ac, char** av)
         args.push_back(av[i]);
         }
       }
-    else if (strncmp(av[i], "--find-package",
-                     strlen("--find-package")) == 0)
+    else if (cmLiteralNCompare(av[i], "--find-package") == 0)
       {
       workingMode = cmake::FIND_PACKAGE_MODE;
       args.push_back(av[i]);

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a08248bb7d04331c5816ae598c44011cf1011c78
commit a08248bb7d04331c5816ae598c44011cf1011c78
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Nov 20 02:12:48 2013 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Nov 20 12:41:46 2013 +0100

    cmStandardIncludes: Add new cmLiteralNCompare function.
    
    This allows avoiding error-prone hard-coding of literal
    string lengths.

diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h
index 18d017d..e9d503a 100644
--- a/Source/cmStandardIncludes.h
+++ b/Source/cmStandardIncludes.h
@@ -377,6 +377,20 @@ static thisClass* SafeDownCast(cmObject *c) \
   return 0;\
 }
 
+inline int cmLiteralNCompareImpl(const std::string &str1,
+                                 const char *str2,
+                                 size_t N)
+{
+  return strncmp(str1.c_str(), str2, N);
+}
+
+inline int cmLiteralNCompareImpl(const char* str1,
+                                 const char *str2,
+                                 size_t N)
+{
+  return strncmp(str1, str2, N);
+}
+
 #if defined(_MSC_VER) && _MSC_VER < 1300 \
   || defined(__GNUC__) && __GNUC__ < 3
 
@@ -384,6 +398,9 @@ static thisClass* SafeDownCast(cmObject *c) \
 #define cmArraySize(a) (sizeof(a)/sizeof(*a))
 #define cmArrayEnd(a) a + cmArraySize(a)
 
+#define cmLiteralNCompare(STR1, STR2) \
+  cmLiteralNCompareImpl(STR1, "" STR2 "", sizeof(STR2) - 1)
+
 #else
 
 template<typename T, size_t N>
@@ -393,6 +410,12 @@ const T* cmArrayEnd(const T (&a)[N]) { return a + N; }
 template<typename T, size_t N>
 size_t cmArraySize(const T (&)[N]) { return N; }
 
+template<typename T, size_t N>
+int cmLiteralNCompare(T str1, const char (&str2)[N])
+{
+  return cmLiteralNCompareImpl(str1, str2, N - 1);
+}
+
 #endif
 
 struct cmStrCmp {

-----------------------------------------------------------------------

Summary of changes:
 Source/CMakeVersion.cmake                    |    2 +-
 Source/CTest/cmCTestBuildHandler.cxx         |    4 ++--
 Source/CTest/cmCTestGIT.cxx                  |    6 +++---
 Source/cmCTest.cxx                           |    4 ++--
 Source/cmExportFileGenerator.cxx             |    2 +-
 Source/cmExportInstallFileGenerator.cxx      |    8 ++++----
 Source/cmGeneratorExpressionDAGChecker.cxx   |    6 +++---
 Source/cmGeneratorExpressionEvaluator.cxx    |    4 ++--
 Source/cmGlobalVisualStudio10Generator.cxx   |    2 +-
 Source/cmGlobalVisualStudio11Generator.cxx   |    2 +-
 Source/cmGlobalVisualStudio12Generator.cxx   |    2 +-
 Source/cmOutputRequiredFilesCommand.cxx      |    2 +-
 Source/cmSetCommand.cxx                      |    2 +-
 Source/cmStandardIncludes.h                  |   23 +++++++++++++++++++++++
 Source/cmTarget.cxx                          |   14 +++++++-------
 Source/cmTargetCompileDefinitionsCommand.cxx |    2 +-
 Source/cmUnsetCommand.cxx                    |    2 +-
 Source/cmakemain.cxx                         |    5 ++---
 18 files changed, 57 insertions(+), 35 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list