QBS
Qt Build Suite (QBS) 是一个构建工具,它可以用于构建 Qt 应用程序和其他项目。与其他构建工具相比,QBS 的特点是具有声明性语法和显式依赖关系管理。
使用 QBS,您可以在配置文件中定义项目的结构和属性,并使用声明性语法描述项目中的源代码和构建规则。同时,QBS 可以自动检测和处理依赖关系,确保项目的正确构建顺序。
以下是一些 QBS 的主要特性:
- 声明性语法:使用 QBS,您可以使用简单的声明性语法来描述项目结构和依赖关系。这使得配置文件易于阅读和维护。
- 显式依赖关系管理:QBS 可以自动处理依赖关系,确保项目的正确构建顺序。这使得项目的构建更加稳定和可靠。
- 多目标构建:QBS 可以同时构建多个目标,包括库、可执行文件和插件等。这使得整个项目的构建更加高效。
- 平台无关性:QBS 可以在多个平台上运行,包括 Windows、Linux 和 macOS 等。这使得开发人员可以轻松地在不同的平台上构建和测试项目。
- 插件系统:QBS 提供了一个灵活的插件系统,可以扩展其功能。开发人员可以编写自己的插件,以满足特定的构建需求。
总的来说,QBS 是一个非常强大的构建工具,可以用于构建各种类型的项目。如果您正在使用 Qt 进行开发,并且需要一个灵活和稳定的构建工具,那么 QBS 可能是一个不错的选择。
将tiledmap的Qt项目转换为VisualStudio项目
配置好qbs、qmake的环境变量
进入到源码目录,执行qbs.exe generate
,可以看到支持的vs项目工程
cd ./tiled-source-code qbs.exe generate Restoring build graph from disk ERROR: No generator specified. Available generators: clangdb iarew10 iarew3 iarew7 iarew8 keiluv5 makefile visualstudio2010 visualstudio2012 visualstudio2013 visualstudio2015 visualstudio2017 visualstudio2019 visualstudio2022
查看下具体怎么使用:
> qbs help generate qbs generate [options] [[config:<configuration-name>] [<property>:<value>] ...] ... Generates files to build the project using another build tool. The possible options are: --build-directory|-d <directory> Build in the given directory. The default value is the current directory unless preferences.defaultBuildDirectory is set. Relative paths will be interpreted relative to the current directory. If the directory does not exist, it will be created. Use the following special values as placeholders: @project: name of the project file excluding the extension @path: directory containing the project file --generator|-g <generator> Use the given build system generator.
最终命令为:
qbs.exe generate -g visualstudio2019
成功生成sln,使用visual studio打开即可
command line
tiled.exe只有在debug模式下才能看到这个options,因为qInfo的缘故
选项: -h --help : 显示此帮助 -v --version : 显示版本 --quit : 只检查参数有效性 --disable-opengl : 禁用硬件加速渲染 --export-map : 导出指定地图为目标文件 --export-tileset : 导出指定图块集到目标文件 --export-formats : 显示支持的导出格式列表,默认是tmx,也支持lua --export-layer-data-format : 导出的层数据格式(csv,gzip,zlib,base64),自己追加的 --embed-tilesets : 将图块集嵌入到导出的地图文件中 --detach-templates : 导出地图或图块集时分离模板实例 --resolve-types-and-properties : 导出地图或图块集中的类型和属性 --minimize : 去除不必要的空格来减小导出文件的大小 --new-instance : 开始新实例,即使已有实例正在运行
--export-map E:\proj\tank5\client\frameworks\qt-editor\res\tiledmap\grass.tmx E:\proj\tank5\client\frameworks\qt-editor\res\tiledmap\1.tmx
--export-map E:\proj\tank5\client\frameworks\qt-editor\res\tiledmap\grass.tmx E:\proj\tank5\client\frameworks\qt-editor\res\tiledmap\juik.tmx --minimize --export-layer-data-format-zlib