D3288d607ecd8ba24e699df02fabf773
xmake 新增对 Qt 编译环境支持,用自己最喜爱的编辑器去开发 Qt 程序

最近给xmake新增了对 Qt SDK 环境的支持,现在我们完全可以脱离 Qt Creator 进行 Qt 应用程序的开发,甚至配合 vscode/idea/sublime/vim 等编辑器+xmake 插件(xmake-vscode, xmake-idea, xmake-sublime ...),
用户完全可以切换到自己最常用的编辑器环境中去开发和构建 Qt 程序,例如这样:

通过模板创建空工程

xmake 内置了一些工程模板可以用来快速创建一个基于 Qt 的空工程,例如:

$ xmake create -l c++ -t console_qt test
$ xmake create -l c++ -t static_qt test
$ xmake create -l c++ -t shared_qt test
$ xmake create -l c++ -t quickapp_qt test

目前主要提供上述四种工程模板,对应:控制台程序、静态库、动态库、ui 应用程序。

以 quickapp 工程为例,最后生成的空工程xmake.lua内容大概长这样:

target("qt_demo")

    -- add rules
    add_rules("qt.application")

    -- add headers
    add_headers("src/*.h")

    -- add files
    add_files("src/*.cpp") 
    add_files("src/qml.qrc")

    -- add frameworks
    add_frameworks("QtQuick")

Qt SDK 环境配置

默认情况下 xmake 会自动探测 Qt 环境,当然如果找不到 Qt SDK 环境,用户也可以手动指定 Qt SDK 环境目录:

$ xmake f --qt=~/Qt/Qt5.9.1

静态库程序

xmake 通过内置的构建规则qt.static,将其应用到对应的 target,即可让相关 target 支持 Qt 静态库的构建,非常的方便简洁,关于构建规则的说明,可参考相关文档:内建规则

如果大家想要支持其他构建环境,也只需要方便的自定义一个自己的扩展规则,应用到对应的 target 即可实现,言归正传,我们看下 Qt 静态库的xmake.lua描述:

target("test")
    add_rules("qt.static")
    add_files("src/*.cpp")
    add_frameworks("QtNetwork", "QtGui")

非常简单,一般只需要这几行就 ok 了,如果需要用到 Qt 的一些框架库,可以通过add_frameworks来添加, 接着就是正常的编译过程:

$ xmake
top Created with Sketch.