Значения области компилятора в qmake

qmake предоставляет несколько встроенных областей платформы, позволяя файлу проекта выполнять различные операции в зависимости от текущей платформы:

win32 {
...
}
unix {
...
}

Все спецификации платформы в mkspecs каталог также может быть использован для тестирования различных комбинаций платформа / компилятор, например,

linux-g++ {
...
}
win32-g++ {
...
}
win32-msvc2003 {
...
}

Тем не менее, я не могу найти способ проверить только компилятор (без ОС)

#This does not work
g++ {
...
}
msvc {
...
}

Есть ли способ сделать это без перечисления всех комбинаций (linux-g++ | win32-g++ | cygwin-g++ | ... {})? Если это невозможно, есть ли веская причина?

6

Решение

Вы можете сделать это так:

*-g++ {
...
}
win32-msvc* {
...
}
8

Другие решения

Эти встроенные области платформы основаны на qmake spec в каталоге установки Qt. Способ разрешения областей платформы не задокументирован, но кажется, что qmake внутренне использует регулярные выражения определить, применяется ли область действия к текущему mkspecs,

Только сопоставление по шаблону включен (т.е. ?, *, [])

Обратите внимание, что внутри qmake unix,win32, macx имеют несколько значений, как магические ключевые слова, так и регулярные выражения для соответствия.

2

По вопросам рекламы [email protected]