Настройка qmake
Свойства
qmake имеет систему постоянной конфигурации, которая позволяет установить свойство в qmake один раз и запросить его каждый раз при вызове qmake. Вы можете установить свойство в qmake следующим образом:
qmake -set PROPERTY VALUE
Должны быть заменены соответствующее свойство и значение на PROPERTY и VALUE.
Вы можете получить эту информацию обратно из qmake следующим образом:
qmake -query PROPERTY qmake -query #queries all current PROPERTY/VALUE pairs
Примечание: qmake -query перечисляет встроенные свойства, помимо свойств, которые вы устанавливаете с помощью qmake -set PROPERTY VALUE.
Эта информация будет сохранена в объекте QSettings (что означает, что она будет храниться в разных местах для разных платформ).
Следующий список обобщает built-in свойства:
- QMAKE_SPEC - короткое имя хост-платформы
mkspec, которое разрешается и сохраняется в переменной QMAKESPEC во время сборки хоста - QMAKE_VERSION - текущая версия qmake
- QMAKE_XSPEC - короткое имя целевой платформы
mkspec, которое разрешается и сохраняется в переменной QMAKESPEC во время сборки цели - QT_HOST_BINS - расположение хост-исполняемых файлов
- QT_HOST_DATA - расположение данных для хост-исполняемых файлов, используемых qmake
- QT_HOST_LIBS - расположение хост-библиотек
- QT_HOST_LIBEXECS - расположение исполняемых файлов, необходимых хост-библиотекам во время выполнения
- QT_HOST_PREFIX - стандартный префикс для всех хост-путей
- QT_INSTALL_ARCHDATA - расположение общих архитектурно-зависимых данных Qt
- QT_INSTALL_BINS - расположение двоичных файлов Qt (инструментов и приложений)
- QT_INSTALL_CONFIGURATION - расположение параметров Qt. Не применимо к Windows
- QT_INSTALL_DATA - расположение общих архитектурно-независимых данных Qt
- QT_INSTALL_DOCS - расположение документации
- QT_INSTALL_EXAMPLES - расположение примеров
- QT_INSTALL_HEADERS - расположение всех заголовочных файлов
- QT_INSTALL_LIBEXECS - расположение исполняемых файлов, необходимых библиотекам во время выполнения
- QT_INSTALL_LIBS - расположение библиотек
- QT_INSTALL_PLUGINS - расположение плагинов Qt
- QT_INSTALL_PREFIX - стандартный префикс для всех путей
- QT_INSTALL_QML - расположение расширений QML 2.x
- QT_INSTALL_TESTS - расположение тестовых случаев Qt
- QT_INSTALL_TRANSLATIONS - расположение информации о переводе для строк Qt
- QT_SYSROOT - sysroot, используемый целевой средой сборки
- QT_VERSION - версия Qt. Рекомендуется запрашивать номера версий конкретных модулей Qt, используя переменные $$QT.<module>.version.
Например, вы можете запросить установку Qt для этой версии qmake с помощью QT_INSTALL_PREFIX свойства:
qmake -query "QT_INSTALL_PREFIX"
Вы можете запросить значения свойств в файле проекта следующим образом:
QMAKE_VERS = $$[QMAKE_VERSION]
QMAKESPEC
qmake требует файла описания платформы и компилятора, который содержит множество значений по умолчанию, используемых для генерации соответствующих файлов Make. Стандартное распределение Qt поставляется со многими из этих файлов, расположенных в подкаталоге mkspecs каталога установки Qt.
Переменная среды QMAKESPEC может содержать любое из следующих значений:
- Полный путь к каталогу, содержащему файл
qmake.conf. В этом случае qmake откроет файлqmake.confиз этого каталога. Если файл не существует, qmake завершит работу с ошибкой. - Имя комбинации платформы и компилятора. В этом случае qmake будет искать в каталоге, указанном в подкаталоге
mkspecsпути к данным, указанного при компиляции Qt (см. QLibraryInfo::DataPath).
Примечание: Путь QMAKESPEC будет автоматически добавлен к сгенерированному файлу Makefile после содержимого системной переменной INCLUDEPATH.
Файл кэша
Файл кэша — это специальный файл, который qmake читает, чтобы найти настройки, не указанные в файле qmake.conf, файлах проекта или в командной строке. При запуске qmake он ищет файл под названием .qmake.cache в родительских каталогах текущего каталога, если вы не указали -nocache. Если qmake не найдёт этот файл, он тихо проигнорирует этот этап обработки.
Если qmake находит файл .qmake.cache, он сначала обработает этот файл, а затем файл проекта.
Расширения файлов
В обычных условиях qmake будет пытаться использовать соответствующие расширения файлов для вашей платформы. Однако иногда необходимо переопределить значения по умолчанию для каждой платформы и явно определить расширения файлов, которые будет использовать qmake. Это достигается путем переопределения определенных встроенных переменных. Например, расширение, используемое для файлов moc, может быть переопределено следующим присваиванием в файле проекта:
QMAKE_EXT_MOC = .mymoc
Следующие переменные могут быть использованы для переопределения общих расширений файлов, распознаваемых qmake:
- QMAKE_EXT_MOC изменяет расширение, добавляемое к включённым файлам moc.
- QMAKE_EXT_UI изменяет расширение, используемое для файлов пользовательского интерфейса Qt Designer (обычно в FORMS).
- QMAKE_EXT_PRL изменяет расширение, добавляемое к файлам зависимостей библиотек (library dependency files).
- QMAKE_EXT_LEX изменяет суффикс, используемый в файлах Lex (обычно в LEXSOURCES).
- QMAKE_EXT_YACC изменяет суффикс, используемый в файлах Yacc (обычно в YACCSOURCES).
- QMAKE_EXT_OBJ изменяет суффикс, используемый для сгенерированных объектных файлов.
Все вышеперечисленные переменные принимают только первое значение, поэтому вы должны присвоить им только одно значение, которое будет использоваться в файле проекта. Есть две переменные, которые принимают список значений:
- QMAKE_EXT_CPP заставляет qmake интерпретировать все файлы с этими расширениями как файлы исходного кода C++.
- QMAKE_EXT_H заставляет qmake интерпретировать все файлы с этими расширениями как заголовочные файлы C и C++.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qmake-environment-reference.html