在 QMake 项目文件中添加所有子目录
Add all subdirs in a QMake project file
我正在将一个旧项目移植到 Qt,并且我有很多单元测试项目。
每个单元测试都是一个可执行文件。
现在我的主要 .pro 文件如下所示:
SUBDIRS += UnitTests/Test01/Test01.pro
SUBDIRS += UnitTests/Test02/Test02.pro
SUBDIRS += UnitTests/Test03/Test03.pro
...
SUBDIRS += UnitTests/Test54/Test54.pro
有没有办法一次包含所有子目录?
我想要这样的东西:
SUBDIRS += UnitTests/*
谢谢
您可以尝试使用 qmake 的 files 功能来定位所有 *.pro
个文件并像这样添加它们:
SUBDIRS += $$files(UnitTests/*.pro,true)
files
需要两个参数:作为第一个参数的 globbing 表达式以及是否递归到子目录。
感谢 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}
我正在将一个旧项目移植到 Qt,并且我有很多单元测试项目。 每个单元测试都是一个可执行文件。
现在我的主要 .pro 文件如下所示:
SUBDIRS += UnitTests/Test01/Test01.pro
SUBDIRS += UnitTests/Test02/Test02.pro
SUBDIRS += UnitTests/Test03/Test03.pro
...
SUBDIRS += UnitTests/Test54/Test54.pro
有没有办法一次包含所有子目录? 我想要这样的东西:
SUBDIRS += UnitTests/*
谢谢
您可以尝试使用 qmake 的 files 功能来定位所有 *.pro
个文件并像这样添加它们:
SUBDIRS += $$files(UnitTests/*.pro,true)
files
需要两个参数:作为第一个参数的 globbing 表达式以及是否递归到子目录。
感谢 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}