[Cmake-commits] CMake branch, master, updated. v3.13.4-1291-gf47d980

Kitware Robot kwrobot at kitware.com
Tue Feb 5 07:53:06 EST 2019


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, master has been updated
       via  f47d980f73a065485bb7090a850f2ac4044c2dfd (commit)
       via  ab01ce91eee2ff8b00d56a5044a54404d4d3f49c (commit)
       via  9ddbf4c6e65b17b76dd6ccca72c5b3a0b7cbb1ad (commit)
       via  8372c054729984a76e3e619b4c28865006d905d0 (commit)
       via  b6cf08626785fc6401220928be8ab37b89bc669c (commit)
       via  ed0fa784ebb2b7e4d6db8b40d16f84f34692890a (commit)
      from  c6d679f0d904b19b3be411b399b5904a5da7ea78 (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 -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f47d980f73a065485bb7090a850f2ac4044c2dfd
commit f47d980f73a065485bb7090a850f2ac4044c2dfd
Merge: ab01ce9 9ddbf4c
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Feb 5 12:47:29 2019 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue Feb 5 07:49:07 2019 -0500

    Merge topic 'update-kwsys'
    
    9ddbf4c6e6 Merge branch 'upstream-KWSys' into update-kwsys
    8372c05472 KWSys 2019-02-05 (65802a20)
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !2918


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ab01ce91eee2ff8b00d56a5044a54404d4d3f49c
commit ab01ce91eee2ff8b00d56a5044a54404d4d3f49c
Merge: c6d679f b6cf086
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Feb 5 12:46:51 2019 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue Feb 5 07:47:14 2019 -0500

    Merge topic 'autogen_single_all_sources_iteration'
    
    b6cf086267 Autogen: Iterate over makefile sources only once
    ed0fa784eb cmSystemTools: Let `GetFileFormat` accept a `std::stding const&`
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !2909


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9ddbf4c6e65b17b76dd6ccca72c5b3a0b7cbb1ad
commit 9ddbf4c6e65b17b76dd6ccca72c5b3a0b7cbb1ad
Merge: 762a41f 8372c05
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Feb 5 07:20:34 2019 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Feb 5 07:20:34 2019 -0500

    Merge branch 'upstream-KWSys' into update-kwsys
    
    * upstream-KWSys:
      KWSys 2019-02-05 (65802a20)


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8372c054729984a76e3e619b4c28865006d905d0
commit 8372c054729984a76e3e619b4c28865006d905d0
Author:     KWSys Upstream <kwrobot at kitware.com>
AuthorDate: Tue Feb 5 07:19:44 2019 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Feb 5 07:20:29 2019 -0500

    KWSys 2019-02-05 (65802a20)
    
    Code extracted from:
    
        https://gitlab.kitware.com/utils/kwsys.git
    
    at commit 65802a20ec4b9a774518151c3f8772e082163601 (master).
    
    Upstream Shortlog
    -----------------
    
    Nicolae Vartolomei (1):
          d1536b02 macOS: Better approximation for AvailablePhysicalMemory

diff --git a/SystemInformation.cxx b/SystemInformation.cxx
index 6c12355..f323efc 100644
--- a/SystemInformation.cxx
+++ b/SystemInformation.cxx
@@ -4424,7 +4424,8 @@ bool SystemInformationImplementation::ParseSysCtl()
                       &count) == KERN_SUCCESS) {
     len = sizeof(value);
     err = sysctlbyname("hw.pagesize", &value, &len, KWSYS_NULLPTR, 0);
-    int64_t available_memory = vmstat.free_count * value;
+    int64_t available_memory =
+      (vmstat.free_count + vmstat.inactive_count) * value;
     this->AvailablePhysicalMemory =
       static_cast<size_t>(available_memory / 1048576);
   }

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b6cf08626785fc6401220928be8ab37b89bc669c
commit b6cf08626785fc6401220928be8ab37b89bc669c
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Sat Feb 2 12:44:05 2019 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Sat Feb 2 18:42:08 2019 +0100

    Autogen: Iterate over makefile sources only once
    
    In QtAutoGen we used to iterate over all makefile source two times to
    extract file parameters for moc and uic respectively.  This patch merges both
    iterations into one loop. This makes the code easier to understand and likely
    faster to execute as well.

diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx
index 1d64247..a96d574 100644
--- a/Source/cmQtAutoGenInitializer.cxx
+++ b/Source/cmQtAutoGenInitializer.cxx
@@ -616,40 +616,6 @@ bool cmQtAutoGenInitializer::InitUic()
       }
     }
   }
-  // .ui files skip and options
-  {
-    std::string const uiExt = "ui";
-    std::string pathError;
-    for (cmSourceFile* sf : makefile->GetSourceFiles()) {
-      // sf->GetExtension() is only valid after sf->GetFullPath() ...
-      // Since we're iterating over source files that might be not in the
-      // target we need to check for path errors (not existing files).
-      std::string const& fPath = sf->GetFullPath(&pathError);
-      if (!pathError.empty()) {
-        pathError.clear();
-        continue;
-      }
-      if (sf->GetExtension() == uiExt) {
-        std::string const absFile = cmSystemTools::GetRealPath(fPath);
-        // Check if the .ui file should be skipped
-        if (sf->GetPropertyAsBool("SKIP_AUTOUIC") ||
-            sf->GetPropertyAsBool("SKIP_AUTOGEN")) {
-          this->Uic.Skip.insert(absFile);
-        }
-        // Check if the .ui file has uic options
-        std::string const uicOpts = sf->GetSafeProperty("AUTOUIC_OPTIONS");
-        if (!uicOpts.empty()) {
-          // Check if file isn't skipped
-          if (this->Uic.Skip.count(absFile) == 0) {
-            this->Uic.FileFiles.push_back(absFile);
-            std::vector<std::string> optsVec;
-            cmSystemTools::ExpandListArgument(uicOpts, optsVec);
-            this->Uic.FileOptions.push_back(std::move(optsVec));
-          }
-        }
-      }
-    }
-  }
 
   // Uic executable
   return GetUicExecutable();
@@ -664,18 +630,30 @@ bool cmQtAutoGenInitializer::InitScanFiles()
 {
   cmMakefile* makefile = this->Target->Target->GetMakefile();
 
+  // String constants
+  std::string const SKIP_AUTOGEN_str = "SKIP_AUTOGEN";
+  std::string const SKIP_AUTOMOC_str = "SKIP_AUTOMOC";
+  std::string const SKIP_AUTOUIC_str = "SKIP_AUTOUIC";
+
   // Scan through target files
   {
-    std::string const qrcExt = "qrc";
+    // String constants
+    std::string const qrc_str = "qrc";
+    std::string const SKIP_AUTORCC_str = "SKIP_AUTORCC";
+    std::string const AUTORCC_OPTIONS_str = "AUTORCC_OPTIONS";
+
+    // Scan through target files
     std::vector<cmSourceFile*> srcFiles;
     this->Target->GetConfigCommonSourceFiles(srcFiles);
     for (cmSourceFile* sf : srcFiles) {
-      if (sf->GetPropertyAsBool("SKIP_AUTOGEN")) {
+      if (sf->GetPropertyAsBool(SKIP_AUTOGEN_str)) {
         continue;
       }
+
       // sf->GetExtension() is only valid after sf->GetFullPath() ...
       std::string const& fPath = sf->GetFullPath();
       std::string const& ext = sf->GetExtension();
+
       // Register generated files that will be scanned by moc or uic
       if (this->Moc.Enabled || this->Uic.Enabled) {
         cmSystemTools::FileFormat const fileType =
@@ -683,8 +661,10 @@ bool cmQtAutoGenInitializer::InitScanFiles()
         if ((fileType == cmSystemTools::CXX_FILE_FORMAT) ||
             (fileType == cmSystemTools::HEADER_FILE_FORMAT)) {
           std::string const absPath = cmSystemTools::GetRealPath(fPath);
-          if ((this->Moc.Enabled && !sf->GetPropertyAsBool("SKIP_AUTOMOC")) ||
-              (this->Uic.Enabled && !sf->GetPropertyAsBool("SKIP_AUTOUIC"))) {
+          if ((this->Moc.Enabled &&
+               !sf->GetPropertyAsBool(SKIP_AUTOMOC_str)) ||
+              (this->Uic.Enabled &&
+               !sf->GetPropertyAsBool(SKIP_AUTOUIC_str))) {
             // Register source
             const bool generated = sf->GetIsGenerated();
             if (fileType == cmSystemTools::HEADER_FILE_FORMAT) {
@@ -704,10 +684,9 @@ bool cmQtAutoGenInitializer::InitScanFiles()
         }
       }
       // Register rcc enabled files
-      if (this->Rcc.Enabled && (ext == qrcExt) &&
-          !sf->GetPropertyAsBool("SKIP_AUTORCC")) {
-        // Register qrc file
-        {
+      if (this->Rcc.Enabled) {
+        if ((ext == qrc_str) && !sf->GetPropertyAsBool(SKIP_AUTORCC_str)) {
+          // Register qrc file
           Qrc qrc;
           qrc.QrcFile = cmSystemTools::GetRealPath(fPath);
           qrc.QrcName =
@@ -715,7 +694,7 @@ bool cmQtAutoGenInitializer::InitScanFiles()
           qrc.Generated = sf->GetIsGenerated();
           // RCC options
           {
-            std::string const opts = sf->GetSafeProperty("AUTORCC_OPTIONS");
+            std::string const opts = sf->GetSafeProperty(AUTORCC_OPTIONS_str);
             if (!opts.empty()) {
               cmSystemTools::ExpandListArgument(opts, qrc.Options);
             }
@@ -731,43 +710,65 @@ bool cmQtAutoGenInitializer::InitScanFiles()
   // mocs_compilation.cpp source acknowledged by this target.
   this->Target->ClearSourcesCache();
 
+  // Scan through all source files in the makefile to extract moc and uic
+  // parameters.  Historically we support non target source file parameters.
+  // The reason is that their file names might be discovered from source files
+  // at generation time.
   if (this->Moc.Enabled || this->Uic.Enabled) {
-    // Read skip files from makefile sources
-    {
+    // String constants
+    std::string const ui_str = "ui";
+    std::string const AUTOUIC_OPTIONS_str = "AUTOUIC_OPTIONS";
+
+    for (cmSourceFile* sf : makefile->GetSourceFiles()) {
+      // sf->GetExtension() is only valid after sf->GetFullPath() ...
+      // Since we're iterating over source files that might be not in the
+      // target we need to check for path errors (not existing files).
       std::string pathError;
-      for (cmSourceFile* sf : makefile->GetSourceFiles()) {
-        // sf->GetExtension() is only valid after sf->GetFullPath() ...
-        // Since we're iterating over source files that might be not in the
-        // target we need to check for path errors (not existing files).
-        std::string const& fPath = sf->GetFullPath(&pathError);
-        if (!pathError.empty()) {
-          pathError.clear();
-          continue;
+      std::string const& fullPath = sf->GetFullPath(&pathError);
+      if (!pathError.empty() || fullPath.empty()) {
+        continue;
+      }
+
+      // Check file type
+      auto const fileType = cmSystemTools::GetFileFormat(sf->GetExtension());
+      bool const isSource = (fileType == cmSystemTools::CXX_FILE_FORMAT) ||
+        (fileType == cmSystemTools::HEADER_FILE_FORMAT);
+      bool const isUi = (this->Moc.Enabled && sf->GetExtension() == ui_str);
+
+      // Process only certain file types
+      if (isSource || isUi) {
+        std::string const absFile = cmSystemTools::GetRealPath(fullPath);
+        // Acquire file properties
+        bool const skipAUTOGEN = sf->GetPropertyAsBool(SKIP_AUTOGEN_str);
+        bool const skipMoc = (this->Moc.Enabled && isSource) &&
+          (skipAUTOGEN || sf->GetPropertyAsBool(SKIP_AUTOMOC_str));
+        bool const skipUic = this->Uic.Enabled &&
+          (skipAUTOGEN || sf->GetPropertyAsBool(SKIP_AUTOUIC_str));
+
+        // Register moc and uic skipped file
+        if (skipMoc) {
+          this->Moc.Skip.insert(absFile);
         }
-        cmSystemTools::FileFormat const fileType =
-          cmSystemTools::GetFileFormat(sf->GetExtension());
-        if (!(fileType == cmSystemTools::CXX_FILE_FORMAT) &&
-            !(fileType == cmSystemTools::HEADER_FILE_FORMAT)) {
-          continue;
+        if (skipUic) {
+          this->Uic.Skip.insert(absFile);
         }
-        const bool skipAll = sf->GetPropertyAsBool("SKIP_AUTOGEN");
-        const bool mocSkip = this->Moc.Enabled &&
-          (skipAll || sf->GetPropertyAsBool("SKIP_AUTOMOC"));
-        const bool uicSkip = this->Uic.Enabled &&
-          (skipAll || sf->GetPropertyAsBool("SKIP_AUTOUIC"));
-        if (mocSkip || uicSkip) {
-          std::string const absFile = cmSystemTools::GetRealPath(fPath);
-          if (mocSkip) {
-            this->Moc.Skip.insert(absFile);
-          }
-          if (uicSkip) {
-            this->Uic.Skip.insert(absFile);
+
+        // Check if the .ui file has uic options
+        if (isUi && !skipUic) {
+          std::string const uicOpts = sf->GetSafeProperty(AUTOUIC_OPTIONS_str);
+          if (!uicOpts.empty()) {
+            this->Uic.FileFiles.push_back(absFile);
+            std::vector<std::string> optsVec;
+            cmSystemTools::ExpandListArgument(uicOpts, optsVec);
+            this->Uic.FileOptions.push_back(std::move(optsVec));
           }
         }
       }
     }
+  }
 
-    // Process GENERATED sources and headers
+  // Process GENERATED sources and headers
+  if (this->Moc.Enabled || this->Uic.Enabled) {
     if (!this->AutogenTarget.SourcesGenerated.empty() ||
         !this->AutogenTarget.HeadersGenerated.empty()) {
       // Check status of policy CMP0071
@@ -843,13 +844,14 @@ bool cmQtAutoGenInitializer::InitScanFiles()
         }
       }
     }
-    // Sort headers and sources
-    if (this->Moc.Enabled || this->Uic.Enabled) {
-      std::sort(this->AutogenTarget.Headers.begin(),
-                this->AutogenTarget.Headers.end());
-      std::sort(this->AutogenTarget.Sources.begin(),
-                this->AutogenTarget.Sources.end());
-    }
+  }
+
+  // Sort headers and sources
+  if (this->Moc.Enabled || this->Uic.Enabled) {
+    std::sort(this->AutogenTarget.Headers.begin(),
+              this->AutogenTarget.Headers.end());
+    std::sort(this->AutogenTarget.Sources.begin(),
+              this->AutogenTarget.Sources.end());
   }
 
   // Process qrc files

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ed0fa784ebb2b7e4d6db8b40d16f84f34692890a
commit ed0fa784ebb2b7e4d6db8b40d16f84f34692890a
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Sat Feb 2 11:29:22 2019 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Sat Feb 2 18:42:08 2019 +0100

    cmSystemTools: Let `GetFileFormat` accept a `std::stding const&`
    
    The `const char*` used formerly was converted to a `std::string`
    internally anyway.

diff --git a/Source/cmExtraCodeLiteGenerator.cxx b/Source/cmExtraCodeLiteGenerator.cxx
index 2fa593c..0773edc 100644
--- a/Source/cmExtraCodeLiteGenerator.cxx
+++ b/Source/cmExtraCodeLiteGenerator.cxx
@@ -223,7 +223,7 @@ std::string cmExtraCodeLiteGenerator::CollectSourceFiles(
       for (cmSourceFile* s : sources) {
         // check whether it is a source or a include file
         // then put it accordingly into one of the two containers
-        switch (cmSystemTools::GetFileFormat(s->GetExtension().c_str())) {
+        switch (cmSystemTools::GetFileFormat(s->GetExtension())) {
           case cmSystemTools::C_FILE_FORMAT:
           case cmSystemTools::CXX_FILE_FORMAT:
           case cmSystemTools::CUDA_FILE_FORMAT:
diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx
index 41d29e8..1d64247 100644
--- a/Source/cmQtAutoGenInitializer.cxx
+++ b/Source/cmQtAutoGenInitializer.cxx
@@ -679,7 +679,7 @@ bool cmQtAutoGenInitializer::InitScanFiles()
       // Register generated files that will be scanned by moc or uic
       if (this->Moc.Enabled || this->Uic.Enabled) {
         cmSystemTools::FileFormat const fileType =
-          cmSystemTools::GetFileFormat(ext.c_str());
+          cmSystemTools::GetFileFormat(ext);
         if ((fileType == cmSystemTools::CXX_FILE_FORMAT) ||
             (fileType == cmSystemTools::HEADER_FILE_FORMAT)) {
           std::string const absPath = cmSystemTools::GetRealPath(fPath);
@@ -745,7 +745,7 @@ bool cmQtAutoGenInitializer::InitScanFiles()
           continue;
         }
         cmSystemTools::FileFormat const fileType =
-          cmSystemTools::GetFileFormat(sf->GetExtension().c_str());
+          cmSystemTools::GetFileFormat(sf->GetExtension());
         if (!(fileType == cmSystemTools::CXX_FILE_FORMAT) &&
             !(fileType == cmSystemTools::HEADER_FILE_FORMAT)) {
           continue;
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 5d8c079..1d20e2f 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -1330,13 +1330,11 @@ bool cmSystemTools::SimpleGlob(const std::string& glob,
   return res;
 }
 
-cmSystemTools::FileFormat cmSystemTools::GetFileFormat(const char* cext)
+cmSystemTools::FileFormat cmSystemTools::GetFileFormat(std::string const& ext)
 {
-  if (!cext || *cext == 0) {
+  if (ext.empty()) {
     return cmSystemTools::NO_FILE_FORMAT;
   }
-  // std::string ext = cmSystemTools::LowerCase(cext);
-  std::string ext = cext;
   if (ext == "c" || ext == ".c" || ext == "m" || ext == ".m") {
     return cmSystemTools::C_FILE_FORMAT;
   }
diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h
index fcb2cce..0f92fe2 100644
--- a/Source/cmSystemTools.h
+++ b/Source/cmSystemTools.h
@@ -334,7 +334,7 @@ public:
   /**
    * Determine the file type based on the extension
    */
-  static FileFormat GetFileFormat(const char* ext);
+  static FileFormat GetFileFormat(std::string const& ext);
 
   /** Windows if this is true, the CreateProcess in RunCommand will
    *  not show new console windows when running programs.

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

Summary of changes:
 Source/cmExtraCodeLiteGenerator.cxx |   2 +-
 Source/cmQtAutoGenInitializer.cxx   | 160 ++++++++++++++++++------------------
 Source/cmSystemTools.cxx            |   6 +-
 Source/cmSystemTools.h              |   2 +-
 Source/kwsys/SystemInformation.cxx  |   3 +-
 5 files changed, 87 insertions(+), 86 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list