是否有用于 bash ".."的 QMake 类似物?



我正在使用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

最新更新