diff options
author | Maximilian Goldstein <max.goldstein@qt.io> | 2022-04-07 12:35:48 +0200 |
---|---|---|
committer | Maximilian Goldstein <max.goldstein@qt.io> | 2022-04-11 14:12:09 +0200 |
commit | 324b625f9f35142c85ea09a00fac2a2eb73ac3f2 (patch) | |
tree | 867fd63ea9caf7f6a8532c19e81ba06b7d0daec1 /tools | |
parent | dd04e55a624ad58a25e44b7a824dbf407009cfdb (diff) |
Turn the QtQuick qmllint plugin into a proper shared library
Previously it was just a static library that we linked qmllint against
now it's properly installed in the qmllint plugins folder and can be
utilized in the language server as well.
Fixes: QTBUG-102278
Change-Id: I4aec42d1e2ba113237ee5ba148085e69b7251506
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/qmllint/CMakeLists.txt | 9 | ||||
-rw-r--r-- | tools/qmllint/main.cpp | 5 | ||||
-rw-r--r-- | tools/qmllint/plugins/CMakeLists.txt | 3 | ||||
-rw-r--r-- | tools/qmllint/plugins/quick/CMakeLists.txt | 8 | ||||
-rw-r--r-- | tools/qmllint/plugins/quick/plugin.json | 6 | ||||
-rw-r--r-- | tools/qmllint/plugins/quick/quicklintplugin.cpp | 57 | ||||
-rw-r--r-- | tools/qmllint/plugins/quick/quicklintplugin.h | 57 |
7 files changed, 0 insertions, 145 deletions
diff --git a/tools/qmllint/CMakeLists.txt b/tools/qmllint/CMakeLists.txt index 57758b2716..d54ab2d43f 100644 --- a/tools/qmllint/CMakeLists.txt +++ b/tools/qmllint/CMakeLists.txt @@ -18,15 +18,6 @@ qt_internal_add_tool(${target_name} ) qt_internal_return_unless_building_tools() -add_subdirectory(plugins) - -qt_internal_extend_target(${target_name} CONDITION TARGET QmlLintPluginQuick - DEFINES - PLUGIN_QUICK_AVAILABLE - PUBLIC_LIBRARIES - QmlLintPluginQuick -) - #### Keys ignored in scope 1:.:.:qmllint.pro:<TRUE>: # QMAKE_TARGET_DESCRIPTION = "QML" "Syntax" "Verifier" # _OPTION = "host_build" diff --git a/tools/qmllint/main.cpp b/tools/qmllint/main.cpp index f679b70ab4..8fd4d9d2a1 100644 --- a/tools/qmllint/main.cpp +++ b/tools/qmllint/main.cpp @@ -41,7 +41,6 @@ #include <QtCore/qjsonarray.h> #include <QtCore/qjsondocument.h> #include <QtCore/qscopeguard.h> -#include <QtCore/qplugin.h> #if QT_CONFIG(commandlineparser) #include <QtCore/qcommandlineparser.h> @@ -53,10 +52,6 @@ constexpr int JSON_LOGGING_FORMAT_REVISION = 3; -#ifdef PLUGIN_QUICK_AVAILABLE -Q_IMPORT_PLUGIN(QmlLintPluginQuick) -#endif - int main(int argv, char *argc[]) { qSetGlobalQHashSeed(0); diff --git a/tools/qmllint/plugins/CMakeLists.txt b/tools/qmllint/plugins/CMakeLists.txt deleted file mode 100644 index 806b8663ad..0000000000 --- a/tools/qmllint/plugins/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -if (TARGET Qt::Quick) - add_subdirectory(quick) -endif() diff --git a/tools/qmllint/plugins/quick/CMakeLists.txt b/tools/qmllint/plugins/quick/CMakeLists.txt deleted file mode 100644 index 82fddfd664..0000000000 --- a/tools/qmllint/plugins/quick/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -add_library(QmlLintPluginQuick STATIC - quicklintplugin.h - quicklintplugin.cpp -) -target_link_libraries(QmlLintPluginQuick PRIVATE Qt::QmlCompilerPrivate) -qt_autogen_tools_initial_setup(QmlLintPluginQuick) -target_compile_definitions(QmlLintPluginQuick PRIVATE QT_STATICPLUGIN) - diff --git a/tools/qmllint/plugins/quick/plugin.json b/tools/qmllint/plugins/quick/plugin.json deleted file mode 100644 index 2e8bf8219c..0000000000 --- a/tools/qmllint/plugins/quick/plugin.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Quick", - "author": "Qt", - "description": "Warns about QtQuick best practices", - "version": "1.0" -} diff --git a/tools/qmllint/plugins/quick/quicklintplugin.cpp b/tools/qmllint/plugins/quick/quicklintplugin.cpp deleted file mode 100644 index c4daef20cd..0000000000 --- a/tools/qmllint/plugins/quick/quicklintplugin.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2022 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the tools applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "quicklintplugin.h" - -LayoutChildrenValidatorPass::LayoutChildrenValidatorPass(QQmlSA::PassManager *manager) - : QQmlSA::ElementPass(manager) -{ - m_layout = resolveType("QtQuick.Layouts", "Layout"); -} - -bool LayoutChildrenValidatorPass::shouldRun(const QQmlSA::Element &element) -{ - return !m_layout.isNull() && element->parentScope() - && element->parentScope()->inherits(m_layout); -} - -void LayoutChildrenValidatorPass::run(const QQmlSA::Element &element) -{ - auto bindings = element->propertyBindings(u"anchors"_qs); - if (!bindings.empty()) - emitWarning(u"Detected anchors on an item that is managed by a layout. This is undefined " - u"behavior; use Layout.alignment instead.", - element->sourceLocation()); -} - -void QmlLintPluginQuick::registerPasses(QQmlSA::PassManager *manager, - const QQmlSA::Element &rootElement) -{ - Q_UNUSED(rootElement); - manager->registerElementPass(std::make_unique<LayoutChildrenValidatorPass>(manager)); -} diff --git a/tools/qmllint/plugins/quick/quicklintplugin.h b/tools/qmllint/plugins/quick/quicklintplugin.h deleted file mode 100644 index 5ac26566f7..0000000000 --- a/tools/qmllint/plugins/quick/quicklintplugin.h +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2022 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the tools applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QUICKLINTPLUGIN_H -#define QUICKLINTPLUGIN_H - -#include <QtPlugin> -#include <QtQmlCompiler/private/qqmlsa_p.h> - -class QmlLintPluginQuick : public QObject, public QQmlSA::LintPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID QmlLintPluginInterface_iid FILE "plugin.json") - Q_INTERFACES(QQmlSA::LintPlugin) - -public: - void registerPasses(QQmlSA::PassManager *manager, const QQmlSA::Element &rootElement) override; -}; - -class LayoutChildrenValidatorPass : public QQmlSA::ElementPass -{ -public: - LayoutChildrenValidatorPass(QQmlSA::PassManager *manager); - - bool shouldRun(const QQmlSA::Element &element) override; - void run(const QQmlSA::Element &element) override; - -private: - QQmlSA::Element m_layout; -}; - -#endif // QUICKLINTPLUGIN_H |