4
Я использую win32
, macx
и unix:!macx
aka. Операторы Linux if в моем файле .pro
, чтобы указать особые задачи, например.Есть ли 'или' обозначения в qmake
win32 {
TARGET = myapp
RC_FILE = myapp.rc
}
macx {
TARGET = MyApp
ICON = myapp.icns
QMAKE_INFO_PLIST = Info.plist
}
unix:!macx { # linux
CONFIG(debug, debug|release) {
TARGET = myapp-debug
}
CONFIG(release, debug|release) {
TARGET = myapp
}
}
Это прекрасно работает для if X else
, if X elseif X else
и if not X
где X
является ОС спецификатор.
Есть ли способ сказать qmake, он должен скомпилировать блок для os1
или os2
?
Великого, спасибо. Оказывается, что '|' связывается сильнее, чем оператор ':'. Это можно обойти, используя недокументированные и операторы '&'. Например. 'unix | macx & CONFIG (выпуск, debug | release) {'работает на Linux debug где' unix | macx: CONFIG (выпуск, отладка | выпуск) {'does not. –
Забудьте мой последний комментарий. Нет оператора '&'. Часть строки просто не анализировалась, потому что 'unix' был' true'. –