qmake provides several built-in platform scopes, allowing a project file to perform different operations depending on the current platform:
win32 {
...
}
unix {
...
}
All platform specifications in the mkspecs
directory can also be used to test various platform/compiler combination, e.g.
linux-g++ {
...
}
win32-g++ {
...
}
win32-msvc2003 {
...
}
However, I can't seem to find a way to test only the compiler (without the os)
#This does not work
g++ {
...
}
msvc {
...
}
Is there a way to do this without having to list all combinations (linux-g++ | win32-g++ | cygwin-g++ | ... {}
)? If this is not possible, is there a good reason?
These build in platform scopes are based on the qmake spec in Qt installation directory. The way platform scopes are resolved is not documented, but it seems that qmake internally use regexes to determine if the scope apply to the current
mkspecs
.Only wildcard matching is enabled (ie
?
,*
,[]
)Note that inside qmake
unix
,win32
,macx
have several meanings, both as magic keywords, and as a regular expressions to match.You can do it like this: