mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-18 19:49:40 +00:00
f6ceca6350
This took quite a lot of time because Qt's own build system underwent several changes in 5.8.0 that took a while to adapt to. And, of course, qt5-webengine is a behemoth that we need to patch like crazy due to its bundling of Chromium. In fact, most of the Chromium patches in qt5-webengine have been imported with no changes from www/chromium@433510 ("www/chromium: update to 56.0.2924.87"). New port: accessibility/qt5-speech Bigger changes to Qt5 ports we had to make: - Qt now allows using a configure.json file to define configuration options and specify configuration checks that can be done when qmake is invoked. However, configure.json checks done in a subdirectory only propagates to subdirectories, and checks elsewhere will fail if all .pro files are being parsed at once (i.e. qmake -recursive), so several ports had to switch to USES=qmake:norecursive along with manual additional qmake invocations in subdirectories in order to work. It's been mentioned in a few places such as Qt's bug tracker that qmake's recursive mode is pretty much deprecated, so we might switch to non-recursive mode by default in the future. - Uses/qmake.mk: Introduce QMAKE_CONFIGURE_ARGS. qmake now accepts arbitrary options such as '-foo' and '-no-bar' at the end of the command-line. They can be specified in QMAKE_CONFIGURE_ARGS. - graphics/qt5-wayland: The port can only be built if graphics/mesa-libs is built with the WAYLAND option, so a corresponding option (off by default) was added to the port. - misc/qt5-doc: Switch to a pre-built documentation tarball. The existing port was not working with Qt 5.9. Instead of trying to fix it, switch to what Gentoo does and fetch a tarball that already contains all documentation so that we do not have to build anything at all. The tarball's name and location in download.qt.io look a bit weird, but it seems to work fine. - www/qt5-webengine: Use binutils from ports, Chromium's GN build system generates a build.ninja that uses ar(1) with the @file syntax that is not supported by BSD ar, so we need to use GNU ar from binutils. - x11-toolkits/qt5-declarative-render2d: This port was merged into the main Qt Declarative repository upstream, and into x11-toolkits/qt5-quick in the ports tree. Changes to other ports we had to make: - biology/ugene: Drop a '#define point "."' that is not present in more recent versions of the port. Defining a macro with such a common name causes build issues with Qt 5.9, which uses |point| as an argument name in methods. - cad/qelectrotech: Fix plist with Qt 5.9. Directories are no longer installed with `cp -f -R', but rather `qmake install qinstall', which does not install %%DATADIR%%/elements/10_electric/20_manufacturers_articles/bosch_rexroth/.directory That's a local file that should not even have been part of the tarball anyway. - chinese/gcin-qt5: Add additional private Qt directories (which should not be used in the first place) to get the port to build with Qt 5.9. - devel/qtcreator: Fix plist with Qt 5.9. Something changed in qdoc and some test classes no longer generate documentation files. - security/keepassx-devel: Import a patch sent upstream almost a year ago to fix the build with Qt 5.9. Thanks to antoine for the exp-run, and tcberner and Laurent Cimon <laurent@nuxi.ca> for landing changes in our qt-5.9 branch. PR: 224849
61 lines
1.8 KiB
Makefile
61 lines
1.8 KiB
Makefile
# $FreeBSD$
|
|
|
|
PORTNAME= core
|
|
DISTVERSION= ${QT5_VERSION}
|
|
CATEGORIES= devel
|
|
PKGNAMEPREFIX= qt5-
|
|
|
|
MAINTAINER= kde@FreeBSD.org
|
|
COMMENT= Qt core non-graphical module
|
|
|
|
LIB_DEPENDS= libicui18n.so:devel/icu \
|
|
libpcre2-posix.so:devel/pcre2
|
|
|
|
USE_GNOME= glib20
|
|
USE_QT5= qmake_build buildtools_build
|
|
QT_DIST= base
|
|
HAS_CONFIGURE= yes
|
|
# Disable (almost) everything to install minimal qconfig.h.
|
|
# -no-feature-* adds QT_NO_* (for features which have no switch or
|
|
# that need to be detected).
|
|
CONFIGURE_ARGS= -no-accessibility -no-gif -no-libpng -no-libjpeg \
|
|
-no-openssl -no-gui -no-widgets -no-cups \
|
|
-no-iconv -no-dbus -no-opengl \
|
|
-no-egl -no-evdev \
|
|
-no-fontconfig -no-freetype -no-gtk -no-harfbuzz \
|
|
-no-libudev -no-xcb -no-xinput2 -no-xkb -no-xcb-xlib \
|
|
-no-xkbcommon -no-libinput
|
|
USE_LDCONFIG= ${PREFIX}/${QT_LIBDIR_REL}
|
|
|
|
BUILD_WRKSRC= ${WRKSRC}/src/corelib
|
|
INSTALL_WRKSRC= ${BUILD_WRKSRC}
|
|
|
|
QT_DEFINES= GLIB
|
|
QT_CONFIG= glib icu
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
post-configure:
|
|
.for d in src/tools/bootstrap src/tools/qfloat16-tables src/corelib
|
|
${MKDIR} ${WRKSRC}/${d}
|
|
cd ${WRKSRC}/${d} && ${SETENV} ${QMAKE_ENV} ${_QMAKE} ${QMAKE_ARGS} ${WRKSRC}/${d}
|
|
.endfor
|
|
|
|
pre-build:
|
|
.for d in src/tools/bootstrap src/tools/qfloat16-tables src/corelib
|
|
${MKDIR} ${WRKSRC}/${d}
|
|
cd ${WRKSRC}/${d} && \
|
|
${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} \
|
|
${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET}
|
|
.endfor
|
|
|
|
post-install:
|
|
# Allow qconfig.h to be customized by single ports.
|
|
${AWK} 'BEGIN{print "#include <QtCore/qconfig-modules.h>"}{print}' \
|
|
${STAGEDIR}${PREFIX}/${QT_INCDIR_REL}/QtCore/qconfig.h > ${WRKDIR}/qconfig.h
|
|
# Cleanup qconfig.h and remove stray '#define QT_NO_FOO'
|
|
${REINPLACE_CMD} "/#define QT_NO_/d" ${WRKDIR}/qconfig.h
|
|
${MV} ${WRKDIR}/qconfig.h ${STAGEDIR}${PREFIX}/${QT_INCDIR_REL}/QtCore/qconfig.h
|
|
|
|
.include <bsd.port.post.mk>
|