diff options
| author | ruki <[email protected]> | 2018-04-17 00:43:40 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-04-16 22:22:03 +0800 |
| commit | 4d630e8c0844d946e422ad347aa7708eca412b38 (patch) | |
| tree | 573c8cfb868f89f0b3748359282402121efa8b34 | |
| parent | 811bda9a12d7cecfaac97f2ab9943daa4e627396 (diff) | |
add quickapp
| -rw-r--r-- | tests/projects/qt_console/xmake.lua | 2 | ||||
| -rw-r--r-- | tests/projects/qt_quickapp/src/main.cpp | 16 | ||||
| -rw-r--r-- | tests/projects/qt_quickapp/src/main.qml | 9 | ||||
| -rw-r--r-- | tests/projects/qt_quickapp/src/qml.qrc | 5 | ||||
| -rw-r--r-- | tests/projects/qt_quickapp/xmake.lua | 17 | ||||
| -rw-r--r-- | tests/projects/qt_shared_library/xmake.lua | 2 | ||||
| -rw-r--r-- | tests/projects/qt_static_library/xmake.lua | 2 | ||||
| -rw-r--r-- | xmake/modules/detect/sdks/find_qt.lua | 5 | ||||
| -rw-r--r-- | xmake/rules/qt/xmake.lua | 61 |
9 files changed, 104 insertions, 15 deletions
diff --git a/tests/projects/qt_console/xmake.lua b/tests/projects/qt_console/xmake.lua index 4ff829575..0ab7a6b23 100644 --- a/tests/projects/qt_console/xmake.lua +++ b/tests/projects/qt_console/xmake.lua @@ -11,5 +11,3 @@ target("qt_console") -- add files add_files("src/*.cpp") - -- add frameworks - add_frameworks("QtCore") diff --git a/tests/projects/qt_quickapp/src/main.cpp b/tests/projects/qt_quickapp/src/main.cpp new file mode 100644 index 000000000..6333b85c4 --- /dev/null +++ b/tests/projects/qt_quickapp/src/main.cpp @@ -0,0 +1,16 @@ +#include <QGuiApplication> +#include <QQmlApplicationEngine> + +int main(int argc, char *argv[]) +{ + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + + QGuiApplication app(argc, argv); + + QQmlApplicationEngine engine; + engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); + if (engine.rootObjects().isEmpty()) + return -1; + + return app.exec(); +} diff --git a/tests/projects/qt_quickapp/src/main.qml b/tests/projects/qt_quickapp/src/main.qml new file mode 100644 index 000000000..188049dae --- /dev/null +++ b/tests/projects/qt_quickapp/src/main.qml @@ -0,0 +1,9 @@ +import QtQuick 2.9 +import QtQuick.Window 2.2 + +Window { + visible: true + width: 640 + height: 480 + title: qsTr("Hello World") +} diff --git a/tests/projects/qt_quickapp/src/qml.qrc b/tests/projects/qt_quickapp/src/qml.qrc new file mode 100644 index 000000000..5f6483ac3 --- /dev/null +++ b/tests/projects/qt_quickapp/src/qml.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/"> + <file>main.qml</file> + </qresource> +</RCC> diff --git a/tests/projects/qt_quickapp/xmake.lua b/tests/projects/qt_quickapp/xmake.lua new file mode 100644 index 000000000..87a1d80f8 --- /dev/null +++ b/tests/projects/qt_quickapp/xmake.lua @@ -0,0 +1,17 @@ + +-- add modes: debug and release +add_rules("mode:debug", "mode:release") + +-- add target +target("qt_demo") + + -- add rules + add_rules("qt:quickapp") + + -- add headers + add_headers("src/*.h") + + -- add files + add_files("src/*.cpp") + add_files("src/qml.qrc") + diff --git a/tests/projects/qt_shared_library/xmake.lua b/tests/projects/qt_shared_library/xmake.lua index 7fb713393..e3d3c0e61 100644 --- a/tests/projects/qt_shared_library/xmake.lua +++ b/tests/projects/qt_shared_library/xmake.lua @@ -18,4 +18,4 @@ target("qt_demo") add_defines("QT_DEMO_LIBRARY") -- add frameworks - add_frameworks("QtGui", "QtCore") + add_frameworks("QtGui") diff --git a/tests/projects/qt_static_library/xmake.lua b/tests/projects/qt_static_library/xmake.lua index 42e208787..00fcd0b31 100644 --- a/tests/projects/qt_static_library/xmake.lua +++ b/tests/projects/qt_static_library/xmake.lua @@ -15,4 +15,4 @@ target("qt_demo") add_files("src/*.cpp") -- add frameworks - add_frameworks("QtGui", "QtCore") + add_frameworks("QtGui") diff --git a/xmake/modules/detect/sdks/find_qt.lua b/xmake/modules/detect/sdks/find_qt.lua index 0ef499544..04f3041af 100644 --- a/xmake/modules/detect/sdks/find_qt.lua +++ b/xmake/modules/detect/sdks/find_qt.lua @@ -72,8 +72,11 @@ function _find_qt(sdkdir) -- get includedirs local includedirs = {path.join(sdkdir, "include")} + -- get version + local version = sdkdir:match("(%d+%.?%d*%.?%d*.-)") + -- get toolchains - return {sdkdir = sdkdir, bindir = bindir, linkdirs = linkdirs, includedirs = includedirs} + return {sdkdir = sdkdir, bindir = bindir, linkdirs = linkdirs, includedirs = includedirs, version = version} end -- find qt sdk toolchains diff --git a/xmake/rules/qt/xmake.lua b/xmake/rules/qt/xmake.lua index 4c08cea78..e92ad2aa8 100644 --- a/xmake/rules/qt/xmake.lua +++ b/xmake/rules/qt/xmake.lua @@ -22,7 +22,7 @@ -- @file xmake.lua -- --- define base rule +-- define rule: base rule("qt:base") -- on load @@ -56,6 +56,9 @@ rule("qt:base") -- deprecated API in order to know how to port your code away from it. target:add("defines", "QT_DEPRECATED_WARNINGS") + -- add frameworks: QtCore + target:add("frameworks", "QtCore") + -- do frameworks for qt for _, framework in ipairs(target:get("frameworks")) do @@ -81,15 +84,11 @@ rule("qt:base") end end) --- define rule: qt console -rule("qt:console") - - -- add base rule - add_deps("qt:base") - - -- on load - on_load(function (target) - target:set("kind", "binary") +-- define rule: *.qrc +rule("qt:qrc") + set_extensions(".qrc") + on_build_file(function (target, sourcefile) + print(sourcefile) end) -- define rule: qt static library @@ -114,3 +113,45 @@ rule("qt:shared") target:set("kind", "shared") end) +-- define rule: qt console +rule("qt:console") + + -- add base rule + add_deps("qt:base") + + -- on load + on_load(function (target) + target:set("kind", "binary") + end) + +-- define rule: qt widget application +rule("qt:widgetapp") + + -- add base rule + add_deps("qt:base") + + -- on load + on_load(function (target) + + -- set kind: binary + target:set("kind", "binary") + end) + +-- define rule: qt quick application +rule("qt:quickapp") + + -- add rules + add_deps("qt:qrc", "qt:base") + + -- on load + on_load(function (target) + + -- set kind: binary + target:set("kind", "binary") + + -- add frameworks + target:add("frameworks", "QtQuick", "QtGui") + + -- TODO + -- import("load")(target, {kind = "binary", frameworks = {"QtQuick", "QtGui", "QtCore"}}) + end) |
