Переменные
Основное поведение qmake определяется объявлениями переменных, которые определяют процесс сборки каждого проекта. Некоторые из них объявляют ресурсы, такие как заголовки и исходные файлы, которые являются общими для каждой платформы. Другие используются для настройки поведения компиляторов и линковщиков на конкретных платформах.
Платформозависимые переменные следуют шаблону именования переменных, которые они расширяют или изменяют, но включают в своё имя имя соответствующей платформы. Например, QMAKE_LIBS может быть использован для указания списка библиотек, которые проект должен связать, а QMAKE_LIBS_X11 может быть использован для расширения или перезаписи этого списка.
CONFIG
Указывает конфигурацию проекта и параметры компилятора. Значения распознаются qmake и имеют специальное значение.
Следующие CONFIG значения управляют флагами компиляции:
| Параметр | Описание |
|---|---|
| release | Проект должен быть собран в режиме релиз. Если debug также указан, действует последнее значение. |
| debug | Проект должен быть собран в режиме отладки. |
| debug_and_release | Проект подготовлен для сборки как в режиме отладки, так и в режиме релиз. |
| debug_and_release_target | Этот параметр установлен по умолчанию. Если debug_and_release также установлен, сборки отладки и релиз оказываются в отдельных директориях debug и release. |
| build_all | Если debug_and_release указан, проект по умолчанию собирается как в режиме отладки, так и в режиме релиз. |
| autogen_precompile_source | Автоматически генерирует файл .cpp содержащий прекомпилированный заголовочный файл, указанный в файле .pro. |
| ordered | При использовании шаблона subdirs этот параметр указывает, что перечисленные каталоги должны обрабатываться в том порядке, в котором они указаны. |
| precompile_header | Включает поддержку использования прекомпилированных заголовков в проектах. |
| precompile_header_c (MSVC only) | Включает поддержку использования прекомпилированных заголовков для файлов C. |
| warn_on | Компилятор должен выводить как можно больше предупреждений. Если warn_off также указан, действует последнее значение. |
| warn_off | Компилятор должен выводить как можно меньше предупреждений. |
| exceptions | Поддержка исключений включена. Установлено по умолчанию. |
| exceptions_off | Поддержка исключений отключена. |
| rtti | Поддержка RTTI включена. По умолчанию используется значение по умолчанию компилятора. |
| rtti_off | Поддержка RTTI отключена. По умолчанию используется значение по умолчанию компилятора. |
| stl | Поддержка STL включена. По умолчанию используется значение по умолчанию компилятора. |
| stl_off | Поддержка STL отключена. По умолчанию используется значение по умолчанию компилятора. |
| thread | Поддержка потоков включена. Включается, когда CONFIG включает qt, что является значением по умолчанию. |
| c++11 | Поддержка C++11 включена. Этот параметр не имеет эффекта, если компилятор не поддерживает C++11. По умолчанию поддержка отключена. |
| c++14 | Поддержка C++14 включена. Этот параметр не имеет эффекта, если компилятор не поддерживает C++14. По умолчанию поддержка отключена. |
| depend_includepath | Включение добавления значения INCLUDEPATH к DEPENDPATH. Установлено по умолчанию. |
При использовании параметра 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 (только приложение). Правильные пути к заголовкам, флаги компилятора и библиотеки будут автоматически добавлены в проект. |
| 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 | Помещает библиотеку в пакет библиотеки. |
Процесс сборки пакетов также зависит от содержимого переменной QMAKE_BUNDLE_DATA.
Следующие параметры действуют только на платформах Linux/Unix:
| Параметр | Описание |
|---|---|
| largefile | Включает поддержку больших файлов. |
| separate_debug_info | Помещает отладочную информацию для библиотек в отдельные файлы. |
Переменная CONFIG также будет проверена при разрешении областей видимости. Вы можете присвоить этой переменной любое значение.
Например:
CONFIG += console newstuff
...
newstuff {
SOURCES += new.cpp
HEADERS += new.h
} ОПРЕДЕЛЕНИЯ
qmake добавляет значения этой переменной в качестве макросов препроцессора C компилятора (-D опция).
Например:
DEFINES += USE_MY_STUFF
DEF_FILE
Примечание: Эта переменная используется только в Windows при использовании шаблона app.
Указывает файл .def для включения в проект.
DEPENDPATH
Указывает список всех каталогов для поиска зависимостей. Эта переменная используется при обходе файлов included.
DESTDIR
Указывает, куда поместить файл целевой файла.
Например:
DESTDIR = ../../lib
DISTFILES
Указывает список файлов, которые должны быть включены в целевой файл dist. Эта функция поддерживается только спецификациями UnixMake.
Например:
DISTFILES += ../program.txt
DLLDESTDIR
Примечание: Эта переменная применяется только к целевым файлам Windows.
Указывает, куда скопировать dll целевого файла.
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.
ИКОНКА
Эта переменная используется только в 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
Дополнительную информацию см. в Установке файлов.
Эта переменная также используется для указания дополнительных файлов, которые будут развернуты на встроенных устройствах.
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
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, не поддерживают эту переменную. Обычно эта переменная поддерживается внутри этих инструментов сборки, и она полезна для явного перечисления зависимых статических библиотек.
Этот список размещается перед всеми встроенными зависимостями.
ПРЕКОМПИЛИРОВАННЫЙ_ЗАГОЛОВОК
Указывает заголовочный файл для создания файла прекомпилированного заголовка, чтобы ускорить компиляцию проекта. Прекомпилированные заголовки в настоящее время поддерживаются только на некоторых платформах (Windows — все типы проектов MSVC, Apple — Xcode, Makefile, Unix — gcc 3.3 и выше).
PWD
Указывает полный путь к каталогу, содержащему текущий анализируемый файл. Это может быть полезно для ссылки на файлы внутри дерева исходного кода при написании файлов проекта для поддержки теневых сборок.
См. также _PRO_FILE_PWD_.
Примечание: Не пытайтесь перезаписать значение этой переменной.
OUT_PWD
Указывает полный путь к каталогу, где qmake размещает сгенерированный Makefile.
Примечание: Не пытайтесь перезаписать значение этой переменной.
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_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_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). Дополнительную информацию об этом ключе см. в документации Apple по Info.plist.
Примечание: В большинстве случаев значение по умолчанию 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_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 и редко требует модификации.
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, и редко требует изменения.
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_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 действительного профиля provisioning. Используйте вместе с QMAKE_DEVELOPMENT_TEAM для указания профиля provisioning.
Примечание: Указание профиля provisioning отключает автоматически управляемую подпись.
QMAKE_MAC_SDK
Эта переменная используется на платформе macOS при построении универсальных бинарных файлов.
QMAKE_MACOSX_DEPLOYMENT_TARGET
Примечание: Эта переменная используется только на платформе macOS.
Указывает минимальную версию macOS, поддерживаемую приложением.
Для получения дополнительной информации, см. Зависимости версий macOS.
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 для приложения.
Дополнительную информацию см. в разделе Выражение поддерживаемых версий iOS.
QMAKE_UIC_FLAGS
Эта переменная используется для настройки списка опций, передаваемых компилятору пользовательского интерфейса (User Interface Compiler) в каждом правиле сборки, где она используется. Например, -no-stringliteral может быть передано для использования QLatin1String вместо QStringLiteral в сгенерированном коде (что по умолчанию используется для динамических библиотек).
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 | Файл make для подпроекта. Доступно только на платформах, использующих make файлы. |
| .target | Базовая строка, используемая для целей makefile, связанных с этим подпроектом. Доступно только на платформах, использующих make файлы. |
Например, определите два подкаталога, оба из которых находятся в другом каталоге, отличном от значения 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), содержащих переводы текста пользовательского интерфейса на языки, отличные от родного.
Для получения дополнительной информации об интернационализации (i18n) и локализации (l10n) с помощью Qt см. Руководство по Qt Linguist.
UI_DIR
Указывает каталог, в котором должны размещаться все промежуточные файлы из uic.
Например:
unix:UI_DIR = ../myproject/ui win32:UI_DIR = c:/myproject/ui
VERSION
Указывает номер версии приложения, если указан шаблон app template, или номер версии библиотеки, если указан шаблон 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 template.
VER_MIN
Указывает номер второстепенной версии библиотеки, если указан шаблон lib template.
VER_PAT
Указывает номер исправленной версии библиотеки, если указан шаблон lib template.
VPATH
Указывает qmake, где искать файлы, которые она не может открыть. Например, если qmake ищет SOURCES и находит запись, которую не может открыть, она просматривает весь список VPATH, чтобы увидеть, может ли она найти файл самостоятельно.
См. также DEPENDPATH.
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 для запуска пакета. По умолчанию переменная среды UCRTVersion. |
| maxVersionTested | Максимальная версия Windows, с которой был протестирован пакет. По умолчанию WINRT_MANIFEST.minVersion |
Вы можете использовать любое сочетание этих значений.
Например:
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.
END_OF_DOCUMENT_MARKERWINRT_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/archives/qt-5.11/qmake-variable-reference.html