USE_QT4 | Specify tool and library dependencies for ports that use Qt 4. See Qt 4 component selection for more details. |
QT_PREFIX | Set to the path where Qt installed to (read-only variable). |
MOC | Set to the path of moc
(read-only variable). Default set according to
USE_QT_VER value. |
QTCPPFLAGS | Additional compiler flags passed via
CONFIGURE_ENV for Qt toolkit.
Default set according to
USE_QT_VER . |
QTCFGLIBS | Additional libraries for linking passed via
CONFIGURE_ENV for Qt toolkit.
Default set according to
USE_QT_VER . |
QTNONSTANDARD | Suppress modification of
CONFIGURE_ENV ,
CONFIGURE_ARGS ,
CPPFLAGS and
MAKE_ENV . |
UIC | Set to the path of uic
(read-only variable). |
QMAKE | Set to the path of qmake
(read-only variable). |
QMAKESPEC | Set to the path of configuration file for
qmake (read-only
variable). |
QMAKEFLAGS | Additional flags for
qmake . |
QT_INCDIR | Set to Qt 4 include directories (read-only variable). |
QT_LIBDIR | Set to Qt 4 libraries path (read-only variable). |
QT_PLUGINDIR | Set to Qt 4 plugins path (read-only variable). |
When USE_QT4
is set, the following
settings are deployed:
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}
Individual Qt 4 tool and library dependencies must be
specified in the USE_QT4
variable. Every
component can be suffixed by either
_build
or _run
, the
suffix indicating whether the component should be depended
on at buildtime or runtime, respectively. If unsuffixed,
the component will be depended on at both build- and
runtime. Usually, library components should be specified
unsuffixed, tool components should be specified with the
_build
suffix and plugin components
should be specified with the _run
suffix.
The most commonly used components are listed below (all
available components are listed in
_USE_QT4_ALL
in
/usr/ports/Mk/bsd.qt.mk
):
Name | Description |
---|---|
corelib | core library (can be omitted unless the port
uses nothing but corelib ) |
gui | graphical user interface library |
network | network library |
opengl | OpenGL library |
qt3support | Qt 3 compatibility library |
qtestlib | unit testing library |
script | script library |
sql | SQL library |
xml | XML library |
You can determine which libraries the application
depends on, by running ldd
on the main
executable after a successful compilation.
Name | Description |
---|---|
moc | meta object compiler (needed for almost every Qt application at buildtime) |
qmake | Makefile generator / build utility |
rcc | resource compiler (needed if the application
comes with *.rc or
*.qrc files) |
uic | user interface compiler (needed if the
application comes with *.ui
files created by Qt Designer - in practice, every Qt
application with a GUI) |
Name | Description |
---|---|
iconengines | SVG icon engine plugin (if the application ships SVG icons) |
imageformats | imageformat plugins for GIF, JPEG, MNG and SVG (if the application ships image files) |
In this example, the ported application uses the Qt 4
graphical user interface library, the Qt 4 core library,
all of the Qt 4 code generation tools and Qt 4's Makefile
generator. Since the gui
library
implies a dependency on the core library,
corelib
does not need to be specified.
The Qt 4 code generation tools moc
,
uic
and rcc
, as well
as the Makefile generator qmake
are
only needed at buildtime, thus they are specified with the
_build
suffix:
USE_QT4= gui moc_build qmake_build rcc_build uic_build
qmake
Variable | Means |
---|---|
QMAKE_ARGS | Port specific QMake
flags to be passed to the qmake
binary. |
QMAKE_ENV | Environment variables to be set for the
qmake binary. The default is
${CONFIGURE_ENV} . |
QMAKE_PRO | Name of the project .pro file.
The default is empty (using autodetection). |
If the application does not provide a
configure
script but a
.pro
file, you can use the
following:
USES= qmake USE_QT4= qmake_build
USES=qmake
instructs the port to
use qmake
for configuring.
Note that USES=qmake
does not imply a
dependency on Qt 4 qmake
, thus
USE_QT4
has to be populated with the
qmake_build
component.
Qt applications often are written to be cross-platform and often X11/Unix is not the platform they are developed on, which in turn often leads to certain loose ends, like:
Missing additional include
paths. Many applications come with
system tray icon support, but neglect to look for
includes and/or libraries in the X11 directories. You
can tell qmake
to add directories to
the include and library search paths via the command
line, for example:
QMAKE_ARGS+= INCLUDEPATH+=${LOCALBASE}/include \ LIBS+=-L${LOCALBASE}/lib
Bogus installation paths.
Sometimes data such as icons or .desktop files are by
default installed into directories which are not scanned
by XDG-compatible applications.
editors/texmaker is
an example for this - look at
patch-texmaker.pro
in the
files
directory of that port for a
template on how to remedy this directly in the
qmake
project file.
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.