From owner-svn-doc-head@freebsd.org Thu Oct 11 06:30:20 2018 Return-Path: Delivered-To: svn-doc-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7C0110D3EF4; Thu, 11 Oct 2018 06:30:20 +0000 (UTC) (envelope-from tobik@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 57FA389200; Thu, 11 Oct 2018 06:30:20 +0000 (UTC) (envelope-from tobik@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 494554B90; Thu, 11 Oct 2018 06:30:20 +0000 (UTC) (envelope-from tobik@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w9B6UKAs068364; Thu, 11 Oct 2018 06:30:20 GMT (envelope-from tobik@FreeBSD.org) Received: (from tobik@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w9B6UJZs068362; Thu, 11 Oct 2018 06:30:19 GMT (envelope-from tobik@FreeBSD.org) Message-Id: <201810110630.w9B6UJZs068362@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tobik set sender to tobik@FreeBSD.org using -f From: Tobias Kortkamp Date: Thu, 11 Oct 2018 06:30:19 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r52352 - in head/en_US.ISO8859-1/books/porters-handbook: special uses X-SVN-Group: doc-head X-SVN-Commit-Author: tobik X-SVN-Commit-Paths: in head/en_US.ISO8859-1/books/porters-handbook: special uses X-SVN-Commit-Revision: 52352 X-SVN-Commit-Repository: doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-head@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: SVN commit messages for the doc tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Oct 2018 06:30:20 -0000 Author: tobik (ports committer) Date: Thu Oct 11 06:30:19 2018 New Revision: 52352 URL: https://svnweb.freebsd.org/changeset/doc/52352 Log: Introduce USES=qt to the Porter's Handbook Approved by: mat, tcberner Differential Revision: https://reviews.freebsd.org/D17429 Modified: head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml head/en_US.ISO8859-1/books/porters-handbook/uses/chapter.xml Modified: head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml Wed Oct 10 13:29:03 2018 (r52351) +++ head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml Thu Oct 11 06:30:19 2018 (r52352) @@ -2548,14 +2548,13 @@ GLIB_SCHEMAS= org.regexxer.gschema.xml The Ports Collection provides support for Qt 4 and Qt 5 frameworks with - USE_QTx, + USES+=qt:x, where x is 4 or 5. - Set USE_QTx - 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. + Set USE_QT 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. The Qt framework exports a number of variables which can be used by ports, some of them listed below: @@ -2566,12 +2565,6 @@ GLIB_SCHEMAS= org.regexxer.gschema.xml - QT_PREFIX - Set to the path where Qt was installed - (${LOCALBASE}). - - - QMAKE Full path to qmake binary. @@ -2616,34 +2609,13 @@ GLIB_SCHEMAS= org.regexxer.gschema.xml - When using the Qt framework, these - 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+= 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} - - Some configure scripts do not support the arguments above. - To suppress modification ofCONFIGURE_ENV - and CONFIGURE_ARGS, set - QT_NONSTANDARD. Component Selection Individual Qt tool and library dependencies must be - specified in - USE_QTx. + specified in USE_QT. Every component can be suffixed with _build or _run, the suffix indicating whether the dependency on the component is @@ -2657,7 +2629,7 @@ PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \ listed in _USE_QT_ALL, _USE_QT4_ONLY, and _USE_QT5_ONLY in - /usr/ports/Mk/bsd.qt.mk): + /usr/ports/Mk/Uses/qt.mk): Available Qt Library Components @@ -2835,31 +2807,79 @@ PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \ only needed at buildtime, thus they are specified with the _build suffix: - USE_QT4= gui moc_build qmake_build rcc_build uic_build + USES= qt:4 +USE_QT= gui moc_build qmake_build rcc_build uic_build Using <command>qmake</command> - If the application provides a qmake project file (*.pro), define USES= qmake along with - USE_QTx. Note - that USES= qmake already implies a build - dependency on qmake, therefore the qmake component can be - omitted from - USE_QTx. - Similar to USE_QT. USES= qmake + already implies a build dependency on qmake, therefore the + qmake component can be omitted from + USE_QT. Similar to CMake, qmake supports out-of-source builds, which can be enabled by specifying the outsource argument (see USES= qmake - example). + example). Also see . +
+ Possible Arguments for + <literal>USES= qmake</literal> + + + + + Variable + Description + + + + + + no_configure + Do not add the configure target. This is + implied by HAS_CONFIGURE=yes + and GNU_CONFIGURE=yes. + It is required when the build only needs the + environment setup from + USES= qmake, but otherwise runs + qmake on its own. + + + + no_env + Suppress modification of the configure and make + environments. It is only required when + qmake is used to configure the + software and the build fails to understand the + environment setup by + USES= qmake. + + + + norecursive + Do not pass the -recursive + argument to qmake. + + + + outsource + Perform an out-of-source build. + + + + +
+ Variables for Ports That Use <command>qmake</command> @@ -2868,7 +2888,7 @@ PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \ Variable - Means + Description @@ -2900,18 +2920,39 @@ PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \
+ When using USES= qmake, these + 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+= 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} + + Some configure scripts do not support the arguments above. + To suppress modification of CONFIGURE_ENV + and CONFIGURE_ARGS, set + USES= qmake:no_env. + <literal>USES= qmake</literal> Example This snippet demonstrates the use of qmake for a Qt 4 port: - USES= qmake:outsource -USE_QT4= moc_build + USES= qmake:outsource qt:4 +USE_QT= moc_build For a Qt 5 port: - USES= qmake:outsource -USE_QT5= buildtools_build + USES= qmake:outsource qt:5 +USE_QT= buildtools_build Qt applications are often written to be cross-platform @@ -3135,13 +3176,13 @@ USE_QT5= buildtools_build Required KDE components and other dependencies can be determined through configure log. USE_KDE does not imply - USE_QT4. If a port requires some + USE_QT. If a port requires some Qt 4 components, specify them in - USE_QT4. + USE_QT. - USES= cmake:outsource kde:4 + USES= cmake:outsource kde:4 qt:4 USE_KDE= kdelibs kdeprefix automoc4 -USE_QT4= moc_build qmake_build rcc_build uic_build +USE_QT= moc_build qmake_build rcc_build uic_build
@@ -3198,9 +3239,9 @@ USE_QT4= moc_build qmake_build rcc_build uic_build - USES= cmake:outsource lxqt tar:xz -USE_QT5= buildtools_build qmake_build core dbus widgets -USE_LXQT= buildtools libfmqt + USES= cmake:outsource lxqt qt:5 tar:xz +USE_QT= core dbus widgets buildtools_build qmake_build +USE_LXQT= buildtools libfmqt Modified: head/en_US.ISO8859-1/books/porters-handbook/uses/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/porters-handbook/uses/chapter.xml Wed Oct 10 13:29:03 2018 (r52351) +++ head/en_US.ISO8859-1/books/porters-handbook/uses/chapter.xml Thu Oct 11 06:30:19 2018 (r52352) @@ -1381,7 +1381,8 @@ GSSAPI_NONE_CONFIGURE_ON= --without-gssapi <literal>kde</literal> - Possible arguments: 4 + Possible arguments: 4, + 5 Add dependency on KDE components. See for more information. @@ -2658,10 +2659,23 @@ USE_PYQT= core doc_build designer_run <literal>qmake</literal> Possible arguments: (none), norecursive, - outsource + outsource, no_env, + no_configure Uses QMake for configuring. For more information see . + + + + <literal>qt</literal> + + Possible arguments: 4, + 5, no_env + + Add dependency on Qt components. + no_env is passed directly to + USES= qmake. See + for more information.