qt - .pro 文件中的 DEPLOYMENTFOLDERS 设置不起作用
问题描述
我正在创建一个 QML Qt5 项目,并希望在单击构建时自动将我的 qml 文件复制到构建文件夹中。我编辑了我的 .pro 文件以包括:
qmlFolder.source = qml
qmlFolder.target = .
DEPLOYMENTFOLDERS += qmlFolder
message("adding qml folder")
我的项目源文件夹结构是:
|
+-- build
+-- source
|
+--main.cpp
|
+--qml
|
+---main.qml
因此,当我单击构建时,我在编译输出选项卡(在 Qt 创建器中)中看到“添加 qml 文件夹”消息,所以我知道 make 正在读取 .pro 文件。但是构建文件夹缺少任何 qml 文件。而且我没有看到任何复制消息或带有构建输出的错误消息。
为什么我的 DEPLOYMENTFOLDERS 语句不起作用?(我在 Linux 下编译以防万一)
DEPLOYMENTFOLDERS 指令没有很好的文档记录,但应该按照这个SO question中的说明工作
解决方案
事实证明 .pro 功能实际上在 deployment.pri 文件中可用(我没有包括在内)。一旦包含,并将 qtcAddDeployment 行添加到 .pro 文件中,该功能就会按预期工作。
.pri 文件的重要部分是:
defineTest(qtcAddDeployment) {
for(deploymentfolder, DEPLOYMENTFOLDERS) {
item = item$${deploymentfolder}
greaterThan(QT_MAJOR_VERSION, 4) {
itemsources = $${item}.files
} else {
itemsources = $${item}.sources
}
$$itemsources = $$eval($${deploymentfolder}.source)
itempath = $${item}.path
$$itempath= $$eval($${deploymentfolder}.target)
export($$itemsources)
export($$itempath)
DEPLOYMENT += $$item
}
}
推荐阅读
- python - 最多 X 个值的平均值,然后与最后一个值取平均值?
- c# - linq: from object in an object to just an object
- javascript - 如何使用 Chart.js 创建这样的条形图?
- c# - 更新 CollectionView
- javascript - 如何使用 rxjs 从 json 对象中过滤属性?
- python-3.x - 如何转换
“二进制字符串”到 b“二进制字符串”? - c# - 检查列表是否包含特定集合的任何元素的最佳方法是什么?
- cmake - CMAKE_C_COMPILER_ID 如何在 libevent CMakeLists.txt 中获取值?
- php - 在 Laravel 中计算时差
- javascript - 将纯文本鼠标选择包装到 html 标记中