Настройка 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 - системная корневая директория, используемая целевой средой сборки
- 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.13/qmake-environment-reference.html