在 QMake 项目文件中添加所有子目录
Posted
技术标签:
【中文标题】在 QMake 项目文件中添加所有子目录【英文标题】:Add all subdirs in a QMake project file 【发布时间】:2017-06-23 07:43:24 【问题描述】:我正在将一个旧项目移植到 Qt,并且我有很多单元测试项目。 每个单元测试都是一个可执行文件。
现在我的 .pro 主文件如下所示:
SUBDIRS += UnitTests/Test01/Test01.pro
SUBDIRS += UnitTests/Test02/Test02.pro
SUBDIRS += UnitTests/Test03/Test03.pro
...
SUBDIRS += UnitTests/Test54/Test54.pro
有没有办法一次包含所有子目录? 我想要这样的东西:
SUBDIRS += UnitTests/*
谢谢
【问题讨论】:
添加至少项目文件描述中提到的一些循环。也许你可以试试那个部分?! doc.qt.io/qt-4.8/qmake-project-files.html 是的,但循环是针对变量中包含的所有值完成的。所以我仍然需要用所有子目录名称填充变量,这是我尽量避免的。 【参考方案1】:您可以尝试使用 qmake 的files 函数来定位所有*.pro
文件并像这样添加它们:
SUBDIRS += $$files(UnitTests/*.pro,true)
files
需要两个参数:一个作为第一个参数的全局表达式以及是否递归到子目录。
【讨论】:
【参考方案2】:感谢 Martin Höher,这非常有效:
// Get a list of all .pro files
UNIT_TESTS_PRO_FILES = $$files($$PROJECT_ROOT_DIR/Sources/UnitTests/*.pro, true)
// Add them as subdirs
for(unitTestProFile, UNIT_TESTS_PRO_FILES) SUBDIRS *= $$unitTestProFile
【讨论】:
以上是关于在 QMake 项目文件中添加所有子目录的主要内容,如果未能解决你的问题,请参考以下文章
Qmake 创建 Visual Studio 项目 - 设置“工作目录”