在QMake项目文件中添加所有子目录

时间:2017-06-23 07:43:24

标签: qt qmake

我将一个旧项目移植到Qt,我有很多单元测试项目。 每个单元测试都是一个可执行文件。

现在我的主.pro文件如下所示:

SUBDIRS += UnitTests/Test01/Test01.pro
SUBDIRS += UnitTests/Test02/Test02.pro
SUBDIRS += UnitTests/Test03/Test03.pro
...
SUBDIRS += UnitTests/Test54/Test54.pro

有没有办法一次包含所有子目录? 我想要这样的东西:

SUBDIRS += UnitTests/*

由于

2 个答案:

答案 0 :(得分:1)

您可以尝试使用qmake的files函数找到所有*.pro个文件并添加如下:

SUBDIRS += $$files(UnitTests/*.pro,true)

files需要两个参数:一个globbing表达式作为第一个参数以及是否递归到子目录。

答案 1 :(得分:0)

感谢MartinHö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}