我正在使用QtTest框架编写一个单元测试。我有一个.pro文件代表测试项目,我想在其中指定一个相对路径,指向我想用INCLUDEPATH
关键字测试的源文件。源文件位于源文件夹中,该文件夹在文件夹层次结构中比.pro文件高2级。所以,如果我用bash达到目的,我会用cd ..
,然后是cd ..
,再是cd source
。我试过INCLUDEPATH += $$PWD/../../source
,但似乎不起作用。我在Qt文档中也找不到任何相关信息。
我如何才能从qmake中实现我想要的行为?任何帮助都会很棒。
有一个名为clean_path
的内置(替换(函数。此处记录。
下面的代码帮我搞定了:
defineReplace(cleanPath) {
win32:1 ~= s|\\|/|g
contains(1, ^/.*):pfx = /
else:pfx =
segs = $$split(1, /)
out =
for(seg, segs) {
equals(seg, ..):out = $$member(out, 0, -2)
else:!equals(seg, .):out += $$seg
}
win32:return($$join(out, \, $$pfx))
return($$join(out, /, $$pfx))
}
srs_path = $$_PRO_FILE_PWD_/../../source
srs_path_clean = $$cleanPath($$srs_path)
INCLUDEPATH += $$srs_path_clean