Introduce USES=qt to the Porter's Handbook
Approved by: mat, tcberner Differential Revision: https://reviews.freebsd.org/D17429
This commit is contained in:
parent
faf811abe2
commit
c1e97e8f23
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=52352
2 changed files with 113 additions and 58 deletions
|
@ -2548,14 +2548,13 @@ GLIB_SCHEMAS= org.regexxer.gschema.xml
|
|||
|
||||
<para>The Ports Collection provides support for Qt 4 and Qt 5
|
||||
frameworks with
|
||||
<varname>USE_QT<replaceable>x</replaceable></varname>,
|
||||
<varname>USES+=qt:<replaceable>x</replaceable></varname>,
|
||||
where <replaceable>x</replaceable> is
|
||||
<literal>4</literal> or <literal>5</literal>.
|
||||
Set <varname>USE_QT<replaceable>x</replaceable></varname>
|
||||
to the list of required Qt components (libraries,
|
||||
tools, plugins). The Qt 4 and Qt 5 frameworks are quite
|
||||
similar. The main difference is the set of supported
|
||||
components.</para>
|
||||
Set <varname>USE_QT</varname> to the list of required
|
||||
Qt components (libraries, tools, plugins). The Qt 4
|
||||
and Qt 5 frameworks are quite similar. The main
|
||||
difference is the set of supported components.</para>
|
||||
|
||||
<para>The Qt framework exports a number of variables which can
|
||||
be used by ports, some of them listed below:</para>
|
||||
|
@ -2565,12 +2564,6 @@ GLIB_SCHEMAS= org.regexxer.gschema.xml
|
|||
|
||||
<tgroup cols="2">
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><varname>QT_PREFIX</varname></entry>
|
||||
<entry>Set to the path where Qt was installed
|
||||
(<literal>${LOCALBASE}</literal>).</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><varname>QMAKE</varname></entry>
|
||||
<entry>Full path to <command>qmake</command>
|
||||
|
@ -2616,34 +2609,13 @@ GLIB_SCHEMAS= org.regexxer.gschema.xml
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>When using the Qt framework, these
|
||||
settings are deployed:</para>
|
||||
|
||||
<programlisting>CONFIGURE_ARGS+= --with-qt-includes=${QT_INCDIR} \
|
||||
--with-qt-libraries=${QT_LIBDIR} \
|
||||
--with-extra-libs=${LOCALBASE}/lib \
|
||||
--with-extra-includes=${LOCALBASE}/include
|
||||
|
||||
CONFIGURE_ENV+= QTDIR="${QT_PREFIX}" QMAKE="${QMAKE}" \
|
||||
MOC="${MOC}" RCC="${RCC}" UIC="${UIC}" \
|
||||
QMAKESPEC="${QMAKESPEC}"
|
||||
|
||||
PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \
|
||||
QT_LIBDIR=${QT_LIBDIR_REL} \
|
||||
QT_PLUGINDIR=${QT_PLUGINDIR_REL}</programlisting>
|
||||
|
||||
<para>Some configure scripts do not support the arguments above.
|
||||
To suppress modification of<varname>CONFIGURE_ENV</varname>
|
||||
and <varname>CONFIGURE_ARGS</varname>, set
|
||||
<varname>QT_NONSTANDARD</varname>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="qt-components">
|
||||
<title>Component Selection</title>
|
||||
|
||||
<para>Individual Qt tool and library dependencies must be
|
||||
specified in
|
||||
<varname>USE_QT<replaceable>x</replaceable></varname>.
|
||||
specified in <varname>USE_QT</varname>.
|
||||
Every component can be suffixed with
|
||||
<literal>_build</literal> or <literal>_run</literal>, the
|
||||
suffix indicating whether the dependency on the component is
|
||||
|
@ -2657,7 +2629,7 @@ PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \
|
|||
listed in <varname>_USE_QT_ALL</varname>,
|
||||
<varname>_USE_QT4_ONLY</varname>, and
|
||||
<varname>_USE_QT5_ONLY</varname> in
|
||||
<filename>/usr/ports/Mk/bsd.qt.mk</filename>):</para>
|
||||
<filename>/usr/ports/Mk/Uses/qt.mk</filename>):</para>
|
||||
|
||||
<table frame="none" xml:id="using-qt-library-list">
|
||||
<title>Available Qt Library Components</title>
|
||||
|
@ -2835,30 +2807,78 @@ PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \
|
|||
only needed at buildtime, thus they are specified with the
|
||||
<literal>_build</literal> suffix:</para>
|
||||
|
||||
<programlisting>USE_QT4= gui moc_build qmake_build rcc_build uic_build</programlisting>
|
||||
<programlisting>USES= qt:4
|
||||
USE_QT= gui moc_build qmake_build rcc_build uic_build</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="using-qmake">
|
||||
<title>Using <command>qmake</command></title>
|
||||
|
||||
|
||||
<para>If the application provides a
|
||||
<application>qmake</application> project file
|
||||
(<filename>*.pro</filename>), define
|
||||
<literal>USES= qmake</literal> along with
|
||||
<literal>USE_QT<replaceable>x</replaceable></literal>. Note
|
||||
that <literal>USES= qmake</literal> already implies a build
|
||||
dependency on qmake, therefore the qmake component can be
|
||||
omitted from
|
||||
<literal>USE_QT<replaceable>x</replaceable></literal>.
|
||||
Similar to <link
|
||||
<literal>USE_QT</literal>. <literal>USES= qmake</literal>
|
||||
already implies a build dependency on qmake, therefore the
|
||||
qmake component can be omitted from
|
||||
<literal>USE_QT</literal>. Similar to <link
|
||||
linkend="using-cmake"><application>CMake</application></link>,
|
||||
<application>qmake</application> supports out-of-source
|
||||
builds, which can be enabled by specifying the
|
||||
<literal>outsource</literal> argument (see <link
|
||||
linkend="using-qmake-example"><literal>USES= qmake</literal>
|
||||
example</link>).</para>
|
||||
example</link>). Also see <xref
|
||||
linkend="using-qmake-arguments" />.</para>
|
||||
|
||||
<table frame="none" xml:id="using-qmake-arguments">
|
||||
<title>Possible Arguments for
|
||||
<literal>USES= qmake</literal></title>
|
||||
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Variable</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><literal>no_configure</literal></entry>
|
||||
<entry>Do not add the configure target. This is
|
||||
implied by <literal>HAS_CONFIGURE=yes</literal>
|
||||
and <literal>GNU_CONFIGURE=yes</literal>.
|
||||
It is required when the build only needs the
|
||||
environment setup from
|
||||
<literal>USES= qmake</literal>, but otherwise runs
|
||||
<command>qmake</command> on its own.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><literal>no_env</literal></entry>
|
||||
<entry>Suppress modification of the configure and make
|
||||
environments. It is only required when
|
||||
<command>qmake</command> is used to configure the
|
||||
software and the build fails to understand the
|
||||
environment setup by
|
||||
<literal>USES= qmake</literal>.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><literal>norecursive</literal></entry>
|
||||
<entry>Do not pass the <literal>-recursive</literal>
|
||||
argument to <command>qmake</command>.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><literal>outsource</literal></entry>
|
||||
<entry>Perform an out-of-source build.</entry>
|
||||
</row>
|
||||
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table frame="none" xml:id="using-qmake-variables">
|
||||
<title>Variables for Ports That Use
|
||||
|
@ -2868,7 +2888,7 @@ PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \
|
|||
<thead>
|
||||
<row>
|
||||
<entry>Variable</entry>
|
||||
<entry>Means</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
|
@ -2900,18 +2920,39 @@ PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>When using <literal>USES= qmake</literal>, these
|
||||
settings are deployed:</para>
|
||||
|
||||
<programlisting>CONFIGURE_ARGS+= --with-qt-includes=${QT_INCDIR} \
|
||||
--with-qt-libraries=${QT_LIBDIR} \
|
||||
--with-extra-libs=${LOCALBASE}/lib \
|
||||
--with-extra-includes=${LOCALBASE}/include
|
||||
|
||||
CONFIGURE_ENV+= QTDIR="${QT_PREFIX}" QMAKE="${QMAKE}" \
|
||||
MOC="${MOC}" RCC="${RCC}" UIC="${UIC}" \
|
||||
QMAKESPEC="${QMAKESPEC}"
|
||||
|
||||
PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \
|
||||
QT_LIBDIR=${QT_LIBDIR_REL} \
|
||||
QT_PLUGINDIR=${QT_PLUGINDIR_REL}</programlisting>
|
||||
|
||||
<para>Some configure scripts do not support the arguments above.
|
||||
To suppress modification of <varname>CONFIGURE_ENV</varname>
|
||||
and <varname>CONFIGURE_ARGS</varname>, set
|
||||
<literal>USES= qmake:no_env</literal>.</para>
|
||||
|
||||
<example xml:id="using-qmake-example">
|
||||
<title><literal>USES= qmake</literal> Example</title>
|
||||
|
||||
<para>This snippet demonstrates the use of
|
||||
<application>qmake</application> for a Qt 4 port:</para>
|
||||
|
||||
<programlisting>USES= qmake:outsource
|
||||
USE_QT4= moc_build</programlisting>
|
||||
<programlisting>USES= qmake:outsource qt:4
|
||||
USE_QT= moc_build</programlisting>
|
||||
|
||||
<para>For a Qt 5 port:</para>
|
||||
<programlisting>USES= qmake:outsource
|
||||
USE_QT5= buildtools_build</programlisting>
|
||||
<programlisting>USES= qmake:outsource qt:5
|
||||
USE_QT= buildtools_build</programlisting>
|
||||
</example>
|
||||
|
||||
<para>Qt applications are often written to be cross-platform
|
||||
|
@ -3135,13 +3176,13 @@ USE_QT5= buildtools_build</programlisting>
|
|||
Required KDE components and other dependencies can be
|
||||
determined through configure log.
|
||||
<varname>USE_KDE</varname> does not imply
|
||||
<varname>USE_QT4</varname>. If a port requires some
|
||||
<varname>USE_QT</varname>. If a port requires some
|
||||
Qt 4 components, specify them in
|
||||
<varname>USE_QT4</varname>.</para>
|
||||
<varname>USE_QT</varname>.</para>
|
||||
|
||||
<programlisting>USES= cmake:outsource kde:4
|
||||
<programlisting>USES= cmake:outsource kde:4 qt:4
|
||||
USE_KDE= kdelibs kdeprefix automoc4
|
||||
USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting>
|
||||
USE_QT= moc_build qmake_build rcc_build uic_build</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
@ -3198,9 +3239,9 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting>
|
|||
LXQt libraries. Required LXQt components and
|
||||
other dependencies can be determined from the
|
||||
configure log.</para>
|
||||
<programlisting>USES= cmake:outsource lxqt tar:xz
|
||||
USE_QT5= buildtools_build qmake_build core dbus widgets
|
||||
USE_LXQT= buildtools libfmqt</programlisting>
|
||||
<programlisting>USES= cmake:outsource lxqt qt:5 tar:xz
|
||||
USE_QT= core dbus widgets buildtools_build qmake_build
|
||||
USE_LXQT= buildtools libfmqt</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
|
||||
|
|
|
@ -1381,7 +1381,8 @@ GSSAPI_NONE_CONFIGURE_ON= --without-gssapi</programlisting>
|
|||
<sect1 xml:id="uses-kde">
|
||||
<title><literal>kde</literal></title>
|
||||
|
||||
<para>Possible arguments: <literal>4</literal></para>
|
||||
<para>Possible arguments: <literal>4</literal>,
|
||||
<literal>5</literal></para>
|
||||
|
||||
<para>Add dependency on <application>KDE</application> components.
|
||||
See <xref linkend="using-kde"/> for more information.</para>
|
||||
|
@ -2658,12 +2659,25 @@ USE_PYQT= core doc_build designer_run</programlisting>
|
|||
<title><literal>qmake</literal></title>
|
||||
|
||||
<para>Possible arguments: (none), <literal>norecursive</literal>,
|
||||
<literal>outsource</literal></para>
|
||||
<literal>outsource</literal>, <literal>no_env</literal>,
|
||||
<literal>no_configure</literal></para>
|
||||
|
||||
<para>Uses <application>QMake</application> for configuring. For
|
||||
more information see <xref linkend="using-qmake"/>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="uses-qt">
|
||||
<title><literal>qt</literal></title>
|
||||
|
||||
<para>Possible arguments: <literal>4</literal>,
|
||||
<literal>5</literal>, <literal>no_env</literal></para>
|
||||
|
||||
<para>Add dependency on <application>Qt</application> components.
|
||||
<literal>no_env</literal> is passed directly to
|
||||
<literal>USES= qmake</literal>. See <xref linkend="using-qt"/>
|
||||
for more information.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="uses-readline">
|
||||
<title><literal>readline</literal></title>
|
||||
|
||||
|
|
Loading…
Reference in a new issue