USE_QT_VER | The port uses the Qt toolkit. The only
possible value is 3 .
Appropriate parameters are passed to
configure script and
make . |
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_QT_VER
is set to
3
, some useful settings are passed to the
configure
script:
If USE_QT4
is set, the following
settings are deployed:
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:
If the application does not provide a
configure
file but a
.pro
file, you can use the
following:
Note the similarity to the qmake
line
from the provided BUILD.sh
script.
Passing CONFIGURE_ENV
ensures
qmake
will see the
QMAKESPEC
variable, without which it
cannot work. qmake
generates standard
Makefiles, so it is not necessary to write our own
build
target.
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:
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>.