qmake提供了几个内置的平台范围,允许项目文件根据当前平台执行不同的操作:
win32 {
...
}
unix {
...
}
mkspecs
目录中的所有平台规范也可用于测试各种平台/编译器组合,例如
linux-g++ {
...
}
win32-g++ {
...
}
win32-msvc2003 {
...
}
但是,我似乎无法找到一种方法来只测试编译器(没有os)
#This does not work
g++ {
...
}
msvc {
...
}
有没有办法在不必列出所有组合(linux-g++ | win32-g++ | cygwin-g++ | ... {}
)的情况下执行此操作?如果这是不可能的,有充分的理由吗?
答案 0 :(得分:8)
你可以这样做:
*-g++ {
...
}
win32-msvc* {
...
}
答案 1 :(得分:2)
这些内置平台范围基于Qt安装目录中的qmake spec。解决平台范围的方式没有记录,但似乎qmake internally use regexes确定范围是否适用于当前mkspecs
。
仅启用wildcard matching(即?
,*
,[]
)
请注意,在qmake unix
中,win32
,macx
有多种含义,既有魔术关键字,也有正则表达式匹配。