USE_QT_VER | Порт использует инструментальный пакет Qt.
Единственным возможным значением является
3 . Соответствующие
параметры передаются в сценарий configure
и make . |
USE_QT4 | Указывает инструменты и библиотеки в качестве зависимостей для портов, которые используют Qt 4. Для получения подробностей смотрите выбор компонентов Qt 4. |
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 . |
UIC | Устанавливает путь к uic
(переменная только для чтения). |
QMAKE | Устанавливает путь к qmake
(переменная только для чтения). |
QMAKESPEC | Устанавливает путь к конфигурационному файлу для
qmake (переменная только для чтения). |
QMAKEFLAGS | Дополнительные флаги для
qmake . |
QT_INCDIR | Устанавливает каталоги для заголовков Qt 4 (переменная только для чтения). |
QT_LIBDIR | Устанавливает путь к библиотекам Qt 4 (переменная только для чтения). |
QT_PLUGINDIRC | Устанавливает путь к плагинам Qt 4 (переменная только для чтения). |
Когда переменная USE_QT_VER
определена
со значением 3
,
сценарию 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_QT4
применяются следующие настройки:
CONFIGURE_ARGS+= --with-qt-includes=${QT_INCDIR} \ --with-qt-libraries=${QT_LIBDIR} \ --with-extra-libs=${LOCALBASE}/lib \ --with-extra-includes=${LOCALBASE}/include CONFIGURE_ENV+= MOC="${MOC}" UIC="${UIC}" LIBS="${QTCFGLIBS}" \ QMAKE="${QMAKE}" QMAKESPEC="${QMAKESPEC}" QTDIR="${QT_PREFIX}" MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" PLIST_SUB+= QT_INCDIR_REL=${QT_INCDIR_REL} \ QT_LIBDIR_REL=${QT_LIBDIR_REL} \ QT_PLUGINDIR_REL=${QT_PLUGINDIR_REL}
В переменной USE_QT4
должны указываться
зависимости от отдельных инструментов и библиотек Qt 4. К каждому
компоненту можно добавить суффикс, _build
или _run
, отражающий, когда должна быть применена
зависимость, во время сборки или выполнения, соответственно. Если
суффикс отсутствует, зависимость от компонента будет и для времени
сборки, и для времени выполнения. Обычно, компоненты библиотек
должны указываться без суффиксов, компоненты инструментов - с
суффиксом _build
, а компоненты плагинов - с
суффиксом _run
. Наиболее общие используемые
компоненты перечислены ниже (все доступные компоненты перечислены
в _USE_QT4_ALL
в файле
/usr/ports/Mk/bsd.qt.mk
):
Название | Описание |
---|---|
corelib | основная библиотека (можно опустить, если порт не
использует ничего, кроме corelib ) |
gui | библиотека графического пользовательского интерфейса |
network | сетевая библиотека |
opengl | библиотека OpenGL |
qt3support | библиотека совместимости с Qt 3 |
qtestlib | библиотека модульного тестирования |
script | библиотека сценариев |
sql | библиотека SQL |
xml | библиотека XML |
Вы можете определить, от каких библиотек зависит приложение,
запустив ldd
на основной исполняемый файл
после успешной компиляции.
Название | Описание |
---|---|
moc | мета-объектный компилятор (нужен при построении почти для каждого приложения Qt) |
qmake | генератор Makefile / утилита построения |
rcc | компилятор ресурсов (нужен, если приложение
идет вместе с файлами *.rc или
*.qrc ) |
uic | компилятор пользовательского интерфейса (нужен, если
приложение идет вместе с файлами *.ui ,
созданными при помощи Qt Designer, - на практике каждое
приложение Qt с GUI) |
Название | Описание |
---|---|
iconengines | плагин для движка иконок SVG (если приложение поставляется с иконками SVG) |
imageformats | плагины для графических форматов GIF, JPEG, MNG и SVG (если приложение поставляется с графическими файлами) |
В этом примере портированное приложение использует библиотеку
графического пользовательского интерфейса Qt 4, основную библиотеку
Qt 4, все инструменты генерации кода Qt 4 и генератор Makefile Qt 4.
Поскольку библиотека gui
подразумевает
зависимость от основной библиотеки, указывать
corelib
нет необходимости. Инструменты
генерации кода Qt 4 moc
, uic
и rcc
, а также генератор Makefile
qmake
нужны только для времени построения,
поэтому они указаны с суффиксом _build
:
USE_QT4= gui moc_build qmake_build rcc_build uic_build
Если вместе с приложением вместо configure
поставляется файл .pro
, вы можете использовать
следующее:
HAS_CONFIGURE= yes do-configure: @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \ ${QMAKE} ${QMAKEFLAGS} PREFIX=${PREFIX} texmaker.pro
Обратите внимание на сходство со строкой qmake
из прилагаемого сценария BUILD.sh
. Передача
CONFIGURE_ENV
обеспечивает видимость переменной
QMAKESPEC
для qmake
, без
которой команда не может работать. qmake
порождает стандартные Makefile, и, таким образом, отпадает
необходимость в написании своих собственных целей
build
.
Приложения Qt часто пишутся в кроссплатформенной манере, и X11/Unix часто не является для них платформой разработки, что в свою очередь часто приводит к соответствующим упущенным моментам:
Отсутствующие дополнительные пути для
заголовочных файлов. Многие приложения идут с
поддержкой иконки в системном трее, но пренебрегают смотреть
на наличие заголовочных файлов и/или библиотеками в каталогах
X11. Вы можете сообщить qmake
, чтобы она
добавила каталоги в пути поиска заголовочных файлов и библиотек
через командную строку. К примеру:
${QMAKE} ${QMAKEFLAGS} PREFIX=${PREFIX} INCLUDEPATH+=${LOCALBASE}/include \ LIBS+=-L${LOCALBASE}/lib sillyapp.pro
Фиктивные пути установки.
Иногда данные, такие как иконки и файлы .desktop,
устанавливаются по умолчанию в каталоги, которые не
просматриваются XDG-совместимыми приложениями. Примером
является editors/texmaker -
взгляните на patch-texmaker.pro
из каталога
files
этого порта, который можно взять
в качестве шаблона исправления этого непосредственно в файле
проекта qmake
.
Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.