跳到主要内容

kmpkg_qmake_configure

配置基于 qmake 构建系统的项目。

用法

kmpkg_qmake_configure(
SOURCE_PATH <pro_file_path>
[QMAKE_OPTIONS arg1 [arg2 ...]]
[QMAKE_OPTIONS_RELEASE arg1 [arg2 ...]]
[QMAKE_OPTIONS_DEBUG arg1 [arg2 ...]]
[OPTIONS arg1 [arg2 ...]]
[OPTIONS_RELEASE arg1 [arg2 ...]]
[OPTIONS_DEBUG arg1 [arg2 ...]]
)

使用该函数前,必须依赖辅助端口 kmpkg-qmake(需配置为 host 依赖):

"dependencies": [
{
"name": "kmpkg-qmake",
"host": true
}
]

参数

函数参数

SOURCE_PATH

qmake 项目文件(*.pro)的路径(必填)。

QMAKE_OPTIONS、QMAKE_OPTIONS_RELEASE、QMAKE_OPTIONS_DEBUG

传递给 qmake 命令的额外选项(会放在 -- 分隔符之前)。

这类选项通常采用 QMAKE_X=<值>CONFIG=<值> 的形式,例如 QMAKE_CXXFLAGS=-O2CONFIG+=qtquickcompiler。其中:

  • QMAKE_OPTIONS:对 Debug/Release 构建均生效;
  • QMAKE_OPTIONS_RELEASE:仅对 Release 构建生效;
  • QMAKE_OPTIONS_DEBUG:仅对 Debug 构建生效。

OPTIONS、OPTIONS_RELEASE、OPTIONS_DEBUG

传递给 qmake 命令的额外选项(会放在 -- 分隔符之后)。

作用域规则同 QMAKE_OPTIONS 系列参数,用于传递 qmake 中 -- 之后的自定义参数。

三元组参数(Triplet Parameters)

以下参数通过 kmpkg 三元组(triplet)配置(通常在 triplets/ 目录下的配置文件中设置),用于全局定制 qmake 的构建行为:

KMPKG_OSX_DEPLOYMENT_TARGET

指定 macOS 部署目标版本,该值会同步映射为 qmake 的 QMAKE_MACOSX_DEPLOYMENT_TARGET 变量。

KMPKG_QMAKE_COMMAND

指定 qmake 可执行文件的路径。

默认值:"${CURRENT_HOST_INSTALLED_DIR}/tools/Qt6/bin/qmake${KMPKG_HOST_EXECUTABLE_SUFFIX}"

KMPKG_QT_CONF_RELEASE

Release 构建模式下使用的 qt.config 配置文件路径。

默认值:"${CURRENT_INSTALLED_DIR}/tools/Qt6/qt_release.conf"

KMPKG_QT_CONF_DEBUG

Debug 构建模式下使用的 qt.config 配置文件路径。

默认值:"${CURRENT_INSTALLED_DIR}/tools/Qt6/qt_debug.conf"

KMPKG_QT_TARGET_MKSPEC

该参数在 kmpkg-qmake 版本 2022-11-16 中新增

指定要使用的 Qt mkspec(构建规范),例如 win32-msvc(Windows + MSVC)、linux-g++(Linux + GCC)、macx-clang(macOS + Clang)等。

KMPKG_QMAKE_OPTIONS_RELEASE

Release 构建模式下,传递给 qmake 的额外全局选项(会补充到 QMAKE_OPTIONS_RELEASE 之后)。

KMPKG_QMAKE_OPTIONS_DEBUG

Debug 构建模式下,传递给 qmake 的额外全局选项(会补充到 QMAKE_OPTIONS_DEBUG 之后)。

示例

基础配置 Qt 项目

kmpkg_qmake_configure(
SOURCE_PATH ${SOURCE_PATH}/myproject.pro
# 全局 qmake 选项(-- 前)
QMAKE_OPTIONS "QMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}"
# Release 模式额外选项
QMAKE_OPTIONS_RELEASE "CONFIG+=release"
# Debug 模式额外选项
QMAKE_OPTIONS_DEBUG "CONFIG+=debug"
)

源码

ports/kmpkg-qmake/kmpkg_qmake_configure.cmake