[Cmake-commits] CMake branch, master, updated. v3.13.2-890-g6a23e16

Kitware Robot kwrobot at kitware.com
Mon Jan 14 06:53:07 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  6a23e16ec289ca737b7a4c1020e6b0c71c749672 (commit)
       via  0377fe1e2b05b729b2baad6c78b922aa972b7c09 (commit)
       via  dd39da551883bca5f8ec1be376a77f6d56666552 (commit)
       via  f44a0414aec38f6e70eb2c11c75c9f35bb526259 (commit)
       via  5ae69f591965886c5e6a1cde780a87ddc4c4722d (commit)
      from  dd90811bbf61fb9066f84463e9817b94324c105f (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=6a23e16ec289ca737b7a4c1020e6b0c71c749672
commit 6a23e16ec289ca737b7a4c1020e6b0c71c749672
Merge: dd90811 0377fe1
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Jan 14 11:51:32 2019 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Mon Jan 14 06:51:42 2019 -0500

    Merge topic 'autogen_noqt_warning'
    
    0377fe1e2b Merge branch 'backport-autogen_noqt_warning' into autogen_noqt_warning
    dd39da5518 Tests: Add case for warning when AUTOMOC/UIC/RCC gets disabled
    f44a0414ae Autogen: Issue a warning when AUTOMOC/UIC/RCC gets disabled.
    5ae69f5919 Autogen: Issue a warning when AUTOMOC/UIC/RCC gets disabled.
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !2787


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0377fe1e2b05b729b2baad6c78b922aa972b7c09
commit 0377fe1e2b05b729b2baad6c78b922aa972b7c09
Merge: f44a041 dd39da5
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jan 11 08:41:51 2019 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Jan 11 08:41:51 2019 -0500

    Merge branch 'backport-autogen_noqt_warning' into autogen_noqt_warning


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dd39da551883bca5f8ec1be376a77f6d56666552
commit dd39da551883bca5f8ec1be376a77f6d56666552
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jan 11 08:27:14 2019 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Jan 11 08:28:42 2019 -0500

    Tests: Add case for warning when AUTOMOC/UIC/RCC gets disabled

diff --git a/Tests/RunCMake/Autogen/CMakeLists.txt b/Tests/RunCMake/Autogen/CMakeLists.txt
new file mode 100644
index 0000000..9a66cde
--- /dev/null
+++ b/Tests/RunCMake/Autogen/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 3.13)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/Autogen/NoQt-stderr.txt b/Tests/RunCMake/Autogen/NoQt-stderr.txt
new file mode 100644
index 0000000..6b4a933
--- /dev/null
+++ b/Tests/RunCMake/Autogen/NoQt-stderr.txt
@@ -0,0 +1,8 @@
+^CMake Warning \(dev\) in CMakeLists.txt:
+  AUTOGEN: No valid Qt version found for target main.  AUTOMOC, AUTOUIC,
+  AUTORCC disabled.  Consider adding:
+
+    find_package\(Qt5 COMPONENTS Widgets\)
+
+  to your CMakeLists.txt file.
+This warning is for project developers.  Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/Autogen/NoQt.cmake b/Tests/RunCMake/Autogen/NoQt.cmake
new file mode 100644
index 0000000..b2d375a
--- /dev/null
+++ b/Tests/RunCMake/Autogen/NoQt.cmake
@@ -0,0 +1,6 @@
+enable_language(CXX)
+
+add_executable(main empty.cpp)
+set_property(TARGET main PROPERTY AUTOMOC 1)
+set_property(TARGET main PROPERTY AUTORCC 1)
+set_property(TARGET main PROPERTY AUTOUIC 1)
diff --git a/Tests/RunCMake/Autogen/RunCMakeTest.cmake b/Tests/RunCMake/Autogen/RunCMakeTest.cmake
new file mode 100644
index 0000000..e52f28d
--- /dev/null
+++ b/Tests/RunCMake/Autogen/RunCMakeTest.cmake
@@ -0,0 +1,3 @@
+include(RunCMake)
+
+run_cmake(NoQt)
diff --git a/Tests/RunCMake/Autogen/empty.cpp b/Tests/RunCMake/Autogen/empty.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 99f4ae7..89102dd 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -142,6 +142,7 @@ if(NOT CMake_TEST_EXTERNAL_CMAKE)
 endif()
 
 add_RunCMake_test(AndroidTestUtilities)
+add_RunCMake_test(Autogen)
 add_RunCMake_test(BuildDepends)
 if(UNIX AND "${CMAKE_GENERATOR}" MATCHES "Unix Makefiles|Ninja")
   add_RunCMake_test(Byproducts)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f44a0414aec38f6e70eb2c11c75c9f35bb526259
commit f44a0414aec38f6e70eb2c11c75c9f35bb526259
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Thu Jan 10 17:39:51 2019 +0100
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Jan 10 14:05:33 2019 -0500

    Autogen: Issue a warning when AUTOMOC/UIC/RCC gets disabled.
    
    We used to silently disable AUTOMOC/UIC/RCC when no valid Qt
    version was found.  This patch introduces the generation of
    a warning message in that case.

diff --git a/Source/cmQtAutoGenGlobalInitializer.cxx b/Source/cmQtAutoGenGlobalInitializer.cxx
index 678ff14..f4cf3e0 100644
--- a/Source/cmQtAutoGenGlobalInitializer.cxx
+++ b/Source/cmQtAutoGenGlobalInitializer.cxx
@@ -13,6 +13,7 @@
 #include "cmStateTypes.h"
 #include "cmSystemTools.h"
 #include "cmTarget.h"
+#include "cmake.h"
 
 #include <memory>
 #include <utility>
@@ -86,10 +87,43 @@ cmQtAutoGenGlobalInitializer::cmQtAutoGenGlobalInitializer(
         auto qtVersion = cmQtAutoGenInitializer::GetQtVersion(target);
         bool const validQt = (qtVersion.Major == 4) ||
           (qtVersion.Major == 5) || (qtVersion.Major == 6);
-        bool const mocIsValid = moc && (validQt || !mocExec.empty());
-        bool const uicIsValid = uic && (validQt || !uicExec.empty());
-        bool const rccIsValid = rcc && (validQt || !rccExec.empty());
 
+        bool const mocAvailable = (validQt || !mocExec.empty());
+        bool const uicAvailable = (validQt || !uicExec.empty());
+        bool const rccAvailable = (validQt || !rccExec.empty());
+        bool const mocIsValid = (moc && mocAvailable);
+        bool const uicIsValid = (uic && uicAvailable);
+        bool const rccIsValid = (rcc && uicAvailable);
+        // Disabled AUTOMOC/UIC/RCC warning
+        bool const mocDisabled = (moc && !mocAvailable);
+        bool const uicDisabled = (uic && !uicAvailable);
+        bool const rccDisabled = (rcc && !rccAvailable);
+        if (mocDisabled || uicDisabled || rccDisabled) {
+          std::string msg = "AUTOGEN: No valid Qt version found for target ";
+          msg += target->GetName();
+          msg += ". ";
+          {
+            std::vector<std::string> lst;
+            if (mocDisabled) {
+              lst.emplace_back("AUTOMOC");
+            }
+            if (uicDisabled) {
+              lst.emplace_back("AUTOUIC");
+            }
+            if (rccDisabled) {
+              lst.emplace_back("AUTORCC");
+            }
+            msg += cmJoin(lst, ", ");
+          }
+          msg += " disabled.  Consider adding:\n";
+          if (uicDisabled) {
+            msg += "  find_package(Qt5 COMPONENTS Widgets)\n";
+          } else {
+            msg += "  find_package(Qt5 COMPONENTS Core)\n";
+          }
+          msg += "to your CMakeLists.txt file.";
+          target->Makefile->IssueMessage(cmake::AUTHOR_WARNING, msg);
+        }
         if (mocIsValid || uicIsValid || rccIsValid) {
           // Create autogen target initializer
           Initializers_.emplace_back(cm::make_unique<cmQtAutoGenInitializer>(

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5ae69f591965886c5e6a1cde780a87ddc4c4722d
commit 5ae69f591965886c5e6a1cde780a87ddc4c4722d
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Thu Jan 10 15:44:10 2019 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Thu Jan 10 16:48:28 2019 +0100

    Autogen: Issue a warning when AUTOMOC/UIC/RCC gets disabled.
    
    We used to silently disable AUTOMOC/UIC/RCC when no valid Qt
    version was found.  This patch introduces the generation of
    a warning message in that case.
    
    Closes #18732.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 71e844e..5f7ff0b 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1500,6 +1500,31 @@ bool cmGlobalGenerator::QtAutoGen()
       auto qtVersion = cmQtAutoGenInitializer::GetQtVersion(target);
       // don't do anything if there is no Qt4 or Qt5Core (which contains moc)
       if (qtVersion.Major != 4 && qtVersion.Major != 5) {
+        std::string msg = "AUTOGEN: No valid Qt version found for target ";
+        msg += target->GetName();
+        msg += ". ";
+        {
+          std::vector<std::string> lst;
+          if (mocEnabled) {
+            lst.emplace_back("AUTOMOC");
+          }
+          if (uicEnabled) {
+            lst.emplace_back("AUTOUIC");
+          }
+          if (rccEnabled) {
+            lst.emplace_back("AUTORCC");
+          }
+          msg += cmJoin(lst, ", ");
+        }
+        msg += " disabled.  ";
+        msg += "Consider adding:\n";
+        if (uicEnabled) {
+          msg += "  find_package(Qt5 COMPONENTS Widgets)\n";
+        } else {
+          msg += "  find_package(Qt5 COMPONENTS Core)\n";
+        }
+        msg += "to your CMakeLists.txt file.";
+        target->Makefile->IssueMessage(cmake::AUTHOR_WARNING, msg);
         continue;
       }
 

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

Summary of changes:
 Source/cmQtAutoGenGlobalInitializer.cxx            | 40 ++++++++++++++++++++--
 Tests/RunCMake/{Android => Autogen}/CMakeLists.txt |  2 +-
 Tests/RunCMake/Autogen/NoQt-stderr.txt             |  8 +++++
 Tests/RunCMake/Autogen/NoQt.cmake                  |  6 ++++
 Tests/RunCMake/Autogen/RunCMakeTest.cmake          |  3 ++
 .../{include_directories => Autogen}/empty.cpp     |  0
 Tests/RunCMake/CMakeLists.txt                      |  1 +
 7 files changed, 56 insertions(+), 4 deletions(-)
 copy Tests/RunCMake/{Android => Autogen}/CMakeLists.txt (63%)
 create mode 100644 Tests/RunCMake/Autogen/NoQt-stderr.txt
 create mode 100644 Tests/RunCMake/Autogen/NoQt.cmake
 create mode 100644 Tests/RunCMake/Autogen/RunCMakeTest.cmake
 copy Tests/RunCMake/{include_directories => Autogen}/empty.cpp (100%)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list