[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