Настройка 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_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_IMPORTS - расположение расширений QML 1.x
- 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 изменяет расширение, добавляемое к файлам зависимостей библиотек.
- 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-5.15/qmake-environment-reference.html