Переменные
Основное поведение qmake определяется объявлениями переменных, определяющих процесс сборки каждого проекта. Некоторые из них объявляют ресурсы, такие как заголовочные файлы и исходные файлы, общие для каждой платформы. Другие используются для настройки поведения компиляторов и линковщиков на конкретных платформах.
Платформенно-специфические переменные следуют схеме именования переменных, которые они расширяют или изменяют, но включают в своё имя имя соответствующей платформы. Например, makespec может использовать QMAKE_LIBS для указания списка библиотек, от которых каждый проект зависит, и QMAKE_LIBS_X11 используется для расширения этого списка.
CONFIG
Устанавливает конфигурацию проекта и параметры компилятора. Значения распознаются qmake и имеют специальное значение.
Следующие CONFIG значения управляют флагами компиляции:
| Опция | Описание |
|---|---|
| release | Проект подлежит сборке в режиме release. Если также указано debug, последнее значение имеет приоритет. |
| debug | Проект подлежит сборке в режиме debug. |
| debug_and_release | Проект подготовлен для сборки в обоих режимах debug и release. |
| debug_and_release_target | Этот параметр установлен по умолчанию. Если также установлен debug_and_release, сборки debug и release будут помещены в отдельные каталоги debug и release. |
| build_all | Если указано debug_and_release, проект по умолчанию собирается в режимах debug и release. |
| autogen_precompile_source | Автоматически генерирует файл .cpp, включающий в себя предварительно скомпилированный заголовочный файл, указанный в файле .pro. |
| ordered | При использовании шаблона subdirs, этот параметр указывает, что перечисленные каталоги должны обрабатываться в порядке, в котором они указаны. |
| precompile_header | Включает поддержку использования предварительно скомпилированных заголовочных файлов в проектах. |
| precompile_header_c (MSVC только) | Включает поддержку использования предварительно скомпилированных заголовочных файлов для файлов C. |
| warn_on | Компилятор должен выводить как можно больше предупреждений. Если также указано warn_off, последнее значение имеет приоритет. |
| warn_off | Компилятор должен выводить как можно меньше предупреждений. |
| exceptions | Поддержка исключений включена. Установлено по умолчанию. |
| exceptions_off | Поддержка исключений отключена. |
| rtti | Поддержка RTTI включена. По умолчанию используется значение по умолчанию компилятора. |
| rtti_off | Поддержка RTTI отключена. По умолчанию используется значение по умолчанию компилятора. |
| stl | Поддержка STL включена. По умолчанию используется значение по умолчанию компилятора. |
| stl_off | Поддержка STL отключена. По умолчанию используется значение по умолчанию компилятора. |
| thread | Поддержка потоков включена. Включена, когда CONFIG включает qt, что является значением по умолчанию. |
| c99 | Поддержка C99 включена. Этот параметр не имеет эффекта, если компилятор не поддерживает C99 или не может выбрать стандарт C. По умолчанию используется значение по умолчанию компилятора. |
| c11 | Поддержка C11 включена. Этот параметр не имеет эффекта, если компилятор не поддерживает C11 или не может выбрать стандарт C. По умолчанию используется значение по умолчанию компилятора. |
| strict_c | Отключает поддержку расширений компилятора C. По умолчанию они включены. |
| c++11 | Поддержка C++11 включена. Этот параметр не имеет эффекта, если компилятор не поддерживает C++11 или не может выбрать стандарт C++. По умолчанию поддержка включена. |
| c++14 | Поддержка C++14 включена. Этот параметр не имеет эффекта, если компилятор не поддерживает C++14 или не может выбрать стандарт C++. По умолчанию используется значение по умолчанию компилятора. |
| c++1z | Поддержка C++17 включена. Этот параметр не имеет эффекта, если компилятор не поддерживает C++17 или не может выбрать стандарт C++. По умолчанию поддержка отключена. |
| c++17 | То же, что и c++1z. |
| c++2a | Поддержка C++2a включена. Этот параметр не имеет эффекта, если компилятор не поддерживает C++2a или не может выбрать стандарт C++. По умолчанию поддержка отключена. |
| c++latest | Поддержка последнего стандарта языка C++, который поддерживается компилятором, включена. По умолчанию этот параметр отключен. |
| strict_c++ | Отключает поддержку расширений компилятора C++. По умолчанию они включены. |
| depend_includepath | Включение добавления значения INCLUDEPATH к DEPENDPATH. Установлено по умолчанию. |
| lrelease | Запуск lrelease для всех файлов, перечисленных в TRANSLATIONS и EXTRA_TRANSLATIONS. Если embed_translations не установлен, установленные сгенерированные файлы .qm в QM_FILES_INSTALL_PATH. Используйте QMAKE_LRELEASE_FLAGS для добавления опций к вызову lrelease. По умолчанию не установлен. |
| embed_translations | Встраивание сгенерированных переводов из lrelease в исполняемый файл, под QM_FILES_RESOURCE_PREFIX. Требует, чтобы также был установлен lrelease. По умолчанию не установлен. |
Когда вы используете опцию debug_and_release (которая является значением по умолчанию в Windows), проект будет обработан три раза: один раз для создания «мета»-файла Makefile, и дважды ещё для создания Makefile.Debug и Makefile.Release.
Во время последующих проходов build_pass и соответствующая опция debug или release добавляются к CONFIG. Это позволяет выполнять задачи, специфичные для сборки. Например:
build_pass:CONFIG(debug, debug|release) {
unix: TARGET = $$join(TARGET,,,_debug)
else: TARGET = $$join(TARGET,,,d)
} В качестве альтернативы ручному написанию условных выражений для типов сборки, некоторые переменные предлагают варианты, специфичные для сборки, например QMAKE_LFLAGS_RELEASE в дополнение к общему QMAKE_LFLAGS. Эти переменные следует использовать, когда они доступны.
Мета-Makefile позволяет вызывать подсборки через цели debug и release, а также комбинированную сборку через цель all. Когда используется параметр build_all CONFIG, комбинированная сборка является значением по умолчанию. В противном случае, последнее указанное значение CONFIG из набора (debug, release) определяет значение по умолчанию. В этом случае вы можете явно вызвать цель all для одновременной сборки обеих конфигураций:
make all
Примечание: Подробности немного отличаются при создании проектов Visual Studio и Xcode.
При линковании библиотеки qmake полагается на базовую платформу, чтобы узнать, с какими другими библиотеками связывается эта библиотека. Однако, если связывание выполняется статически, qmake не получит эту информацию, если не использовать следующие CONFIG опции:
| Опция | Описание |
|---|---|
| create_prl | Этот параметр позволяет qmake отслеживать эти зависимости. При включении этого параметра qmake создаст файл с расширением .prl, который сохранит мета-информацию о библиотеке (см. Зависимости библиотек для получения дополнительной информации). |
| link_prl | При включении этого параметра qmake обработает все библиотеки, к которым обращается приложение, и найдет их мета-информацию (см. Зависимости библиотек для получения дополнительной информации). |
Примечание: Параметр create_prl требуется при сборке статической библиотеки, а link_prl требуется при использовании статической библиотеки.
Следующие параметры определяют тип приложения или библиотеки:
| Параметр | Описание |
|---|---|
| qt | Целевой объект — приложение или библиотека Qt, требующие библиотеку Qt и заголовочные файлы. Правильные пути включения и библиотеки Qt автоматически добавят в проект. Это задано по умолчанию и может быть усовершенствовано с помощью переменной \l{#qt}{QT}. |
| x11 | Целевой объект — приложение или библиотека X11. Правильные пути включения и библиотеки автоматически добавят в проект. |
| testcase | Целевой объект — автоматический тест. Целевой объект проверки будет добавлен в сгенерированный Makefile для запуска теста. Применимо только при генерации Makefile. |
| insignificant_test | Код завершения автоматического теста будет проигнорирован. Применимо только в случае, если также задан testcase. |
| windows | Целевой объект — приложение Win32 для окон (только приложение). Правильные пути включения, флаги компилятора и библиотеки будут автоматически добавлены в проект. |
| console | Целевой объект — приложение Win32 для консоли (только приложение). Правильные пути включения, флаги компилятора и библиотеки будут автоматически добавлены в проект. Рассмотрите использование параметра cmdline для кроссплатформенных приложений. |
| cmdline | Целевой объект — кроссплатформенное командное приложение. В Windows это подразумевает CONFIG += console. В macOS это подразумевает CONFIG -= app_bundle. |
| shared | Целевой объект — общий объект/DLL. Правильные пути включения, флаги компилятора и библиотеки будут автоматически добавлены в проект. Обратите внимание, что dll также может быть использован на всех платформах; будет создан файл общей библиотеки с соответствующим суффиксом для целевой платформы (.dll или .so). |
| dll | |
| static | Целевой объект — статическая библиотека (только lib). Правильные флаги компилятора будут автоматически добавлены в проект. |
| staticlib | |
| plugin | Целевой объект — плагин (только lib). Это также включает dll. |
| designer | Целевой объект — плагин для Qt Designer. |
| no_lflags_merge | Обеспечивает, что список библиотек, хранящихся в переменной LIBS, не сводится к списку уникальных значений перед использованием. |
Эти параметры определяют специфические функции только в Windows:
| Параметр | Описание |
|---|---|
| flat | При использовании шаблона vcapp все исходные файлы будут помещены в группу исходных файлов, а заголовочные файлы — в группу заголовочных файлов, независимо от того, в каком каталоге они находятся. Выключение этого параметра сгруппирует файлы в группе исходных/заголовочных файлов в зависимости от каталога, в котором они находятся. По умолчанию включено. |
| embed_manifest_dll | Встраивает файл манифеста в DLL, созданную в рамках проекта библиотеки. |
| embed_manifest_exe | Встраивает файл манифеста в EXE, созданный в рамках проекта приложения. |
Дополнительную информацию об параметрах встраивания файлов манифеста см. в разделе Заметки по платформам.
Следующие параметры действуют только в macOS:
| Параметр | Описание |
|---|---|
| app_bundle | Помещает исполняемый файл в пакет (это значение по умолчанию). |
| lib_bundle | Помещает библиотеку в пакет библиотеки. |
| plugin_bundle | Помещает плагин в пакет плагинов. Это значение не поддерживается генератором проекта Xcode. |
Процесс сборки пакетов также зависит от содержимого переменной QMAKE_BUNDLE_DATA.
Следующие параметры действуют только на платформах Linux/Unix:
| Параметр | Описание |
|---|---|
| largefile | Включает поддержку больших файлов. |
| separate_debug_info | Помещает отладочную информацию для библиотек в отдельные файлы. |
При разрешении областей также проверяется переменная CONFIG. Вы можете назначить этой переменной любое значение.
Например:
CONFIG += console newstuff
...
newstuff {
SOURCES += new.cpp
HEADERS += new.h
} DEFINES
qmake добавляет значения этой переменной в качестве макросов препроцессора C компилятора (-D опция).
Например:
DEFINES += USE_MY_STUFF
DEF_FILE
Примечание: Эта переменная используется только в Windows при использовании шаблона app.
Указывает файл .def для включения в проект.
DEPENDPATH
Указывает список каталогов, которые qmake должен просканировать для определения зависимостей. Эта переменная используется, когда qmake обрабатывает заголовочные файлы, которые вы #include в вашем исходном коде.
DESTDIR
Указывает место размещения файла целевого файла.
Например:
DESTDIR = ../../lib
Примечание: Список поддерживаемых символов может зависеть от используемого инструмента сборки. В частности, скобки не работают с make.
DISTFILES
Указывает список файлов для включения в целевой объект dist. Эта функция поддерживается только спецификациями UnixMake.
Например:
DISTFILES += ../program.txt
DLLDESTDIR
Примечание: Эта переменная применяется только к целевым объектам Windows.
Указывает место для копирования dll целевого.
EXTRA_TRANSLATIONS
Указывает список файлов переводов (.ts), содержащих переводы текстов пользовательского интерфейса на языки, отличные от родного.
В отличие от TRANSLATIONS, файлы переводов в EXTRA_TRANSLATIONS будут обрабатываться только lrelease, а не lupdate.
Вы можете использовать CONFIG += lrelease, чтобы автоматически скомпилировать файлы во время сборки, и CONFIG += lrelease embed_translations, чтобы сделать их доступными в Системе ресурсов Qt.
См. Руководство Qt Linguist для получения дополнительной информации об интернационализации (i18n) и локализации (l10n) с Qt.
FORMS
Указывает файлы пользовательского интерфейса (см. Руководство Qt Designer), которые будут обработаны uic перед компиляцией. Все зависимости, заголовочные файлы и исходные файлы, необходимые для построения этих файлов пользовательского интерфейса, будут автоматически добавлены в проект.
Например:
FORMS = mydialog.ui \
mywidget.ui \
myconfig.ui GUID
Указывает GUID, который задан внутри файла .vcproj. GUID обычно определяется случайным образом. Однако, если вам требуется фиксированный GUID, его можно установить с помощью этой переменной.
Эта переменная относится только к файлам .vcproj; в противном случае она игнорируется.
HEADERS
Определяет заголовочные файлы для проекта.
qmake автоматически определяет, требуется ли moc для классов в заголовочных файлах и добавляет соответствующие зависимости и файлы в проект для генерации и связи файлов moc.
Например:
HEADERS = myclass.h \
login.h \
mainwindow.h См. также SOURCES.
ICON
Эта переменная используется только в Mac OS для установки значка приложения. Для получения дополнительной информации см. документацию по значкам приложения.
IDLSOURCES
Эта переменная используется только в Windows для генерации проекта Visual Studio, чтобы поместить указанные файлы в папку «Сгенерированные файлы».
INCLUDEPATH
Указывает каталоги #include, которые должны быть просмотрены при компиляции проекта.
Например:
INCLUDEPATH = c:/msdev/include d:/stl/include
Чтобы указать путь, содержащий пробелы, заключите путь в кавычки, используя метод, описанный в Пробелы.
win32:INCLUDEPATH += "C:/mylibs/extra headers" unix:INCLUDEPATH += "/home/user/extra headers"
INSTALLS
Указывает список ресурсов, которые будут установлены при выполнении make install или аналогичной процедуры установки. Каждый элемент в списке обычно определяется атрибутами, которые предоставляют информацию о том, где он будет установлен.
Например, следующее target.path определение описывает, куда будет установлен целевой объект сборки, а INSTALLS присваивание добавляет целевой объект сборки в список существующих ресурсов для установки:
target.path += $$[QT_INSTALL_PLUGINS]/imageformats INSTALLS += target
INSTALLS имеет член .CONFIG, который может принимать несколько значений:
| Значение | Описание |
|---|---|
| no_check_exists | Если не задано, qmake проверяет, существуют ли файлы для установки. Если эти файлы не существуют, qmake не создает правило установки. Используйте это значение конфигурации, если вам нужно установить файлы, которые генерируются в процессе сборки, например, HTML-файлы, созданные qdoc. |
| nostrip | Если задано, обычная функция Unix strip отключается, и отладочная информация останется в двоичном файле. |
| executable | В Unix это устанавливает флаг исполняемого файла. |
| no_build | При выполнении make install, и у вас ещё нет сборки проекта, проект сначала собирается, а затем устанавливается. Если вам не нужно это поведение, установите это значение конфигурации, чтобы целевой объект сборки не добавлялся в зависимость к целевому объекту установки. |
| no_default_install | У проекта есть целевой объект верхнего уровня, где при выполнении make install, всё устанавливается. Но если у вас есть целевой объект установки с этим заданным значением конфигурации, он не устанавливается по умолчанию. В этом случае вы должны явно указать make install_<file>. |
Дополнительную информацию см. в разделе Установка файлов.
Эта переменная также используется для указания дополнительных файлов, которые будут развернуты на встроенных устройствах.
LEXIMPLS
Указывает список файлов реализации Lex. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
LEXOBJECTS
Указывает имена промежуточных файлов Lex-объектов. Значение этой переменной обычно обрабатывается qmake и редко требует изменения.
LEXSOURCES
Указывает список файлов исходного кода Lex. Все зависимости, заголовочные файлы и исходные файлы автоматически добавляются в проект для построения этих файлов lex.
Например:
LEXSOURCES = lexer.l
LIBS
Указывает список библиотек, которые необходимо связать с проектом. Если вы используете Unix -l (библиотека) и -L (путь к библиотеке) флаги, qmake обрабатывает библиотеки правильно в Windows (то есть, передает полный путь к библиотеке компоновщику). Библиотека должна существовать, чтобы qmake нашел каталог, где находится -l lib.
Например:
unix:LIBS += -L/usr/local/lib -lmath win32:LIBS += c:/mylibs/math.lib
Чтобы указать путь, содержащий пробелы, укажите путь в кавычках, используя технику, описанную в Пробелы.
win32:LIBS += "C:/mylibs/extra libs/extra.lib" unix:LIBS += "-L/home/user/extra libs" -lextra
По умолчанию, список библиотек, хранящихся в LIBS , сводится к списку уникальных имён перед использованием. Чтобы изменить это поведение, добавьте no_lflags_merge опцию к переменной CONFIG:
CONFIG += no_lflags_merge
LIBS_PRIVATE
Указывает список библиотек, которые нужно связать с проектом в частном порядке. Поведение этой переменной идентично переменной LIBS, за исключением того, что проекты с динамическими библиотеками, созданные для Unix, не экспонируют эти зависимости в своём интерфейсе связи.
Это означает, что если проект C зависит от библиотеки B, которая в свою очередь зависит от библиотеки A в частном порядке, но C также хочет использовать символы из A напрямую, ему необходимо явно ссылаться на A. Другими словами, библиотеки, связанные в частном порядке, не экспонируются транзитивно во время сборки.
LITERAL_HASH
Эта переменная используется всякий раз, когда требуется буквальный символ решётки (#) в объявлении переменной, возможно, в качестве части имени файла или в строке, переданной некоторому внешнему приложению.
Например:
# To include a literal hash character, use the $$LITERAL_HASH variable: urlPieces = http://doc.qt.io/qt-5/qtextdocument.html pageCount message($$join(urlPieces, $$LITERAL_HASH))
Используя LITERAL_HASH таким образом, можно использовать символ # для построения URL для message() функции, чтобы вывести что-то на консоль.
MAKEFILE
Указывает имя сгенерированного файла Makefile. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
MAKEFILE_GENERATOR
Указывает имя генератора Makefile, который нужно использовать для создания Makefile. Значение этой переменной обычно обрабатывается qmake внутри и редко требует изменения.
MSVCPROJ_*
Эти переменные обрабатываются qmake внутри и не должны изменяться или использоваться.
MOC_DIR
Указывает каталог, где должны размещаться все промежуточные файлы moc.
Например:
unix:MOC_DIR = ../myproject/tmp win32:MOC_DIR = c:/myproject/tmp
OBJECTIVE_HEADERS
Определяет заголовочные файлы Objective-C++ для проекта.
qmake автоматически определяет, требуется ли moc для классов в заголовочных файлах и добавляет соответствующие зависимости и файлы в проект для генерации и связывания файлов moc.
Это аналогично переменной HEADERS, но позволит скомпилировать сгенерированные файлы moc с компилятором Objective-C++.
См. также OBJECTIVE_SOURCES.
OBJECTIVE_SOURCES
Указывает имена всех исходных файлов Objective-C/C++ в проекте.
Эта переменная устарела. Файлы Objective-C/C++ (.m и .mm) можно добавить в переменную SOURCES.
См. также OBJECTIVE_HEADERS.
OBJECTS
Эта переменная автоматически заполняется из переменной SOURCES. Расширение каждого исходного файла заменяется на .o (Unix) или .obj (Win32). Вы можете добавить объекты в список.
OBJECTS_DIR
Указывает каталог, где должны размещаться все промежуточные объекты.
Например:
unix:OBJECTS_DIR = ../myproject/tmp win32:OBJECTS_DIR = c:/myproject/tmp
POST_TARGETDEPS
Перечисляет библиотеки, от которых зависит целевой объект. Некоторые бэкэнды, такие как генераторы файлов проектов Visual Studio и Xcode, не поддерживают эту переменную. Как правило, эта переменная поддерживается внутренними инструментами сборки, и она полезна для явного перечисления зависимых статических библиотек.
Этот список помещается после всех встроенных (и $$PRE_TARGETDEPS) зависимостей.
PRE_TARGETDEPS
Перечисляет библиотеки, от которых зависит целевой объект. Некоторые бэкэнды, такие как генераторы файлов проектов Visual Studio и Xcode, не поддерживают эту переменную. Как правило, эта переменная поддерживается внутренними инструментами сборки, и она полезна для явного перечисления зависимых статических библиотек.
Этот список помещается перед всеми встроенными зависимостями.
PRECOMPILED_HEADER
Указывает заголовочный файл для создания предварительно скомпилированного заголовочного файла, чтобы ускорить процесс компиляции проекта. Предварительно скомпилированные заголовочные файлы в настоящее время поддерживаются только на некоторых платформах (Windows — все типы проектов MSVC, Apple — Xcode, Makefile, Unix — gcc 3.3 и выше).
PWD
Указывает полный путь к каталогу, содержащему текущий анализируемый файл. Это может быть полезно для ссылки на файлы в дереве исходных кодов при написании файлов проекта для поддержки теней сборки.
См. также _PRO_FILE_PWD_.
Примечание: Не пытайтесь перезаписать значение этой переменной.
OUT_PWD
Указывает полный путь к каталогу, куда qmake помещает сгенерированный Makefile.
Примечание: Не пытайтесь перезаписать значение этой переменной.
QM_FILES_RESOURCE_PREFIX
Указывает каталог в системе ресурсов, где файлы .qm будут доступны с помощью CONFIG += embed_translations.
По умолчанию :/i18n/.
QM_FILES_INSTALL_PATH
Указывает целевой каталог, в который будут устанавливаться файлы .qm , сгенерированные с помощью CONFIG += lrelease. Не имеет эффекта, если установлен CONFIG += embed_translations.
QMAKE
Указывает имя самой программы qmake и помещается в сгенерированные Makefile. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKESPEC
Системная переменная, содержащая полный путь к конфигурации qmake, используемой при генерации Makefile. Значение переменной вычисляется автоматически.
Примечание: Не пытайтесь перезаписать значение этой переменной.
QMAKE_AR_CMD
Примечание: Эта переменная используется только на платформах Unix.
Указывает команду для выполнения при создании динамической библиотеки. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_BUNDLE_DATA
Примечание: Эта переменная используется только на macOS, iOS, tvOS и watchOS.
Указывает данные, которые будут установлены с пакетом библиотеки, и часто используется для указания набора заголовочных файлов.
Например, следующие строки добавляют path/to/header_one.h и path/to/header_two.h в группу, содержащую информацию о заголовочных файлах, поставляемых вместе с фреймворком:
FRAMEWORK_HEADERS.version = Versions FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h FRAMEWORK_HEADERS.path = Headers QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
Последняя строка добавляет информацию о заголовочных файлах в набор ресурсов, которые будут установлены вместе с пакетом библиотеки.
Пакеты библиотек создаются, когда опция lib_bundle добавляется к переменной CONFIG.
См. Примечания к платформе для получения дополнительной информации о создании пакетов библиотек.
QMAKE_BUNDLE_EXTENSION
Примечание: Эта переменная используется только на macOS, iOS, tvOS и watchOS.
Указывает расширение, которое будет использоваться для пакетов библиотек. Это позволяет создавать фреймворки с пользовательскими расширениями вместо стандартного .framework расширения имени каталога.
Например, следующее определение приведет к созданию фреймворка с расширением .myframework:
QMAKE_BUNDLE_EXTENSION = .myframework
QMAKE_CC
Указывает компилятор C, который будет использоваться при построении проектов, содержащих исходный код C. Нужно указать только имя исполняемого файла компилятора, если он находится в пути, указанном в переменной PATH при обработке Makefile.
QMAKE_CFLAGS
Указывает флаги компилятора C для построения проекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения. Флаги, специфичные для режимов отладки и релизного построения, можно настроить, изменив переменные QMAKE_CFLAGS_DEBUG и QMAKE_CFLAGS_RELEASE соответственно.
QMAKE_CFLAGS_DEBUG
Указывает флаги компилятора C для отладочных сборок. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_CFLAGS_RELEASE
Указывает флаги компилятора C для релизных сборок. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
Указывает флаги компилятора C для релизных сборок, где force_debug_info установлено в CONFIG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_CFLAGS_SHLIB
Примечание: Эта переменная используется только на платформах Unix.
Указывает флаги компилятора для создания динамической библиотеки. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_CFLAGS_THREAD
Указывает флаги компилятора для создания многопоточного приложения. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_CFLAGS_WARN_OFF
Эта переменная используется только при установке опции warn_off CONFIG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_CFLAGS_WARN_ON
Эта переменная используется только при установке опции warn_on CONFIG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_CLEAN
Указывает список сгенерированных файлов (например, moc и uic) и файлов объектов, которые необходимо удалить с помощью make clean.
QMAKE_CXX
Указывает C++ компилятор, который будет использоваться при построении проектов, содержащих C++ исходный код. Достаточно указать имя исполняемого файла компилятора, если он находится в пути, указанном в переменной PATH при обработке Makefile.
QMAKE_CXXFLAGS
Указывает флаги C++ компилятора для построения проекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации. Флаги, специфичные для режимов отладки и релизного построения, можно настроить, изменив переменные QMAKE_CXXFLAGS_DEBUG и QMAKE_CXXFLAGS_RELEASE соответственно.
QMAKE_CXXFLAGS_DEBUG
Указывает флаги C++ компилятора для построения в режиме отладки. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_CXXFLAGS_RELEASE
Указывает флаги C++ компилятора для релизного построения. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO
Указывает флаги C++ компилятора для релизного построения, где force_debug_info установлено в CONFIG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_CXXFLAGS_SHLIB
Указывает флаги C++ компилятора для создания динамической библиотеки. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_CXXFLAGS_THREAD
Указывает флаги C++ компилятора для создания многопоточного приложения. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_CXXFLAGS_WARN_OFF
Указывает флаги C++ компилятора для подавления предупреждений компилятора. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_CXXFLAGS_WARN_ON
Указывает флаги C++ компилятора для генерации предупреждений компилятора. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_DEVELOPMENT_TEAM
Примечание: Эта переменная используется только на macOS, iOS, tvOS и watchOS.
Идентификатор команды разработчиков, используемый для подписи сертификатов и профилей provisioning.
QMAKE_DISTCLEAN
Указывает список файлов, которые будут удалены make distclean.
QMAKE_EXTENSION_SHLIB
Содержит расширение для динамических библиотек. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
Примечание: Платформенно-зависимые переменные, изменяющие расширение, перезаписывают содержимое этой переменной.
QMAKE_EXTENSION_STATICLIB
Содержит расширение для статических библиотек. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_EXT_MOC
Содержит расширение, используемое для включённых moc файлов.
См. также Расширения файлов.
QMAKE_EXT_UI
Содержит расширение, используемое для файлов пользовательского интерфейса Qt Designer.
См. также Расширения файлов.
QMAKE_EXT_PRL
Содержит расширение, используемое для созданных файлов PRL.
См. также Расширения файлов, Зависимости библиотек.
QMAKE_EXT_LEX
Содержит расширение, используемое для файлов, переданных в Lex.
См. также Расширения файлов, LEXSOURCES.
QMAKE_EXT_YACC
Содержит расширение, используемое для файлов, переданных в Yacc.
См. также Расширения файлов, YACCSOURCES.
QMAKE_EXT_OBJ
Содержит расширение, используемое для сгенерированных объектных файлов.
См. также Расширения файлов.
QMAKE_EXT_CPP
Содержит расширения для файлов, которые должны интерпретироваться как исходный код C++.
См. также Расширения файлов.
QMAKE_EXT_H
Содержит расширения для файлов, которые должны интерпретироваться как заголовочные файлы C.
См. также Расширения файлов.
QMAKE_EXTRA_COMPILERS
Указывает список дополнительных компиляторов или препроцессоров.
См. также Добавление компиляторов.
QMAKE_EXTRA_TARGETS
Указывает список дополнительных целей qmake.
См. также Добавление пользовательских целей.
QMAKE_FAILED_REQUIREMENTS
Содержит список не выполненных требований. Значение этой переменной устанавливается qmake и не может быть изменено.
См. также requires() и REQUIRES.
QMAKE_FRAMEWORK_BUNDLE_NAME
Примечание: Эта переменная используется только на macOS, iOS, tvOS и watchOS.
В проекте фреймворка эта переменная содержит имя, используемое для создаваемого фреймворка.
По умолчанию, эта переменная содержит то же значение, что и переменная TARGET.
См. Создание фреймворков для получения дополнительной информации о создании фреймворков и пакетов библиотек.
QMAKE_FRAMEWORK_VERSION
Примечание: Эта переменная используется только на macOS, iOS, tvOS и watchOS.
Для проектов, где целевой сборкой является фреймворк macOS, iOS, tvOS или watchOS, эта переменная используется для указания версии, которая будет применена к создаваемому фреймворку.
По умолчанию, эта переменная содержит то же значение, что и переменная VERSION.
См. Создание фреймворков для получения дополнительной информации о создании фреймворков.
QMAKE_HOST
Предоставляет информацию об хостовой машине, на которой выполняется qmake. Например, вы можете получить архитектуру хост-машины из QMAKE_HOST.arch.
| Ключи | Значения |
|---|---|
| .arch | Архитектура хост-машины |
| .os | ОС хоста |
| .cpu_count | Количество доступных процессоров |
| .name | Имя хост-компьютера |
| .version | Номер версии ОС хоста |
| .version_string | Строка версии ОС хоста |
win32-g++:contains(QMAKE_HOST.arch, x86_64):{
message("Host is 64bit")
...
} QMAKE_INCDIR
Указывает список путей к системным заголовочным файлам, которые добавляются к INCLUDEPATH. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_INCDIR_EGL
Указывает расположение заголовочных файлов EGL, которые будут добавлены к INCLUDEPATH при построении целевого объекта с поддержкой OpenGL/ES или OpenVG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_INCDIR_OPENGL
Указывает расположение заголовочных файлов OpenGL, которые будут добавлены к INCLUDEPATH при построении целевого объекта с поддержкой OpenGL. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
Если реализация OpenGL использует EGL (большинство систем OpenGL/ES), то также может потребоваться установить QMAKE_INCDIR_EGL.
QMAKE_INCDIR_OPENGL_ES2
Эта переменная указывает расположение заголовочных файлов OpenGL, которые будут добавлены к INCLUDEPATH при построении целевого объекта с поддержкой OpenGL ES 2.
Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
Если реализация OpenGL использует EGL (большинство систем OpenGL/ES), то также может потребоваться установить QMAKE_INCDIR_EGL.
QMAKE_INCDIR_OPENVG
Указывает расположение заголовочных файлов OpenVG, которые будут добавлены к INCLUDEPATH при построении целевого объекта с поддержкой OpenVG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
Если реализация OpenVG использует EGL, то также может потребоваться установить QMAKE_INCDIR_EGL.
QMAKE_INCDIR_X11
Примечание: Эта переменная используется только на платформах Unix.
Указывает расположение путей к заголовочным файлам X11, которые будут добавлены к INCLUDEPATH при построении целевого объекта X11. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует модификации.
QMAKE_INFO_PLIST
Примечание: Эта переменная используется только на платформах macOS, iOS, tvOS и watchOS.
Указывает имя файла property list, .plist, который вы хотите включить в пакет приложения macOS, iOS, tvOS и watchOS.
В файле .plist вы можете определить некоторые переменные, которые qmake заменит соответствующими значениями:
| Заполнитель(ы) | Эффект |
|---|---|
${PRODUCT_BUNDLE_IDENTIFIER}, @BUNDLEIDENTIFIER@
|
Расширяется до строки идентификатора пакета целевого пакета, например: com.example.myapp. Определяется путём конкатенации значений QMAKE_TARGET_BUNDLE_PREFIX и QMAKE_BUNDLE, разделённых точкой (.). |
${EXECUTABLE_NAME}, @EXECUTABLE@, @LIBRARY@
|
Эквивалентно значению QMAKE_APPLICATION_BUNDLE_NAME, QMAKE_PLUGIN_BUNDLE_NAME или QMAKE_FRAMEWORK_BUNDLE_NAME (в зависимости от типа создаваемой цели) или TARGET, если ни одно из предыдущих значений не задано. |
${ASSETCATALOG_COMPILER_APPICON_NAME}, @ICON@
|
Расширяется до значения ICON. |
${QMAKE_PKGINFO_TYPEINFO}, @TYPEINFO@
|
Расширяется до значения QMAKE_PKGINFO_TYPEINFO. |
${QMAKE_FULL_VERSION}, @FULL_VERSION@
|
Расширяется до значения VERSION, выраженного тремя компонентами версии. |
${QMAKE_SHORT_VERSION}, @SHORT_VERSION@
|
Расширяется до значения VERSION, выраженного двумя компонентами версии. |
${MACOSX_DEPLOYMENT_TARGET} |
Расширяется до значения QMAKE_MACOSX_DEPLOYMENT_TARGET. |
${IPHONEOS_DEPLOYMENT_TARGET} |
Расширяется до значения QMAKE_IPHONEOS_DEPLOYMENT_TARGET. |
${TVOS_DEPLOYMENT_TARGET} |
Расширяется до значения QMAKE_TVOS_DEPLOYMENT_TARGET. |
${WATCHOS_DEPLOYMENT_TARGET} |
Расширяется до значения QMAKE_WATCHOS_DEPLOYMENT_TARGET. |
Примечание: При использовании генератора Xcode вышеупомянутые заполнители типа ${var} заменяются непосредственно системой сборки Xcode и не обрабатываются qmake. Заполнители типа @var@ работают только с генераторами Makefile qmake, а не с генератором Xcode.
Если вы строите для iOS, и файл .plist содержит ключ NSPhotoLibraryUsageDescription, qmake включит дополнительный плагин в сборку, который добавит поддержку доступа к фотографиям (например, в QFile/QFileDialog). Для получения дополнительной информации об этом ключе см. документацию Info.plist от Apple.
Примечание: В большинстве случаев значения по умолчанию Info.plist достаточно.
QMAKE_IOS_DEPLOYMENT_TARGET
Примечание: Эта переменная используется только на платформе iOS.
Устанавливает минимальную поддерживаемую версию iOS для приложения.
Для получения дополнительной информации см. Выражение поддерживаемых версий iOS.
QMAKE_LFLAGS
Указывает общий набор флагов, которые передаются компоновщику. Если необходимо изменить флаги, используемые для определённой платформы или типа проекта, используйте вместо этой переменной специализированные переменные для этой цели.
QMAKE_LFLAGS_CONSOLE
Примечание: Эта переменная используется только на Windows.
Указывает флаги компоновщика для создания консольных программ. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_DEBUG
Указывает флаги компоновщика для отладочных сборок. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_PLUGIN
Указывает флаги компоновщика для создания плагинов. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_RPATH
Примечание: Эта переменная используется только на платформах Unix.
Указывает флаги компоновщика, необходимые для использования значений из QMAKE_RPATHDIR.
Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_REL_RPATH
Указывает флаги компоновщика, необходимые для включения относительных путей в QMAKE_RPATHDIR.
Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_REL_RPATH_BASE
Указывает строку, которую динамический компоновщик понимает как расположение исполняемого файла или библиотеки, на которую ссылаются.
Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_RPATHLINK
Указывает флаги компоновщика, необходимые для использования значений из QMAKE_RPATHLINKDIR.
Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_RELEASE
Указывает флаги компоновщика для релизных сборок. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO
Указывает флаги компоновщика для релизных сборок, где force_debug_info установлено в CONFIG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_APP
Указывает флаги компоновщика для создания приложений. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_SHLIB
Указывает флаги компоновщика, используемые для создания динамических библиотек. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_SONAME
Указывает флаги компоновщика для задания имени общих объектов, таких как .so или .dll. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_THREAD
Указывает флаги компоновщика для создания многопоточных проектов. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LFLAGS_WINDOWS
Примечание: Эта переменная используется только на Windows.
Указывает флаги компоновщика для создания проектов Windows GUI (то есть, не консольных приложений). Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LIBDIR
Указывает список путей поиска библиотек для всех проектов. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
Чтобы указать дополнительные пути поиска в файлах проекта, используйте LIBS вот так:
LIBS += -L/path/to/libraries
QMAKE_LIBDIR_POST
Указывает список путей поиска системных библиотек для всех проектов. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LIBDIR_FLAGS
Примечание: Эта переменная используется только на платформах Unix.
Указывает расположение всех каталогов библиотек с префиксом -L. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LIBDIR_EGL
Указывает расположение каталога EGL библиотеки, когда EGL используется с OpenGL/ES или OpenVG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LIBDIR_OPENGL
Указывает расположение каталога OpenGL библиотеки. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
Если реализация OpenGL использует EGL (большинство систем OpenGL/ES), то QMAKE_LIBDIR_EGL также может потребоваться.
QMAKE_LIBDIR_OPENVG
Указывает расположение каталога библиотеки OpenVG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
Если реализация OpenVG использует EGL, то QMAKE_LIBDIR_EGL также может потребоваться.
QMAKE_LIBDIR_X11
Примечание: Эта переменная используется только на платформах Unix.
Указывает расположение каталога X11 библиотеки. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LIBS
Указывает дополнительные библиотеки, необходимые для компоновки каждого проекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
Чтобы указать библиотеки в файле проекта, используйте LIBS вместо этого.
QMAKE_LIBS_PRIVATE
Указывает дополнительные приватные библиотеки, необходимые для компоновки каждого проекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
Чтобы указать приватные библиотеки в файле проекта библиотеки, используйте LIBS_PRIVATE вместо этого.
QMAKE_LIBS_EGL
Указывает все библиотеки EGL при создании Qt с OpenGL/ES или OpenVG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения. Обычно значение равно -lEGL.
QMAKE_LIBS_OPENGL
Указывает все библиотеки OpenGL. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
Если реализация OpenGL использует EGL (большинство систем OpenGL/ES), то QMAKE_LIBS_EGL также может потребоваться.
QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES2
Эти переменные указывают все библиотеки OpenGL для OpenGL ES 1 и OpenGL ES 2.
Значение этих переменных обычно обрабатывается qmake или qmake.conf и редко требует изменения.
Если реализация OpenGL использует EGL (большинство систем OpenGL/ES), то QMAKE_LIBS_EGL также может потребоваться.
QMAKE_LIBS_OPENVG
Указывает все библиотеки OpenVG. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения. Обычно значение равно -lOpenVG.
Некоторые движки OpenVG реализованы поверх OpenGL. Это будет определено во время конфигурации, и QMAKE_LIBS_OPENGL будет неявно добавлен в QMAKE_LIBS_OPENVG всякий раз, когда подключаются библиотеки OpenVG.
Если реализация OpenVG использует EGL, то также может потребоваться установить QMAKE_LIBS_EGL.
QMAKE_LIBS_THREAD
Примечание: Эта переменная используется только на платформах Unix.
Указывает все библиотеки, которые необходимо связать при построении многопоточного целевого объекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LIBS_X11
Примечание: Эта переменная используется только на платформах Unix.
Указывает все библиотеки X11. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LIB_FLAG
Эта переменная не пуста, если указан шаблон lib. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LINK
Указывает компоновщик, который будет использоваться при построении проектов, основанных на приложениях. Достаточно указать только имя файла исполняемого файла компоновщика, если он находится в пути, указанном в переменной PATH, когда обрабатывается Makefile. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LINK_SHLIB_CMD
Указывает команду для выполнения при создании динамической библиотеки. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LN_SHLIB
Указывает команду для выполнения при создании ссылки на динамическую библиотеку. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_LRELEASE_FLAGS
Список дополнительных опций, передаваемых lrelease, при включении через CONFIG += lrelease.
QMAKE_OBJECTIVE_CFLAGS
Указывает флаги компилятора Objective C/C++ для построения проекта. Эти флаги используются дополнительно к QMAKE_CFLAGS и QMAKE_CXXFLAGS.
QMAKE_POST_LINK
Указывает команду для выполнения после компоновки TARGET. Эта переменная обычно пустая, и поэтому ничего не выполняется.
Примечание: Эта переменная не имеет эффекта в проектах Xcode.
QMAKE_PRE_LINK
Указывает команду для выполнения перед компоновкой TARGET. Эта переменная обычно пустая, и поэтому ничего не выполняется.
Примечание: Эта переменная не имеет эффекта в проектах Xcode.
QMAKE_PROJECT_NAME
Примечание: Эта переменная используется только для файлов проектов Visual Studio.
Определяет имя проекта при генерации файлов проекта для IDE. Значение по умолчанию — имя целевого объекта. Значение этой переменной обычно обрабатывается qmake и редко требует изменения.
QMAKE_PROVISIONING_PROFILE
Примечание: Эта переменная используется только на macOS, iOS, tvOS и watchOS.
UUID действительного профиля подготовки. Используйте вместе с QMAKE_DEVELOPMENT_TEAM для указания профиля подготовки.
Примечание: Указание профиля подготовки отключает автоматическое управление подписанием.
QMAKE_MAC_SDK
Эта переменная используется на macOS при построении универсальных библиотек.
QMAKE_MACOSX_DEPLOYMENT_TARGET
Примечание: Эта переменная используется только на платформе macOS.
Указывает минимальную версию macOS, которую поддерживает приложение.
Дополнительную информацию см. в macOS Version Dependencies.
QMAKE_MAKEFILE
Указывает имя создаваемого Makefile. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_QMAKE
Содержит абсолютный путь к исполняемому файлу qmake.
Примечание: Не пытайтесь перезаписывать значение этой переменной.
QMAKE_RESOURCE_FLAGS
Эта переменная используется для настройки списка опций, передаваемых в Компилятор ресурсов в каждом из правил построения, где она используется. Например, следующая строка гарантирует, что опции -threshold и -compress используются с конкретными значениями каждый раз, когда вызывается rcc:
QMAKE_RESOURCE_FLAGS += -threshold 0 -compress 9
QMAKE_RPATHDIR
Примечание: Эта переменная используется только на платформах Unix.
Указывает список путей к библиотекам, которые добавляются в исполняемый файл во время компоновки, чтобы при выполнении поиск осуществлялся предпочтительно по этим путям.
При указании относительных путей qmake преобразует их в формат, понятный динамическому компоновщику, как относительный к расположению исполняемого файла или библиотеки, ссылающейся на него. Эта функция поддерживается только некоторыми платформами (в настоящее время Linux и Darwin-подобные) и обнаруживается путем проверки, установлена ли QMAKE_REL_RPATH_BASE.
QMAKE_RPATHLINKDIR
Указывает список путей к библиотекам, по которым статический компоновщик ищет неявные зависимости динамических библиотек. Дополнительную информацию см. в справке для ld(1).
QMAKE_RUN_CC
Указывает отдельное правило для построения объекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_RUN_CC_IMP
Указывает отдельное правило для построения объекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_RUN_CXX
Указывает отдельное правило для построения объекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_RUN_CXX_IMP
Указывает отдельное правило для построения объекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_SONAME_PREFIX
Если определено, значение этой переменной используется в качестве пути, добавляемого перед идентификатором SONAME созданной динамической библиотеки. SONAME — это идентификатор, который динамический компоновщик впоследствии будет использовать для ссылки на библиотеку. В общем случае эта ссылка может быть именем библиотеки или полным путем к ней. На macOS, iOS, tvOS и watchOS путь можно указать относительно, используя следующие плейсхолдеры:
| Плейсхолдер | Эффект |
|---|---|
| @rpath | Расширяется до путей, определённых командами LC_RPATH mach-o в исполняемом файле текущего процесса или ссылающихся библиотек. |
| @executable_path | Расширяется до расположения исполняемого файла текущего процесса. |
| @loader_path | Расширяется до расположения ссылающегося исполняемого файла или библиотеки. |
В большинстве случаев использование @rpath является достаточным и рекомендуемым:
# <project root>/project.pro QMAKE_SONAME_PREFIX = @rpath
Однако префикс также можно указать, используя разные плейсхолдеры или абсолютный путь, например, один из следующих:
# <project root>/project.pro QMAKE_SONAME_PREFIX = @executable_path/../Frameworks QMAKE_SONAME_PREFIX = @loader_path/Frameworks QMAKE_SONAME_PREFIX = /Library/Frameworks
Дополнительную информацию см. в документации dyld по именам установки динамических библиотек.
QMAKE_TARGET
Указывает имя целевого объекта проекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
QMAKE_TARGET_COMPANY
Только Windows. Указывает компанию для целевого объекта проекта; используется для указания имени компании в свойствах приложения. Используется только в том случае, если установлена переменная VERSION или RC_ICONS, а переменные RC_FILE и RES_FILE не установлены.
QMAKE_TARGET_DESCRIPTION
Только Windows. Указывает описание целевого объекта проекта; используется для указания описания в свойствах приложения. Используется только в том случае, если установлена переменная VERSION или RC_ICONS, а переменные RC_FILE и RES_FILE не установлены.
QMAKE_TARGET_COPYRIGHT
Только Windows. Указывает информацию об авторском праве для целевого объекта проекта; используется для указания информации об авторском праве в свойствах приложения. Используется только в том случае, если установлена переменная VERSION или RC_ICONS, а переменные RC_FILE и RES_FILE не установлены.
QMAKE_TARGET_PRODUCT
Только Windows. Указывает продукт для целевого объекта проекта; используется для указания продукта в свойствах приложения. Используется только в том случае, если установлена переменная VERSION или RC_ICONS, а переменные RC_FILE и RES_FILE не установлены.
QMAKE_TVOS_DEPLOYMENT_TARGET
Примечание: Эта переменная используется только на платформе tvOS.
Указывает минимальную поддерживаемую версию tvOS.
Дополнительную информацию см. в Expressing Supported iOS Versions.
QMAKE_UIC_FLAGS
Эта переменная используется для настройки списка опций, передаваемых Компилятору пользовательского интерфейса в каждом из правил построения, где она используется.
QMAKE_WATCHOS_DEPLOYMENT_TARGET
Примечание: Эта переменная используется только на платформе watchOS.
Указывает минимальную версию watchOS, поддерживаемую приложением.
Для получения дополнительной информации см. Выражение поддерживаемых версий iOS.
QT
Указывает модули Qt, используемые вашим проектом. Значение для каждого модуля см. в документации модуля.
На уровне реализации на C++, использование модуля Qt делает его заголовки доступными для включения и приводит к его подключению к бинарному файлу.
По умолчанию QT содержит core и gui, гарантируя, что стандартные графические приложения могут быть построены без дополнительной настройки.
Если вы хотите создать проект без модуля Qt GUI, вам нужно исключить значение gui с помощью оператора "-=". Следующая строка приведет к созданию минимального проекта Qt:
QT -= gui # Only the core module is used.
Если ваш проект является плагином Qt Designer, используйте значение uiplugin для указания, что проект должен быть создан как библиотека, но со специальной поддержкой плагинов для Qt Designer. Для получения дополнительной информации см. Сборка и установка плагина.
QTPLUGIN
Указывает список имён статических плагинов Qt, которые должны быть подключены к приложению, чтобы они были доступны как встроенные ресурсы.
qmake автоматически добавляет плагины, обычно необходимые используемым модулям Qt (см. QT). Значения по умолчанию настроены для оптимального использования из коробки. Список доступных плагинов и способы переопределения автоматической связи см. в Статические плагины.
Эта переменная в настоящее время не оказывает никакого влияния при подключении к общей/динамической сборке Qt или при подключении библиотек. Она может быть использована для развертывания динамических плагинов в будущем.
QT_VERSION
Содержит текущую версию Qt.
QT_MAJOR_VERSION
Содержит текущую основную версию Qt.
QT_MINOR_VERSION
Содержит текущую второстепенную версию Qt.
QT_PATCH_VERSION
Содержит текущую версию исправления Qt.
RC_FILE
Указывает имя файла ресурсов приложения. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
RC_CODEPAGE
Только Windows. Указывает кодовую страницу, которая должна быть указана в сгенерированном файле .rc. Это используется только в том случае, если переменная VERSION или RC_ICONS установлена, а переменные RC_FILE и RES_FILE не установлены.
RC_DEFINES
Только Windows. qmake добавляет значения этой переменной в качестве макросов препроцессора RC (/d опция). Если эта переменная не установлена, используется переменная DEFINES.
RC_DEFINES += USE_MY_STUFF
RC_ICONS
Только Windows. Указывает значки, которые должны быть включены в сгенерированный файл .rc. Это используется только в том случае, если переменные RC_FILE и RES_FILE не установлены. Более подробная информация о генерации файлов .rc содержится в Заметках по платформе.
RC_LANG
Только Windows. Указывает язык, который должен быть указан в сгенерированном файле .rc. Это используется только в том случае, если переменная VERSION или RC_ICONS установлена, а переменные RC_FILE и RES_FILE не установлены.
RC_INCLUDEPATH
Указывает пути включения, которые передаются в компилятор ресурсов Windows.
RCC_DIR
Указывает каталог для файлов выходных данных компилятора ресурсов Qt.
Например:
unix:RCC_DIR = ../myproject/resources win32:RCC_DIR = c:/myproject/resources
REQUIRES
Указывает список значений, которые оцениваются как условия. Если какое-либо из условий ложно, qmake пропускает этот проект (и его SUBDIRS) при сборке.
Примечание: Рекомендуется использовать функцию requires(), если вы хотите пропускать проекты или подпроекты при сборке.
RESOURCES
Указывает имя файлов коллекций ресурсов (qrc) для целевого объекта. Более подробную информацию о файлах коллекций ресурсов см. в Системе ресурсов Qt.
RES_FILE
Указывает имя скомпилированного файла ресурсов Windows для целевого объекта. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
SOURCES
Указывает имена всех исходных файлов в проекте.
Например:
SOURCES = myclass.cpp \
login.cpp \
mainwindow.cpp См. также HEADERS.
SUBDIRS
Эта переменная, когда используется с subdirs шаблоном, указывает имена всех подкаталогов или файлов проектов, содержащих части проекта, которые необходимо собрать. Каждый подкаталог, указанный с помощью этой переменной, должен содержать свой собственный файл проекта.
Рекомендуется, чтобы файл проекта в каждом подкаталоге имел то же имя, что и сам подкаталог, потому что это позволяет опустить имя файла. Например, если подкаталог называется myapp, файл проекта в этом каталоге должен называться myapp.pro.
В качестве альтернативы вы можете указать относительный путь к файлу .pro в любом каталоге. Сильно рекомендуется указывать только пути в родительском каталоге текущего проекта или его подкаталогах.
Например:
SUBDIRS = kernel \
tools \
myapp Если вам нужно гарантировать, что подкаталоги собираются в том порядке, в котором они указаны, обновите переменную CONFIG, включив в неё опцию ordered:
CONFIG += ordered
Изменить это поведение по умолчанию для SUBDIRS можно, добавив дополнительные модификаторы к элементам SUBDIRS . Поддерживаемые модификаторы:
| Модификатор | Эффект |
|---|---|
| .subdir | Использовать указанный подкаталог вместо SUBDIRS значения. |
| .file | Явно указать файл подпроекта pro. Не может быть использован вместе с модификатором .subdir |
| .depends | Этот подпроект зависит от указанного подпроекта. |
| .makefile | Файл makefile подпроекта. Доступно только на платформах, использующих makefile. |
| .target | Базовая строка, используемая для целей makefile, связанных с этим подпроектом. Доступно только на платформах, использующих makefile. |
Например, определите два подкаталога, оба из которых находятся в другом каталоге, чем SUBDIRS значение, и один из подкаталогов должен быть собран до другого:
SUBDIRS += my_executable my_library my_executable.subdir = app my_executable.depends = my_library my_library.subdir = lib
TARGET
Указывает имя целевого файла. По умолчанию содержит базовое имя файла проекта.
Например:
TEMPLATE = app TARGET = myapp SOURCES = main.cpp
Файл проекта выше создаст исполняемый файл, названный myapp на Unix и myapp.exe на Windows.
TARGET_EXT
Указывает расширение TARGET. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
TARGET_x
Указывает расширение TARGET с номером главной версии. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
TARGET_x.y.z
Указывает расширение TARGET с номером версии. Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
TEMPLATE
Указывает имя шаблона, используемого при генерации проекта. Допустимые значения:
| Вариант | Описание |
|---|---|
| app | Создаёт Makefile для сборки приложений (по умолчанию). Более подробная информация приведена в Сборка приложения. |
| lib | Создаёт Makefile для сборки библиотек. Более подробная информация приведена в Сборка библиотеки. |
| subdirs | Создаёт Makefile для сборки целевых объектов в подкаталогах. Подкаталоги указываются с помощью переменной SUBDIRS. |
| aux | Создаёт Makefile для не сборки ничего. Используйте это, если компилятор не нужен для создания целевого объекта; например, если ваш проект написан на интерпретируемом языке. Примечание: Этот тип шаблона доступен только для генераторов, основанных на Makefile. В частности, он не будет работать с генераторами vcxproj и Xcode. |
| vcapp | Только Windows. Создаёт проект приложения для Visual Studio. Более подробная информация приведена в Создание файлов проекта Visual Studio. |
| vclib | Только Windows. Создаёт проект библиотеки для Visual Studio. |
Например:
TEMPLATE = lib SOURCES = main.cpp TARGET = mylib
Шаблон может быть переопределён, указав новый тип шаблона с помощью -t командной строки. Это переопределяет тип шаблона после обработки файла .pro. Для файлов .pro, использующих тип шаблона для определения способа сборки проекта, необходимо объявить TEMPLATE в командной строке вместо использования -t опции.
TRANSLATIONS
Указывает список файлов переводов (.ts), содержащих переводы текстов пользовательского интерфейса на языки, отличные от родного.
Файлы переводов в TRANSLATIONS будут обрабатываться как инструментом lrelease, так и инструментом Using lupdate. Используйте EXTRA_TRANSLATIONS, если вы хотите, чтобы только lrelease обрабатывал файл.
Вы можете использовать CONFIG += lrelease для автоматической компиляции файлов во время сборки и CONFIG += lrelease embed_translations для их доступности в Системе ресурсов Qt.
Более подробная информация об интернационализации (i18n) и локализации (l10n) с Qt содержится в Руководстве по Qt Linguist.
UI_DIR
Указывает каталог, куда будут помещаться все промежуточные файлы из uic.
Например:
unix:UI_DIR = ../myproject/ui win32:UI_DIR = c:/myproject/ui
ВЕРСИЯ
Указывает номер версии приложения, если указан app шаблон, или номер версии библиотеки, если указан lib шаблон.
В Windows, триггерит автоматическое создание файла .rc, если переменные RC_FILE и RES_FILE не установлены. Созданный файл .rc будет содержать записи FILEVERSION и PRODUCTVERSION, заполненные значением главной, дополнительной, патчи и сборки номера. Каждое число должно быть в диапазоне от 0 до 65535. Более подробные сведения о создании файлов .rc можно найти в Примечания к платформе.
Например:
win32:VERSION = 1.2.3.4 # major.minor.patch.build else:VERSION = 1.2.3 # major.minor.patch
VERSION_PE_HEADER
Только Windows. Указывает номер версии, который компоновщик Windows помещает в заголовок файла .exe или .dll с помощью параметра /VERSION. Можно указать только главную и дополнительную версии. Если VERSION_PE_HEADER не установлен, используется главная и дополнительная версия из VERSION (если установлена).
VERSION_PE_HEADER = 1.2
VER_MAJ
Указывает номер главной версии библиотеки, если указан lib шаблон.
VER_MIN
Указывает номер дополнительной версии библиотеки, если указан lib шаблон.
VER_PAT
Указывает номер патчи версии библиотеки, если указан lib шаблон.
VPATH
Указывает qmake, где искать файлы, которые он не может открыть. Например, если qmake ищет SOURCES и находит запись, которую не может открыть, он просматривает весь список VPATH, чтобы увидеть, может ли он найти файл самостоятельно.
См. также DEPENDPATH.
WINDOWS_TARGET_PLATFORM_VERSION
Указывает целевую версию Windows; это соответствует тегу WindowsTargetPlatformVersion в файлах vcxproj.
В настольных приложениях Windows значение по умолчанию — значение переменной среды WindowsSDKVersion.
В WinRT значение по умолчанию — значение переменной среды UCRTVERSION.
WINDOWS_TARGET_PLATFORM_MIN_VERSION
Указывает минимальную версию целевой платформы Windows; это соответствует тегу WindowsTargetPlatformMinVersion в файлах vcxproj.
Значение по умолчанию — WINDOWS_TARGET_PLATFORM_VERSION.
WINRT_MANIFEST
Указывает параметры, которые будут переданы в манифест приложения в Windows Runtime. Разрешенные значения:
| Член | Описание |
|---|---|
| architecture | Целевая архитектура. Значение по умолчанию — VCPROJ_ARCH. |
| background | Цвет фона плитки. Значение по умолчанию — green. |
| capabilities | Указывает возможности, которые необходимо добавить в список возможностей. |
| capabilities_device | Указывает возможности устройства, которые необходимо добавить в список возможностей (местоположение, веб-камера и т. д.). |
| CONFIG | Указывает дополнительные флаги для обработки входного файла манифеста. В настоящее время доступен только verbatim.
|
| default_language | Код языка по умолчанию приложения. Значение по умолчанию — "en". |
| dependencies | Указывает зависимости, необходимые для пакета. |
| description | Описание пакета. Значение по умолчанию — Default package description. |
| foreground | Цвет переднего плана плитки (текста). Значение по умолчанию — light. Этот параметр доступен только для приложений Windows Store в Windows 8 и Windows RT. |
| iconic_tile_icon | Файл изображения для значка шаблона плитки iconic . Значение по умолчанию предоставляет mkspec. |
| iconic_tile_small | Файл изображения для малого логотипа шаблона плитки iconic. Значение по умолчанию предоставляет mkspec. |
| identity | Уникальный идентификатор приложения. По умолчанию используется существующий сгенерированный UUID манифеста или генерируется новый UUID, если он отсутствует. |
| logo_30x30 | Файл изображения логотипа размером 30x30 пикселей. Не поддерживается в Windows Phone. |
| logo_41x41 | Файл изображения логотипа размером 41x41 пикселей. Поддерживается только в Windows Phone. |
| logo_70x70 | Файл изображения логотипа размером 70x70 пикселей. Не поддерживается в Windows Phone. |
| logo_71x71 | Файл изображения логотипа размером 71x71 пикселей. Поддерживается только в Windows Phone. |
| logo_150x150 | Файл изображения логотипа размером 150x150 пикселей. Поддерживается во всех платформах Windows Store App. |
| logo_310x150 | Файл изображения логотипа размером 310x150 пикселей. Поддерживается во всех платформах Windows Store App. |
| logo_310x310 | Файл изображения логотипа размером 310x310 пикселей. Поддерживается во всех платформах Windows Store App. |
| logo_620x300 | Файл изображения экрана загрузки размером 620x300 пикселей. Не поддерживается в Windows Phone. |
| logo_480x800 | Файл изображения экрана загрузки размером 480x800 пикселей. Поддерживается только в Windows Phone. |
| logo_large | Файл изображения большого логотипа. Должен быть размером 150x150 пикселей. Поддерживается во всех платформах Windows Store App. Значение по умолчанию предоставляет mkspec. |
| logo_medium | Файл изображения среднего логотипа. Для Windows Phone размер изображения должен составлять 71x71 пиксел, для других платформ Windows Store App — 70x70. Значение по умолчанию предоставляет mkspec. |
| logo_small | Файл изображения малого логотипа. Для Windows Phone размер изображения должен составлять 44x44 пикселя, для других платформ Windows Store App — 30x30. Значение по умолчанию предоставляет mkspec. |
| logo_splash | Файл изображения экрана загрузки. Для Windows Phone размер изображения должен составлять 480x800 пикселей, для других платформ Windows Store App — 620x300. Значение по умолчанию предоставляет mkspec. |
| logo_store | Файл изображения логотипа для Windows Store. Значение по умолчанию предоставляет mkspec. |
| logo_wide | Файл изображения широкого логотипа. Должен иметь размер 310x150 пикселей. Поддерживается во всех платформах Windows Store App. Значение по умолчанию предоставляет mkspec. |
| name | Название пакета, отображаемое пользователю. По умолчанию — TARGET. |
| phone_product_id | GUID продукта. По умолчанию — значение WINRT_MANIFEST.identity. (Только Windows Phone) |
| phone_publisher_id | GUID издателя. По умолчанию — недействительный GUID. (Только Windows Phone) |
| publisher | Имя издателя для отображения. Значение по умолчанию — Default publisher display name. |
| publisher_id | Уникальное имя издателя (по умолчанию: CN=MyCN). |
| target | Имя целевого файла (.exe). По умолчанию — TARGET. |
| version | Номер версии пакета. Значение по умолчанию — 1.0.0.0. |
| minVersion | Минимальная требуемая версия Windows для запуска пакета. Значение по умолчанию — WINDOWS_TARGET_PLATFORM_VERSION. |
| maxVersionTested | Максимальная версия Windows, с которой был протестирован пакет. Значение по умолчанию — WINDOWS_TARGET_PLATFORM_MIN_VERSION. |
Вы можете использовать любую комбинацию этих значений.
Например:
WINRT_MANIFEST.publisher = MyCompany WINRT_MANIFEST.logo_store = someImage.png WINRT_MANIFEST.capabilities += internetClient WINRT_MANIFEST.capabilities_device += location
Кроме того, можно указать входной файл манифеста, используя WINRT_MANIFEST.
Например:
WINRT_MANIFEST = someManifest.xml.in
В случае, если входной файл манифеста не должен обрабатываться, а только копироваться в целевой каталог, необходимо установить конфигурацию verbatim.
WINRT_MANIFEST = someManifest.xml.in WINRT_MANIFEST.CONFIG += verbatim
Примечание: Требуемые размеры изображений logo_small, logo_medium и logo_large зависят от целевой платформы. Общие описания переопределяются, если предоставлено описание, указывающее размер.
YACCSOURCES
Указывает список файлов исходного кода Yacc, которые необходимо включить в проект. Все зависимости, заголовки и исходные файлы будут автоматически включены в проект.
Например:
YACCSOURCES = moc.y
_PRO_FILE_
Содержит путь к файлу проекта, используемому в данный момент.
Например, следующая строка выводит расположение файла проекта в консоль:
message($$_PRO_FILE_)
Примечание: Не пытайтесь перезаписать значение этой переменной.
_PRO_FILE_PWD_
Содержит путь к каталогу, содержащему используемый файл проекта.
Например, следующая строка выводит расположение каталога, содержащего файл проекта, в консоль:
message($$_PRO_FILE_PWD_)
Примечание: Не пытайтесь перезаписать значение этой переменной.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qmake-variable-reference.html