Таблица 6-7. Переменные для портов, использующих Qt
USE_QT_VER | Порт использует инструментальный пакет Qt. Возможными значениями являются 3 и 4, каждая из которых указывает на старший номер используемой версии Qt. Соответствующие параметры передаются в сценарий configure и make. |
QT_PREFIX | Устанавливается в значение, содержащее путь к установленному Qt (переменная только для чтения). |
MOC | Устанавливается в значение, содержащее путь к moc (переменная только для чтения). По умолчанию устанавливается в соответствии со значением USE_QT_VER. |
QTCPPFLAGS | Дополнительные флаги компилятора для инструментального пакета Qt, передаваемые через переменную CONFIGURE_ENV. По умолчанию устанавливается в соответствии со значением USE_QT_VER. |
QTCFGLIBS | Дополнительные флаги компоновки для инструментального пакета Qt, передаваемые через переменную CONFIGURE_ENV. По умолчанию устанавливается в соответствии со значением USE_QT_VER. |
QTNONSTANDARD | Подавляет изменение CONFIGURE_ENV, CONFIGURE_ARGS, CPPFLAGS и MAKE_ENV. |
Таблица 6-8. Дополнительные переменные для портов, использующих Qt 4.x
QT_COMPONENTS | Указывает инструменты и библиотеки в качестве зависимостей для Qt 4. Смотрите подробнее ниже. |
UIC | Устанавливает путь к uic (переменная только для чтения). |
QMAKE | Устанавливает путь к qmake (переменная только для чтения). |
QMAKESPEC | Устанавливает путь к конфигурационному файлу для qmake (переменная только для чтения). |
При установленной переменной USE_QT_VER сценарию configure можно передавать некоторые полезные настройки:
CONFIGURE_ARGS+= --with-qt-includes=${QT_PREFIX}/include \ --with-qt-libraries=${QT_PREFIX}/lib \ --with-extra-libs=${LOCALBASE}/lib \ --with-extra-includes=${LOCALBASE}/include CONFIGURE_ENV+= MOC="${MOC}" LIBS="${QTCFGLIBS}" \ QTDIR="${QT_PREFIX}" KDEDIR="${KDE_PREFIX}" CPPFLAGS+= ${QTCPPFLAGS}
Если переменная USE_QT_VER установлена в значение 4, то также разворачиваются следующие настройки:
CONFIGURE_ENV+= UIC="${UIC}" QMAKE="${QMAKE}" QMAKESPEC="${QMAKESPEC}" MAKE_ENV+= QMAKESPEC="${QMAKESPEC}"
Если USE_QT_VER установлена в значение 4, то в переменной QT_COMPONENTS можно указать зависимость от отдельных инструментов и библиотек Qt 4. К каждому компоненту можно добавить суффикс, _build или _run, отражающий, когда должна быть применена зависимость, во время сборки или выполнения, соответственно. Если суффикс отсутствует, зависимость от компонента будет и для времени сборки, и для времени выполнения. Обычно, компоненты библиотек должны указываться без суффиксов, компоненты инструментов - с суффиксом _build, а компоненты плагинов - с суффиксом _run. Наиболее общие используемые компоненты перечислены ниже (все доступные компоненты перечислены в _QT_COMPONENTS_ALL в файле /usr/ports/Mk/bsd.qt.mk):
Таблица 6-9. Доступные библиотечные компоненты Qt 4
Название | Описание |
---|---|
corelib | основная библиотека (можно опустить, если порт не использует ничего, кроме corelib) |
gui | библиотека графического пользовательского интерфейса |
network | сетевая библиотека |
opengl | библиотека OpenGL |
qt3support | библиотека совместимости с Qt 3 |
qtestlib | библиотека модульного тестирования |
script | библиотека сценариев |
sql | библиотека SQL |
xml | библиотека XML |
Вы можете определить, от каких библиотек зависит приложение, запустив ldd на основной исполняемый файл после успешной компиляции.
Таблица 6-10. Доступные компоненты инструментов Qt 4
Название | Описание |
---|---|
moc | мета-объектный компилятор (нужен при построении почти для каждого приложения Qt) |
qmake | генератор Makefile / утилита построения |
rcc | компилятор ресурсов (нужен, если приложение идет вместе с файлами *.rc или *.qrc) |
uic | компилятор пользовательского интерфейса (нужен, если приложение идет вместе с файлами *.ui, созданными при помощи Qt Designer, - на практике каждое приложение Qt с GUI) |
Таблица 6-11. Доступные компоненты плагинов Qt 4
Название | Описание |
---|---|
iconengines | плагин для движка иконок SVG (если приложение поставляется с иконками SVG) |
imageformats | плагины для графических форматов GIF, JPEG, MNG и SVG (если приложение поставляется с графическими файлами) |
Пример 6-4. Выбор компонентов Qt 4
В этом примере портированное приложение использует библиотеку графического пользовательского интерфейса Qt 4, основную библиотеку Qt 4, все инструменты генерации кода Qt 4 и генератор Makefile Qt 4. Поскольку библиотека gui подразумевает зависимость от основной библиотеки, указывать corelib нет необходимости. Инструменты генерации кода Qt 4 moc, uic и rcc, а также генератор Makefile qmake нужны только для времени построения, поэтому они указаны с суффиксом _build:
USE_QT_VER= 4 QT_COMPONENTS= gui moc_build qmake_build rcc_build uic_build
Если вместе с приложением вместо configure поставляется файл .pro, вы можете использовать следующее:
HAS_CONFIGURE= yes do-configure: @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \ ${QMAKE} PREFIX=${PREFIX} texmaker.pro
Обратите внимание на сходство со строкой qmake из прилагаемого сценария BUILD.sh. Передача CONFIGURE_ENV обеспечивает видимость переменной QMAKESPEC для qmake, без которой команда не может работать. qmake порождает стандартные Makefile, и, таким образом, отпадает необходимость в написании своих собственных целей build.
Приложения Qt часто пишутся в кроссплатформенной манере, и X11/Unix часто не является для них платформой разработки, что в свою очередь часто приводит к соответствующим упущенным моментам:
Отсутствующие дополнительные пути для заголовочных файлов. Многие приложения идут с поддержкой иконки в системном трее, но пренебрегают смотреть на наличие заголовочных файлов и/или библиотеками в каталогах X11. Вы можете сообщить qmake, чтобы она добавила каталоги в пути поиска заголовочных файлов и библиотек через командную строку. К примеру:
${QMAKE} PREFIX=${PREFIX} INCLUDEPATH+=${LOCALBASE}/include \ LIBS+=-L${LOCALBASE}/lib sillyapp.pro
Фиктивные пути установки. Иногда данные, такие как иконки и файлы .desktop, устанавливаются по умолчанию в каталоги, которые не просматриваются XDG-совместимыми приложениями. Примером является editors/texmaker - взгляните на patch-texmaker.pro из каталога files этого порта, который можно взять в качестве шаблона исправления этого непосредственно в файле проекта qmake.
Пред. | Начало | След. |
Использование GNOME | Уровень выше | Использование KDE |