Как указать платформу Mac в qmake (QtCreator)

Я хотел бы установить некоторые конфигурации для Mac OS в файле pro через QtCreator. Я прочитал документ и обнаружил, что он поддерживает Windows и Unix, например:

 win32 {
     SOURCES += hellowin.cpp
 }
 unix {
     SOURCES += hellounix.cpp
 }

Я понимаю, что Mac OS — это *nix-подобная ОС, однако я все еще хочу иметь отличия от Linux. Есть ли способ сделать это?


Убунту + Qt5.1


person CCC    schedule 27.08.2013    source источник
comment
Кстати, в файле Qt .pro очень важно иметь фигурную скобку { в той же строке, что и ОС. Если фигурная скобка идет в следующей строке, то это не сработает.   -  person iammilind    schedule 11.05.2018


Ответы (2)


Вы можете обнаружить Mac OS X следующим образом:

macx {
    SOURCES += hellomac.cpp
}

Но чтобы иметь значение с Linux, вы бы предпочли указать

unix:!macx {
    SOURCES += hellolinux.cpp
}

macx: {
    SOURCES += hellomac.cpp
}
person Dmitry    schedule 27.08.2013
comment
Спасибо, это работает. просто не знаю, почему в официальном документе qt нет macx подробностей. ссылка на руководство по qmake. Отмечено и проголосовать - person CCC; 27.08.2013
comment
Это просто задокументировано в другом месте - запуск qmake. macx — это одна из специфичных для платформы спецификаций qmake. - person Dmitry; 27.08.2013
comment
спасибо за вашу ссылку. и не могли бы вы взглянуть на обновление, я обнаружил проблему. - person CCC; 27.08.2013
comment
Извините, я не могу это воспроизвести. Я пытался добавить четыре файла - hellomac.cpp, hellolinux.cpp, otherfile_mac.cpp, otherfile_linux.cpp + файл проекта, подобный вашему. Qmake прекрасно распознает условия включения исходников как в Mac OS X (10.8.4), так и в Linux (в моем случае Mint 15). - person Dmitry; 27.08.2013
comment
неважно, я также считаю, что Qt должен распознавать условия. Просто убедитесь, что я не пропущу другие точки на qmake. Большое спасибо. - person CCC; 28.08.2013
comment
@Dmitry: Это неправильно. На самом деле это официально задокументировано: qt- project.org/doc/qt-5.1/qmake/ - person lpapp; 08.09.2013
comment
Забавно, что у меня unix:!macx работает, а macx или mac нет. - person Eduardo Reis; 26.04.2019

«mac»: применимо как к Mac OS X, так и к iOS.

'macx': это специфично для Mac OS X.

Итак, если вы хотите позже включить поддержку iOS или просто проявить гибкость (а почему бы и нет?), вам лучше использовать «mac». В противном случае выберите последнее. Так что вам понадобится любой из них.

Здесь вы можете найти официальную документацию:

http://qt-project.org/doc/qt-5.1/qmake/qmake-language.html#platform-scope-values

Вот варианты, которые могут вам понадобиться в зависимости от вашего конкретного варианта использования.

Mac (включая поддержку iOS)

win32 {
    SOURCES += hellolinux.cpp
} mac {
    SOURCES += hellomac.cpp
}

Макс

win32 {
    SOURCES += hellolinux.cpp
} macx {
    SOURCES += hellomacx.cpp
}

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

http://qt.gitorious.org/qt/qtbase/source/730bc064a070e886e10950ccfd59780e8966

person lpapp    schedule 29.08.2013