diff options
| author | ruki <[email protected]> | 2019-02-24 00:41:38 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-02-24 00:41:38 +0800 |
| commit | 30ce2cbcfd8d70e5d9c8c28121c376a6c1e35d01 (patch) | |
| tree | 1e3353cd2f087cacd8e4550ef6e0c06e7a583af7 | |
| parent | 28a830e6baec04094a2f4933421a216c87025272 (diff) | |
add qt_add_static_plugins
| -rw-r--r-- | tests/projects/qt/quickapp_static/src/main.cpp | 1 | ||||
| -rw-r--r-- | tests/projects/qt/quickapp_static/w | 32 | ||||
| -rw-r--r-- | tests/projects/qt/quickapp_static/xmake.lua | 15 | ||||
| -rw-r--r-- | tests/projects/qt/widgetapp_static/xmake.lua | 20 | ||||
| -rw-r--r-- | xmake/includes/qt_add_static_plugins.lua | 47 |
5 files changed, 94 insertions, 21 deletions
diff --git a/tests/projects/qt/quickapp_static/src/main.cpp b/tests/projects/qt/quickapp_static/src/main.cpp index 05e41f5e1..e72853f44 100644 --- a/tests/projects/qt/quickapp_static/src/main.cpp +++ b/tests/projects/qt/quickapp_static/src/main.cpp @@ -12,7 +12,6 @@ int main(int argc, char *argv[]) QQmlApplicationEngine engine; Q_IMPORT_PLUGIN(QtQuick2Plugin) -// Q_IMPORT_PLUGIN(QtQuick2WindowPlugin) qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuick2Plugin().instance())->registerTypes("QtQuick"); qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuick2Plugin().instance()) ->initializeEngine( &engine, "QtQuick"); diff --git a/tests/projects/qt/quickapp_static/w b/tests/projects/qt/quickapp_static/w new file mode 100644 index 000000000..49412dd35 --- /dev/null +++ b/tests/projects/qt/quickapp_static/w @@ -0,0 +1,32 @@ + +-- add modes: debug and release +add_rules("mode.debug", "mode.release") + +-- add target +target("qt_demo") + + -- add rules + add_rules("qt.application") + + -- add headers + add_headerfiles("src/*.h") + + -- add files + add_files("src/*.cpp") + add_files("src/qml.qrc") + + -- add frameworks + add_frameworks("QtQuick") + + -- add plugin: QXXXIntegrationPlugin + if is_plat("macosx") then + qt_add_static_plugins("QCocoaIntegrationPlugin", {linkdirs = "plugins/platforms", links = {"qcocoa", "Qt5PrintSupport", "Qt5PlatformSupport", "Qt5Widgets", "cups"}}) + elseif is_plat("windows") then + qt_add_static_plugins("QWindowsIntegrationPlugin", {linkdirs = "plugins/platforms", links = {"Qt5PrintSupport", "Qt5PlatformSupport", "Qt5Widgets", "cups"}}) + end + + -- add plugin: qml.QtQuick + add_values("qt.linkdirs", "qml/QtQuick.2") + add_values("qt.links", "qtquick2plugin") + add_values("qt.plugins", "QtQuick2Plugin") + diff --git a/tests/projects/qt/quickapp_static/xmake.lua b/tests/projects/qt/quickapp_static/xmake.lua index 03232c822..55662632e 100644 --- a/tests/projects/qt/quickapp_static/xmake.lua +++ b/tests/projects/qt/quickapp_static/xmake.lua @@ -2,6 +2,9 @@ -- add modes: debug and release add_rules("mode.debug", "mode.release") +-- includes +includes("qt_add_static_plugins.lua") + -- add target target("qt_demo") @@ -18,17 +21,13 @@ target("qt_demo") -- add frameworks add_frameworks("QtQuick") - -- add plugin: platforms - add_values("qt.linkdirs", "plugins/platforms") + -- add plugin: QXXXIntegrationPlugin if is_plat("macosx") then - add_values("qt.links", "qcocoa", "Qt5PrintSupport", "Qt5PlatformSupport", "Qt5Widgets", "cups") - add_values("qt.plugins", "QCocoaIntegrationPlugin") + qt_add_static_plugins("QCocoaIntegrationPlugin", {linkdirs = "plugins/platforms", links = {"qcocoa", "Qt5PrintSupport", "Qt5PlatformSupport", "Qt5Widgets", "cups"}}) elseif is_plat("windows") then - add_values("qt.links", "Qt5PrintSupport", "Qt5PlatformSupport", "cups") - add_values("qt.plugins", "QWindowsIntegrationPlugin") + qt_add_static_plugins("QWindowsIntegrationPlugin", {linkdirs = "plugins/platforms", links = {"Qt5PrintSupport", "Qt5PlatformSupport", "Qt5Widgets", "cups"}}) end -- add plugin: qml.QtQuick - add_values("qt.linkdirs", "qml/QtQuick.2") - add_values("qt.links", "qtquick2plugin") + qt_add_static_plugins("QtQuick2Plugin", {linkdirs = "qml/QtQuick.2", links = "qtquick2plugin"}) diff --git a/tests/projects/qt/widgetapp_static/xmake.lua b/tests/projects/qt/widgetapp_static/xmake.lua index b6142ef03..8adc77d11 100644 --- a/tests/projects/qt/widgetapp_static/xmake.lua +++ b/tests/projects/qt/widgetapp_static/xmake.lua @@ -2,6 +2,9 @@ -- add modes: debug and release add_rules("mode.debug", "mode.release") +-- includes +includes("qt_add_static_plugins.lua") + -- add target target("qt_demo") @@ -21,19 +24,12 @@ target("qt_demo") -- add frameworks add_frameworks("QtWidgets") - -- add plugin: platforms - add_values("qt.linkdirs", "plugins/platforms") + -- add plugin: QXXXIntegrationPlugin if is_plat("macosx") then - add_values("qt.links", "qcocoa", "Qt5PrintSupport", "Qt5PlatformSupport", "cups") - add_values("qt.plugins", "QCocoaIntegrationPlugin") + qt_add_static_plugins("QCocoaIntegrationPlugin", {linkdirs = "plugins/platforms", links = {"qcocoa", "Qt5PrintSupport", "Qt5PlatformSupport", "cups"}}) elseif is_plat("windows") then - add_values("qt.links", "Qt5PrintSupport", "Qt5PlatformSupport", "cups") - add_values("qt.plugins", "QWindowsIntegrationPlugin") + qt_add_static_plugins("QWindowsIntegrationPlugin", {linkdirs = "plugins/platforms", links = {"Qt5PrintSupport", "Qt5PlatformSupport", "cups"}}) end - -- add plugin: imageformats.QSvgPlugin (optional) - --[[ - add_values("qt.linkdirs", "plugins/imageformats") - add_values("qt.links", "qsvg", "Qt5Svg") - add_values("qt.plugins", "QSvgPlugin") - ]] + -- add plugin: QSvgPlugin (optional) + qt_add_static_plugins("QSvgPlugin", {linkdirs = "plugins/imageformats", links = {"qsvg", "Qt5Svg"}}) diff --git a/xmake/includes/qt_add_static_plugins.lua b/xmake/includes/qt_add_static_plugins.lua new file mode 100644 index 000000000..807823c03 --- /dev/null +++ b/xmake/includes/qt_add_static_plugins.lua @@ -0,0 +1,47 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed to the Apache Software Foundation (ASF) under one +-- or more contributor license agreements. See the NOTICE file +-- distributed with this work for additional information +-- regarding copyright ownership. The ASF licenses this file +-- to you under the Apache License, Version 2.0 (the +-- "License"); you may not use this file except in compliance +-- with the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015 - 2019, TBOOX Open Source Group. +-- +-- @author ruki +-- @file qt_add_static_plugins.lua +-- + +-- add static plugins for qt rules +-- +-- e.g. +-- +-- @code +-- includes("qt_add_static_plugins.lua") +-- target("test") +-- add_rules("qt.application") +-- add_files("src/*.c") +-- qt_add_static_plugins("QSvgPlugin", {linkdirs = "plugins/imageformats", links = {"qsvg", "Qt5Svg"}}) +-- @endcode +-- +function qt_add_static_plugins(plugin, opt) + opt = opt or {} + add_values("qt.plugins", plugin) + if opt.links then + add_values("qt.links", unpack(table.wrap(opt.links))) + end + if opt.linkdirs then + add_values("qt.linkdirs", unpack(table.wrap(opt.linkdirs))) + end +end + |
