Переменные
Основное поведение 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, этот параметр указывает, что указанные каталоги должны обрабатываться в том порядке, в котором они указаны.Примечание: Использование этого параметра не рекомендуется. Укажите зависимости, как описано в документации переменной SUBDIRS. |
| precompile_header | Включает поддержку использования прекомпилированных заголовочных файлов в проектах. |
| precompile_header_c (MSVC only) | Включает поддержку использования прекомпилированных заголовочных файлов для файлов C. |
| warn_on | Компилятор должен выводить как можно больше предупреждений. Если warn_off также указан, действует последнее значение. |
| warn_off | Компилятор должен выводить как можно меньше предупреждений. |
| exceptions | Поддержка исключений включена. Установлено по умолчанию. |
| exceptions_off | Поддержка исключений отключена. |
| ltcg | Включение генерации кода во время линковки. По умолчанию этот параметр отключён. |
| rtti | Поддержка RTTI включена. По умолчанию используется значение по умолчанию компилятора. |
| rtti_off | Поддержка RTTI отключена. По умолчанию используется значение по умолчанию компилятора. |
| stl | Поддержка STL включена. По умолчанию используется значение по умолчанию компилятора. |
| stl_off | Поддержка STL отключена. По умолчанию используется значение по умолчанию компилятора. |
| thread | Поддержка потоков включена. Включается, когда CONFIG включает qt, что является значением по умолчанию. |
| utf8_source | Указывает, что исходные файлы проекта используют кодировку UTF-8. По умолчанию используется значение по умолчанию компилятора. |
| hide_symbols | Устанавливает видимость символов в двоичном файле по умолчанию как скрытую. По умолчанию используется значение по умолчанию компилятора. |
| 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. По умолчанию не установлено. |
| create_libtool | Создать файл libtool .la для текущей библиотеки. |
| create_pc | Создать файл pkg-config .pc для текущей библиотеки. |
| no_batch | Только NMake: Отключить генерацию командных файлов NMake или правил вывода. |
| skip_target_version_ext | Подавить автоматическое добавление номера версии к имени файла DLL в Windows. |
| suppress_vcproj_warnings | Подавить предупреждения генератора проекта VS. |
| windeployqt | Автоматически вызвать windeployqt после линковки и добавить результат в качестве элементов развертывания. |
| dont_recurse | Подавить рекурсию qmake для текущего подпроекта. |
| no_include_pwd | Не добавлять текущий каталог в INCLUDEPATHS. |
При использовании параметра 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 обработает все библиотеки, к которым ссылается приложение, и найдёт их метаинформацию (см. Зависимости библиотек для получения дополнительной информации). |
| no_install_prl | Этот параметр отключает генерацию правил установки для сгенерированных файлов .prl. |
Примечание: Параметр 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
DEFINES_DEBUG
Указывает макросы препроцессора для конфигурации отладки. Значения этой переменной добавляются к DEFINES после загрузки проекта. Обычно эта переменная устанавливается в qmake.conf и редко требует изменения.
Эта переменная была введена в Qt 5.13.2.
DEFINES_RELEASE
Указывает макросы препроцессора для конфигурации релиз. Значения этой переменной добавляются к DEFINES после загрузки проекта. Обычно эта переменная устанавливается в qmake.conf и редко требует изменения.
Примечание: Для MSVC mkspecs значение этой переменной по умолчанию NDEBUG.
Эта переменная была введена в Qt 5.13.2.
DEF_FILE
Примечание: Эта переменная используется только в Windows при использовании шаблона app.
Указывает файл .def для включения в проект.
DEPENDPATH
Указывает список директорий для поиска зависимостей qmake. Эта переменная используется при поиске qmake заголовочных файлов, которые вы #include в исходном коде.
DESTDIR
Указывает, куда поместить файл цели.
Например:
DESTDIR = ../../lib
Примечание: Список поддерживаемых символов может зависеть от используемого инструмента сборки. В частности, скобки не работают с make.
DISTFILES
Указывает список файлов, которые должны быть включены в целевую задачу dist. Эта функция поддерживается только в UnixMake specs.
Например:
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
Эта переменная используется только в macOS для установки значка приложения. Пожалуйста, см. документацию по значкам приложения для получения дополнительной информации.
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_exist | Если не задано, 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.
QML_IMPORT_PATH
Эта переменная используется только в Qt Creator. См. Qt Creator: Использование модулей QML с плагинами для получения подробной информации.
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.
Идентификатор команды разработчиков для использования сертификатов подписи и профилей подготовки.
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.
Указывает имя файла свойств, .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
Эта переменная используется для настройки списка опций, передаваемых компилятору ресурсов (Resource Compiler) в каждом из правил построения, где он используется. Например, следующая строка гарантирует, что опции -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, поддерживаемую приложением.
Для получения дополнительной информации см. Выражение поддерживаемых версий iOS.
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
Только Windows. Указывает имя файла ресурсов Windows (.rc) для целевого объекта. См. Добавление файлов ресурсов Windows.
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 Resource Compiler.
Например:
unix:RCC_DIR = ../myproject/resources win32:RCC_DIR = c:/myproject/resources
REQUIRES
Указывает список значений, которые оцениваются как условия. Если любое из условий ложно, qmake пропускает этот проект (и его SUBDIRS) при построении.
Примечание: Рекомендуется использовать функцию requires(), если вы хотите пропускать проекты или подпроекты при построении.
RESOURCES
Указывает имя файла коллекции ресурсов (qrc) для целевого объекта. Дополнительную информацию о файле коллекции ресурсов см. в Системе ресурсов Qt.
RES_FILE
Только Windows. Указывает имя выходного файла компилятора ресурсов Windows для этого целевого объекта. См. RC_FILE и Добавление файлов ресурсов Windows.
Значение этой переменной обычно обрабатывается qmake или qmake.conf и редко требует изменения.
SOURCES
Указывает имена всех исходных файлов в проекте.
Например:
SOURCES = myclass.cpp \
login.cpp \
mainwindow.cpp См. также HEADERS.
SUBDIRS
Эта переменная, при использовании с subdirs шаблоном, указывает имена всех подкаталогов или файлов проектов, содержащих части проекта, которые необходимо построить. Каждый подкаталог, указанный с помощью этой переменной, должен содержать свой собственный файл проекта.
Рекомендуется, чтобы файл проекта в каждом подкаталоге имел то же имя, что и сам подкаталог, так как это позволяет опустить имя файла. Например, если подкаталог называется myapp, файл проекта в этом каталоге должен называться myapp.pro.
В качестве альтернативы можно указать относительный путь к файлу .pro в любом каталоге. Настоятельно рекомендуется указывать только пути в родительском каталоге текущего проекта или его подкаталогах.
Например:
SUBDIRS = kernel \
tools \
myapp Если вам нужно гарантировать, что подкаталоги будут построены в определённом порядке, используйте модификатор .depends для соответствующих элементов SUBDIRS.
Например:
SUBDIRS += my_executable my_library tests doc my_executable.depends = my_library tests.depends = my_executable
Вышеуказанная конфигурация гарантирует, что my_library будет построено до my_executable, а my_executable будет построено до tests. Однако, doc может быть построено параллельно с другими подкаталогами, что ускоряет процесс сборки.
Примечание: Можно указать несколько зависимостей, и все они будут построены до целевого объекта, от которого они зависят.
Примечание: Использование CONFIG += ordered не рекомендуется, так как это может замедлить сборку на многоядерных системах. В отличие от показанного выше примера, все сборки будут выполняться последовательно, даже если у них нет зависимостей.
Помимо определения порядка сборки, можно изменить поведение SUBDIRS путём добавления дополнительных модификаторов к элементам SUBDIRS. Поддерживаемые модификаторы:
| Модификатор | Эффект |
|---|---|
| .subdir | Использовать указанный подкаталог вместо значения SUBDIRS. |
| .file | Явно указать файл подпроекта pro. Нельзя использовать совместно с модификатором .subdir. |
| .depends | Этот подпроект зависит от указанных подпроектов. |
| .makefile | Файл make проекта подпроекта. Доступно только на платформах, использующих make. |
| .target | Базовая строка, используемая для целей make, связанных с этим подпроектом. Доступно только на платформах, использующих make. |
Например, определите два подкаталога, оба из которых находятся в другом каталоге, чем значение SUBDIRS, и один из подкаталогов должен быть построен перед другим:
SUBDIRS += my_executable my_library my_executable.subdir = app my_executable.depends = my_library my_library.subdir = lib
ЦЕЛЬ
Указывает имя целевого файла. По умолчанию содержит базовое имя файла проекта.
Например:
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 и редко требует изменения.
ШАБЛОН
Указывает имя шаблона для использования при генерации проекта. Допустимые значения:
| Вариант | Описание |
|---|---|
| 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.
ПЕРЕВОДЫ
Указывает список файлов переводов (.ts), содержащих переводы текста пользовательского интерфейса на языки, отличные от родного.
Файлы переводов в TRANSLATIONS будут обрабатываться как инструментом lrelease, так и инструментом lupdate. Используйте EXTRA_TRANSLATIONS, если вы хотите, чтобы только lrelease обрабатывал файл.
Вы можете использовать CONFIG += lrelease для автоматической компиляции файлов во время сборки и CONFIG += lrelease embed_translations для их доступности в Системе ресурсов Qt.
См. Руководство Qt Linguist для получения дополнительной информации об интернационализации (i18n) и локализации (l10n) с Qt.
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.
Для универсальной платформы Windows (UWP) значение по умолчанию — значение переменной среды UCRTVERSION.
WINDOWS_TARGET_PLATFORM_MIN_VERSION
Указывает минимальную версию целевой платформы Windows; это соответствует тегу WindowsTargetPlatformMinVersion в файлах vcxproj.
По умолчанию WINDOWS_TARGET_PLATFORM_VERSION.
WINRT_MANIFEST
Указывает параметры, передаваемые в манифест приложения на UWP. Допустимые значения:
| Элемент | Описание |
|---|---|
| architecture | Целевая архитектура. По умолчанию VCPROJ_ARCH. |
| background | Цвет фона плитки. По умолчанию green. |
| capabilities | Указывает возможности для добавления в список возможностей. |
| capabilities_device | Указывает возможности устройства для добавления в список возможностей (местоположение, веб-камера и т.д.). |
| CONFIG | Указывает дополнительные флаги для обработки входного файла манифеста. В настоящее время доступен только verbatim. |
| default_language | Код языка по умолчанию приложения. По умолчанию "en". |
| dependencies | Указывает зависимости, необходимые для пакета. |
| description | Описание пакета. По умолчанию Default package description. |
| foreground | Цвет переднего плана плитки (текста). По умолчанию light. |
| iconic_tile_icon | Файл изображения для значка шаблона плитки iconic. Значение по умолчанию предоставляет mkspec. |
| iconic_tile_small | Файл изображения для логотипа шаблона небольшой плитки iconic. Значение по умолчанию предоставляет mkspec. |
| identity | Уникальный идентификатор приложения. По умолчанию используется существующий сгенерированный UUID манифеста или генерируется новый UUID, если его нет. |
| logo_30x30 | Файл изображения логотипа размером 30x30 пикселей. |
| logo_41x41 | Файл изображения логотипа размером 41x41 пикселей. Этот параметр устарел. |
| logo_70x70 | Файл изображения логотипа размером 70x70 пикселей. |
| logo_71x71 | Файл изображения логотипа размером 71x71 пикселей. Этот параметр устарел. |
| logo_150x150 | Файл изображения логотипа размером 150x150 пикселей. Поддерживается на всех платформах приложений Windows Store. |
| logo_310x150 | Файл изображения логотипа размером 310x150 пикселей. Поддерживается на всех платформах приложений Windows Store. |
| logo_310x310 | Файл изображения логотипа размером 310x310 пикселей. Поддерживается на всех платформах приложений Windows Store. |
| logo_620x300 | Файл изображения экрана загрузки размером 620x300 пикселей. |
| logo_480x800 | Файл изображения экрана загрузки размером 480x800 пикселей. Этот параметр устарел. |
| logo_large | Файл изображения крупного логотипа. Должен быть размером 150x150 пикселей. Поддерживается на всех платформах приложений Windows Store. Значение по умолчанию предоставляет mkspec. |
| logo_medium | Файл изображения среднего логотипа. Размер изображения должен быть 70x70 пикселей. Значение по умолчанию предоставляет mkspec. |
| logo_small | Файл изображения маленького логотипа. Размер изображения должен быть 30x30 пикселей. Значение по умолчанию предоставляет mkspec. |
| logo_splash | Файл изображения экрана загрузки. Размер изображения должен быть 620x300 пикселей. Значение по умолчанию предоставляет mkspec. |
| logo_store | Файл изображения логотипа для Windows Store. Значение по умолчанию предоставляет mkspec. |
| logo_wide | Файл изображения широкого логотипа. Должен быть размером 310x150 пикселей. Поддерживается на всех платформах приложений Windows Store. Значение по умолчанию предоставляет mkspec. |
| name | Имя пакета, отображаемое пользователю. По умолчанию TARGET. |
| phone_product_id | GUID продукта. Этот параметр устарел. |
| phone_publisher_id | GUID издателя. Этот параметр устарел. |
| 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
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.14/qmake-variable-reference.html