pkgsrc/x11/qt5-qtbase/Makefile

265 lines
8.7 KiB
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.105 2020/11/29 22:33:21 dbj Exp $
DISTNAME= qtbase-everywhere-src-${QTVERSION}
PKGNAME= qt5-qtbase-${QTVERSION}
PKGREVISION= 1
COMMENT= C++ X GUI toolkit
.include "../../x11/qt5-qtbase/Makefile.common"
HAS_CONFIGURE= yes
CONFIGURE_ARGS+= -prefix "${QTPREFIX}"
CONFIGURE_ARGS+= -I "${PREFIX}/include"
CONFIGURE_ARGS+= -L "${PREFIX}/lib"
CONFIGURE_ARGS+= -opensource -confirm-license
CONFIGURE_ARGS+= -sysconfdir "${PKG_SYSCONFDIR}/xdg"
CONFIGURE_ARGS+= -accessibility
CONFIGURE_ARGS+= -icu
CONFIGURE_ARGS+= -libproxy
CONFIGURE_ARGS+= -openssl-linked
CONFIGURE_ARGS+= -nomake examples
CONFIGURE_ARGS+= -nomake tests
CONFIGURE_ARGS+= -no-pch
CONFIGURE_ARGS+= -no-sql-db2
CONFIGURE_ARGS+= -no-sql-ibase
CONFIGURE_ARGS+= -no-sql-mysql
CONFIGURE_ARGS+= -no-sql-oci
CONFIGURE_ARGS+= -no-sql-odbc
CONFIGURE_ARGS+= -no-sql-psql
CONFIGURE_ARGS+= -no-sql-sqlite2
CONFIGURE_ARGS+= -no-sql-tds
CONFIGURE_ARGS+= -no-strip
CONFIGURE_ARGS+= -no-tslib
CONFIGURE_ARGS+= -no-vulkan
CONFIGURE_ARGS+= -no-use-gold-linker
CONFIGURE_ARGS+= -pkg-config
CONFIGURE_ARGS+= -release
CONFIGURE_ARGS+= -shared
CONFIGURE_ARGS+= -system-harfbuzz
CONFIGURE_ARGS+= -system-libjpeg
CONFIGURE_ARGS+= -system-libpng
CONFIGURE_ARGS+= -system-pcre
CONFIGURE_ARGS+= -system-sqlite
CONFIGURE_ARGS+= -system-zlib
.if defined(MAKE_JOBS)
. if !defined(MAKE_JOBS_SAFE) || empty(MAKE_JOBS_SAFE:M[nN][oO])
CONFIGURE_ENV+= MAKEFLAGS=-j${MAKE_JOBS}
. endif
.endif
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} != "Darwin"
CONFIGURE_ARGS+= -fontconfig
QMAKE_CONF= qmake.conf
. if ${OPSYS} != "SunOS" && \
(!empty(MACHINE_ARCH:Mi386) || !empty(MACHINE_ARCH:Mx86_64))
CONFIGURE_ARGS+= -reduce-relocations
. endif
.else
CONFIGURE_ARGS+= -no-rpath # avoid @rpath in dylibs
QMAKE_CONF= qmake.conf.mac
.endif
PLIST_VARS+= egl
.include "../../mk/compiler.mk"
.if ${OPSYS} == "SunOS"
. if !empty(PKGSRC_COMPILER:Mgcc) || !empty(PKGSRC_COMPILER:Mclang)
. if ${ABI:U} == "64"
CONFIGURE_ARGS+= -platform solaris-g++-64
. else
CONFIGURE_ARGS+= -platform solaris-g++
. endif
. else
. if ${ABI:U} == "64"
CONFIGURE_ARGS+= -platform solaris-cc-64
. else
CONFIGURE_ARGS+= -platform solaris-cc
. endif
. endif
NETWORK_LIBS= -lsocket -lnsl
.elif ${OPSYS} == "Interix"
CONFIGURE_ARGS+= -platform interix-g++
CFLAGS+= -I/usr/local/include/bind
LDFLAGS+= -L/usr/local/lib/bind -lbind
BUILDLINK_PASSTHRU_DIRS+= /usr/local/include/bind /usr/local/lib/bind
SYS_LIBS= -lbind -ldb -ldl
.elif ${OPSYS} == "DragonFly"
CONFIGURE_ARGS+= -platform freebsd-g++
LDFLAGS+= -lexecinfo
.elif ${OPSYS} == "Darwin"
CONFIGURE_ARGS+= -platform macx-clang
CONFIGURE_ARGS+= -no-framework
qt5: updated to 5.14.0 New Features in Qt 5.14 Qt 3D Module Overhauled the threading architecture. This includes the removal of the aspect thread. Overhauled the frontend/backend node sync. Enabled QTransform to have access to the world matrix. Introduced Scene3DView. Scene3D is now in sync with QtQuick, and can render as an underlay without an FBO. Qt Bluetooth Module Introduced a new, optional Win32 backend with support for Windows 7 and 8. This backend is not built by default, nor is it part of the pre-built packages. QLowEnergyController: Introduced AuthorizationError. Added the ability to include multiple manufacturer data entries per manufacturer ID. Qt Core Module Added support in QCalendar for calendars other than Gregorian, by implementation of suitable backends. Added backends to implement the Gregorian, Jalali (Persian), Islamic Civil, Milankovic, and Julian calendars. We look forward to other contributions. Added QColorConstants, a namespace providing constexpr QColor instances that don't cost any runtime overhead. Qt GUI Module Updated High-DPI support: Introduced non-integer scale factors (for example, a scale factor of 150%) that applications can opt-in to use. Use QGuiApplication::highDpiScaleFactorRoundingPolicy or QT_SCALE_FACTOR_ROUNDING_POLICY to set the rounding policy. Added the QT_ENABLE_HIGHDPI_SCALING environment variable, enabling high-DPI scaling based on display DPI. This replaces QT_AUTO_SCREEN_SCALE_FACTOR (now deprecated), and corresponds to the Qt::AA_EnableHighDpiScaling application attribute. Added cross-platform support for the QT_FONT_DPI environment variable, for the purpose of developing and testing with specific DPI values. Added color-space support for images; reading and writing color-spaces from JPEG, PNG, WebP and TIFF images, and performing color-space transformation on images. Improvements to QTextDocument and QTextTable styling: Added per-edge border styling via QTextTableCellFormat. Added border-collapse mode. Added support for (partial) HTML table style import and export. Added support for reading and writing Markdown format to QTextDocument, as an alternative to HTML. Qt Multimedia Module Added QVideoFrame::Format_YUV422P. Introduced support for the GStreamer OpenGL plugin. Qt Network Module Introduced the HTTP/2 Configuration API. Introduced network connectivity monitoring. Added support for Kerberos proxy authentication. Qt QML Module Added qmlRegisterSingletonInstance() function. This allows to expose a QObject as a singleton to QML, without having to create a factory function as required by qmlRegisterSingletonType(). It is meant as a type safe replacement of setContextProperty() in common usages. Added qmlRegisterAnonymousType() as a replacement for qmlRegisterType(). It allows to specify the URI and major version, which enables better tooling support. Added an experimental -U option to qmllint. When set, access to unqualified identifiers generates warnings. Qt Quick Module Added a preview of the graphics API independent scenegraph renderer as an opt-in feature. This allows running qualifying Qt Quick applications on top of Vulkan, Metal, or Direct3D 11, instead of OpenGL. Currently supported platforms: Windows 10 (Direct3D) Linux with X11/xcb (Vulkan) macOS (Metal or Vulkan with MoltenVK) Android 7.0+ (Vulkan) Added support for the Markdown format (including CommonMark and GitHub dialects) to Text and TextEdit as an alternative to HTML. This includes the GitHub checklist extension, allowing to toggle checkboxes in a TextEdit. Switched TextEdit to use an I-beam cursor by default, and a pointing-hand cursor when hovering over a checkbox or a link. Default cursors can be overridden. Added WheelHandler, an event handler for the mouse wheel, and optionally for emulated mouse wheel events coming from a trackpad. Added BoundaryRule in Qt.labs.animation: a PropertyValueInterceptor that restricts the range of values a numeric property can have, applies "resistance" when overshooting a value, and provides the ability to animate it back to its normal range. It's particularly useful in combination with WheelHandler, providing physics similar to Flickable. Added currentFrame and frameCount properties to Image and BorderImage, just as AnimatedImage has; for example, this allows choosing an individual icon from an .ICO file that contains multiple icons. Added PathPolyline and PathMultiline as additional ways of drawing and/or filling arbitrary polygons and sets of polygons with Qt Quick Shapes. Qt Serial Bus Module Added operators to compare QCanBusDevice::Filter for equality or inequality. Added the QCanBusDevice::OperationError and QCanBusDevice::TimeoutError codes to signal operation and timeout errors. Added the QCanBusDevice::busStatus() function to query the bus status from the CAN bus device. Added the QCanBusDevice::resetController() function to release the CAN controller from bus off state. SocketCAN: Added the configuration parameter QCanBusDevice::ProtocolKey to use another protocol inside the protocol family PF_CAN. SocketCAN: If libsocketcan is available, the CAN bus bitrate can be retrieved and set at runtime. PeakCAN: Added support for PCAN-USB devices on macOS by using the MacCAN library. Exposed the underlying QIODevice used for Modbus communication. This enables, for example, setting the serial port hardware flow control (RTS/CTS). Qt Test Module Introduced initMain() function to perform any initialization that must happen before QApplication exists. Qt WebEngine Module Updated to Chromium 77. Added a new API to control the life-cycle of QWebEnginePage. Qt Widgets Module Added support for the Markdown format (including CommonMark and GitHub dialects) to QTextEdit and QTextBrowser as an alternative to HTML. This includes the GitHub checklist extension, allowing to toggle checkboxes if the widget is editable. QTextBrowser::setSource() detects Markdown based on the file extension.
2020-01-21 21:25:36 +01:00
# pkgsrc has a patch to avoid using SDK, but the configure
# logic gets confused if it can't find the header files
# so give it a direct path to them if they aren't installed
# in /usr/include
. if !exists(/usr/include)
CONFIGURE_ARGS+= -I "$$(xcrun --show-sdk-path)"/usr/include
. endif
. if exists(/usr/lib/libresolv.dylib)
LDFLAGS+= -lresolv
. endif
.elif ${OPSYS} == "Linux"
LDFLAGS+= -ldl
.elif ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD"
. if exists(/usr/lib/libexecinfo.so)
LDFLAGS+= -lexecinfo
. endif
LDFLAGS.FreeBSD+= -lutil
.endif
REPLACE_PERL+= bin/fixqt4headers.pl
REPLACE_PERL+= bin/syncqt.pl
REPLACE_PERL+= mkspecs/features/data/unix/findclasslist.pl
PTHREAD_OPTS+= require
UNLIMIT_RESOURCES= datasize
BUILDLINK_PASSTHRU_DIRS+= ${QTPREFIX}
BUILD_TARGET= sub-src
INSTALLATION_DIRS= ${QTPREFIX}/bin lib/pkgconfig
INSTALL_ENV+= INSTALL_ROOT=${DESTDIR}
CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/echoplugin/echoplugin.pro
CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/echoplugin/plugin/plugin.pro
CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/plugandpaint/plugandpaint.pro
CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/plugandpaintplugins/basictools/basictools.pro
CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/plugandpaintplugins/extrafilters/extrafilters.pro
CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/styleplugin/plugin/plugin.pro
CHECK_INTERPRETER_SKIP+= qt5/mkspecs/features/data/mac/objc_namespace.sh
CHECK_INTERPRETER_SKIP+= qt5/mkspecs/features/uikit/device_destinations.sh
CHECK_INTERPRETER_SKIP+= qt5/mkspecs/features/uikit/devices.py
CHECK_INTERPRETER_SKIP+= qt5/mkspecs/macx-ios-clang/rename_main.sh
SUBST_CLASSES+= opt
SUBST_STAGE.opt= pre-configure
SUBST_MESSAGE.opt= Removing some Qt5 default compiler flags.
SUBST_FILES.opt= mkspecs/common/gcc-base.conf
SUBST_SED.opt= -e 's,-O[s23],,'
SUBST_CLASSES.SunOS+= vscript
SUBST_STAGE.vscript= pre-configure
SUBST_FILES.vscript= mkspecs/common/gcc-base-unix.conf
SUBST_SED.vscript= -e '/QMAKE_LFLAGS_VERSION_SCRIPT/d'
SUBST_CLASSES+= path
SUBST_STAGE.path= pre-configure
SUBST_MESSAGE.path= Add to default XDG path.
SUBST_FILES.path= src/corelib/io/qstandardpaths_unix.cpp
SUBST_VARS.path= PREFIX
BROKEN_FILES= qt5/mkspecs/modules/qt_lib_bootstrap_private.pri
BROKEN_FILES1= qt5/mkspecs/qmodule.pri
PC_FILES= Qt5Concurrent.pc Qt5Core.pc \
Qt5Gui.pc Qt5Network.pc Qt5OpenGL.pc \
Qt5OpenGLExtensions.pc \
Qt5PrintSupport.pc Qt5Sql.pc Qt5Test.pc \
Qt5Widgets.pc Qt5Xml.pc
.if ${OPSYS} == "Linux"
QMAKE_EXTRA= QMAKE_PLATFORM += linux
.else
QMAKE_EXTRA=
.endif
COMPILER= gcc
.if !empty(PKGSRC_COMPILER:Mclang)
COMPILER+= clang llvm
.endif
pre-configure:
${SED} -e 's:@PREFIX@:${PREFIX}:g' \
-e 's:@X11BASE@:${X11BASE}:g' \
-e 's:@COMPILER@:${COMPILER:Q}:g' \
-e 's:@CC@:${CC:Q}:g' \
-e 's:@CXX@:${CXX:Q}:g' \
-e 's:@LDFLAGS@:${LDFLAGS:Q}:g' \
-e 's:@CFLAGS@:${CFLAGS:Q}:g' \
-e 's:@CXXFLAGS@:${CXXFLAGS:Q}:g' \
-e 's:@NETWORK_LIBS@:${NETWORK_LIBS:Q}:g' \
-e 's:@SYS_LIBS@:${SYS_LIBS:Q}:g' \
-e 's:@LEX@:${LEX}:g' \
-e 's:@YACC@:${TOOLS_CMDLINE_YACC:Q}:g' \
-e 's:@AR@:${AR:Q}:g' \
-e 's:@MKDIR@:${MKDIR}:g' \
-e 's:@LIBQT@:${LIBQT:Q}:g' \
-e 's:@PTHREAD_LDFLAGS@:${PTHREAD_LDFLAGS:Q}:g' \
-e 's:@PTHREAD_LIBS@:${PTHREAD_LIBS:Q}:g' \
-e 's:@COMPILER_RPATH_FLAG@:${COMPILER_RPATH_FLAG}:g' \
qt5: updated to 5.14.0 New Features in Qt 5.14 Qt 3D Module Overhauled the threading architecture. This includes the removal of the aspect thread. Overhauled the frontend/backend node sync. Enabled QTransform to have access to the world matrix. Introduced Scene3DView. Scene3D is now in sync with QtQuick, and can render as an underlay without an FBO. Qt Bluetooth Module Introduced a new, optional Win32 backend with support for Windows 7 and 8. This backend is not built by default, nor is it part of the pre-built packages. QLowEnergyController: Introduced AuthorizationError. Added the ability to include multiple manufacturer data entries per manufacturer ID. Qt Core Module Added support in QCalendar for calendars other than Gregorian, by implementation of suitable backends. Added backends to implement the Gregorian, Jalali (Persian), Islamic Civil, Milankovic, and Julian calendars. We look forward to other contributions. Added QColorConstants, a namespace providing constexpr QColor instances that don't cost any runtime overhead. Qt GUI Module Updated High-DPI support: Introduced non-integer scale factors (for example, a scale factor of 150%) that applications can opt-in to use. Use QGuiApplication::highDpiScaleFactorRoundingPolicy or QT_SCALE_FACTOR_ROUNDING_POLICY to set the rounding policy. Added the QT_ENABLE_HIGHDPI_SCALING environment variable, enabling high-DPI scaling based on display DPI. This replaces QT_AUTO_SCREEN_SCALE_FACTOR (now deprecated), and corresponds to the Qt::AA_EnableHighDpiScaling application attribute. Added cross-platform support for the QT_FONT_DPI environment variable, for the purpose of developing and testing with specific DPI values. Added color-space support for images; reading and writing color-spaces from JPEG, PNG, WebP and TIFF images, and performing color-space transformation on images. Improvements to QTextDocument and QTextTable styling: Added per-edge border styling via QTextTableCellFormat. Added border-collapse mode. Added support for (partial) HTML table style import and export. Added support for reading and writing Markdown format to QTextDocument, as an alternative to HTML. Qt Multimedia Module Added QVideoFrame::Format_YUV422P. Introduced support for the GStreamer OpenGL plugin. Qt Network Module Introduced the HTTP/2 Configuration API. Introduced network connectivity monitoring. Added support for Kerberos proxy authentication. Qt QML Module Added qmlRegisterSingletonInstance() function. This allows to expose a QObject as a singleton to QML, without having to create a factory function as required by qmlRegisterSingletonType(). It is meant as a type safe replacement of setContextProperty() in common usages. Added qmlRegisterAnonymousType() as a replacement for qmlRegisterType(). It allows to specify the URI and major version, which enables better tooling support. Added an experimental -U option to qmllint. When set, access to unqualified identifiers generates warnings. Qt Quick Module Added a preview of the graphics API independent scenegraph renderer as an opt-in feature. This allows running qualifying Qt Quick applications on top of Vulkan, Metal, or Direct3D 11, instead of OpenGL. Currently supported platforms: Windows 10 (Direct3D) Linux with X11/xcb (Vulkan) macOS (Metal or Vulkan with MoltenVK) Android 7.0+ (Vulkan) Added support for the Markdown format (including CommonMark and GitHub dialects) to Text and TextEdit as an alternative to HTML. This includes the GitHub checklist extension, allowing to toggle checkboxes in a TextEdit. Switched TextEdit to use an I-beam cursor by default, and a pointing-hand cursor when hovering over a checkbox or a link. Default cursors can be overridden. Added WheelHandler, an event handler for the mouse wheel, and optionally for emulated mouse wheel events coming from a trackpad. Added BoundaryRule in Qt.labs.animation: a PropertyValueInterceptor that restricts the range of values a numeric property can have, applies "resistance" when overshooting a value, and provides the ability to animate it back to its normal range. It's particularly useful in combination with WheelHandler, providing physics similar to Flickable. Added currentFrame and frameCount properties to Image and BorderImage, just as AnimatedImage has; for example, this allows choosing an individual icon from an .ICO file that contains multiple icons. Added PathPolyline and PathMultiline as additional ways of drawing and/or filling arbitrary polygons and sets of polygons with Qt Quick Shapes. Qt Serial Bus Module Added operators to compare QCanBusDevice::Filter for equality or inequality. Added the QCanBusDevice::OperationError and QCanBusDevice::TimeoutError codes to signal operation and timeout errors. Added the QCanBusDevice::busStatus() function to query the bus status from the CAN bus device. Added the QCanBusDevice::resetController() function to release the CAN controller from bus off state. SocketCAN: Added the configuration parameter QCanBusDevice::ProtocolKey to use another protocol inside the protocol family PF_CAN. SocketCAN: If libsocketcan is available, the CAN bus bitrate can be retrieved and set at runtime. PeakCAN: Added support for PCAN-USB devices on macOS by using the MacCAN library. Exposed the underlying QIODevice used for Modbus communication. This enables, for example, setting the serial port hardware flow control (RTS/CTS). Qt Test Module Introduced initMain() function to perform any initialization that must happen before QApplication exists. Qt WebEngine Module Updated to Chromium 77. Added a new API to control the life-cycle of QWebEnginePage. Qt Widgets Module Added support for the Markdown format (including CommonMark and GitHub dialects) to QTextEdit and QTextBrowser as an alternative to HTML. This includes the GitHub checklist extension, allowing to toggle checkboxes if the widget is editable. QTextBrowser::setSource() detects Markdown based on the file extension.
2020-01-21 21:25:36 +01:00
-e 's:@QMAKE_RANLIB@:${RANLIB}:g' \
-e 's:@QMAKE_EXTRA@:${QMAKE_EXTRA:Q}:g' \
${FILESDIR}/${QMAKE_CONF} > ${WRKSRC}/qmake.conf
for dir in ${WRKSRC}/mkspecs/*; do \
cp ${WRKSRC}/qmake.conf $${dir}; \
rm -f $${dir}/*.orig; \
done
${RM} -f ${WRKSRC}/mkspecs/features/mac/default_pre.prf
${RM} -f ${WRKSRC}/mkspecs/features/mac/default_post.prf
.include "options.mk"
post-install:
.for i in ${PC_FILES}
cd ${DESTDIR}${PREFIX}/lib/pkgconfig && \
${LN} -f -s ${QTPREFIX}/lib/pkgconfig/${i} ${i}
.endfor
cd ${WRKSRC} && env ${MAKE_ENV} ${INSTALL_ENV} \
${MAKE_PROGRAM} install_mkspecs
# The pri file has WRKSRC in it.
${SED} -e 's,${WRKSRC}/bin/qmake,${QTDIR}/bin/qmake,g' \
${DESTDIR}${PREFIX}/${BROKEN_FILES} \
> ${DESTDIR}${PREFIX}/${BROKEN_FILES}.1
${MV} -f ${DESTDIR}${PREFIX}/${BROKEN_FILES}.1 \
${DESTDIR}${PREFIX}/${BROKEN_FILES}
${SED} -e 's,PKG_CONFIG_EXECUTABLE = .*,PKG_CONFIG_EXECUTABLE = ${TOOLS_PATH.pkg-config},' \
${DESTDIR}${PREFIX}/${BROKEN_FILES1} \
> ${DESTDIR}${PREFIX}/${BROKEN_FILES1}.1
${MV} -f ${DESTDIR}${PREFIX}/${BROKEN_FILES1}.1 \
${DESTDIR}${PREFIX}/${BROKEN_FILES1}
qt5: updated to 5.14.0 New Features in Qt 5.14 Qt 3D Module Overhauled the threading architecture. This includes the removal of the aspect thread. Overhauled the frontend/backend node sync. Enabled QTransform to have access to the world matrix. Introduced Scene3DView. Scene3D is now in sync with QtQuick, and can render as an underlay without an FBO. Qt Bluetooth Module Introduced a new, optional Win32 backend with support for Windows 7 and 8. This backend is not built by default, nor is it part of the pre-built packages. QLowEnergyController: Introduced AuthorizationError. Added the ability to include multiple manufacturer data entries per manufacturer ID. Qt Core Module Added support in QCalendar for calendars other than Gregorian, by implementation of suitable backends. Added backends to implement the Gregorian, Jalali (Persian), Islamic Civil, Milankovic, and Julian calendars. We look forward to other contributions. Added QColorConstants, a namespace providing constexpr QColor instances that don't cost any runtime overhead. Qt GUI Module Updated High-DPI support: Introduced non-integer scale factors (for example, a scale factor of 150%) that applications can opt-in to use. Use QGuiApplication::highDpiScaleFactorRoundingPolicy or QT_SCALE_FACTOR_ROUNDING_POLICY to set the rounding policy. Added the QT_ENABLE_HIGHDPI_SCALING environment variable, enabling high-DPI scaling based on display DPI. This replaces QT_AUTO_SCREEN_SCALE_FACTOR (now deprecated), and corresponds to the Qt::AA_EnableHighDpiScaling application attribute. Added cross-platform support for the QT_FONT_DPI environment variable, for the purpose of developing and testing with specific DPI values. Added color-space support for images; reading and writing color-spaces from JPEG, PNG, WebP and TIFF images, and performing color-space transformation on images. Improvements to QTextDocument and QTextTable styling: Added per-edge border styling via QTextTableCellFormat. Added border-collapse mode. Added support for (partial) HTML table style import and export. Added support for reading and writing Markdown format to QTextDocument, as an alternative to HTML. Qt Multimedia Module Added QVideoFrame::Format_YUV422P. Introduced support for the GStreamer OpenGL plugin. Qt Network Module Introduced the HTTP/2 Configuration API. Introduced network connectivity monitoring. Added support for Kerberos proxy authentication. Qt QML Module Added qmlRegisterSingletonInstance() function. This allows to expose a QObject as a singleton to QML, without having to create a factory function as required by qmlRegisterSingletonType(). It is meant as a type safe replacement of setContextProperty() in common usages. Added qmlRegisterAnonymousType() as a replacement for qmlRegisterType(). It allows to specify the URI and major version, which enables better tooling support. Added an experimental -U option to qmllint. When set, access to unqualified identifiers generates warnings. Qt Quick Module Added a preview of the graphics API independent scenegraph renderer as an opt-in feature. This allows running qualifying Qt Quick applications on top of Vulkan, Metal, or Direct3D 11, instead of OpenGL. Currently supported platforms: Windows 10 (Direct3D) Linux with X11/xcb (Vulkan) macOS (Metal or Vulkan with MoltenVK) Android 7.0+ (Vulkan) Added support for the Markdown format (including CommonMark and GitHub dialects) to Text and TextEdit as an alternative to HTML. This includes the GitHub checklist extension, allowing to toggle checkboxes in a TextEdit. Switched TextEdit to use an I-beam cursor by default, and a pointing-hand cursor when hovering over a checkbox or a link. Default cursors can be overridden. Added WheelHandler, an event handler for the mouse wheel, and optionally for emulated mouse wheel events coming from a trackpad. Added BoundaryRule in Qt.labs.animation: a PropertyValueInterceptor that restricts the range of values a numeric property can have, applies "resistance" when overshooting a value, and provides the ability to animate it back to its normal range. It's particularly useful in combination with WheelHandler, providing physics similar to Flickable. Added currentFrame and frameCount properties to Image and BorderImage, just as AnimatedImage has; for example, this allows choosing an individual icon from an .ICO file that contains multiple icons. Added PathPolyline and PathMultiline as additional ways of drawing and/or filling arbitrary polygons and sets of polygons with Qt Quick Shapes. Qt Serial Bus Module Added operators to compare QCanBusDevice::Filter for equality or inequality. Added the QCanBusDevice::OperationError and QCanBusDevice::TimeoutError codes to signal operation and timeout errors. Added the QCanBusDevice::busStatus() function to query the bus status from the CAN bus device. Added the QCanBusDevice::resetController() function to release the CAN controller from bus off state. SocketCAN: Added the configuration parameter QCanBusDevice::ProtocolKey to use another protocol inside the protocol family PF_CAN. SocketCAN: If libsocketcan is available, the CAN bus bitrate can be retrieved and set at runtime. PeakCAN: Added support for PCAN-USB devices on macOS by using the MacCAN library. Exposed the underlying QIODevice used for Modbus communication. This enables, for example, setting the serial port hardware flow control (RTS/CTS). Qt Test Module Introduced initMain() function to perform any initialization that must happen before QApplication exists. Qt WebEngine Module Updated to Chromium 77. Added a new API to control the life-cycle of QWebEnginePage. Qt Widgets Module Added support for the Markdown format (including CommonMark and GitHub dialects) to QTextEdit and QTextBrowser as an alternative to HTML. This includes the GitHub checklist extension, allowing to toggle checkboxes if the widget is editable. QTextBrowser::setSource() detects Markdown based on the file extension.
2020-01-21 21:25:36 +01:00
.include "../../archivers/zstd/buildlink3.mk"
.include "../../converters/libiconv/buildlink3.mk"
.include "../../databases/sqlite3/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../devel/glib2/buildlink3.mk"
.include "../../devel/pcre2/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../fonts/harfbuzz/buildlink3.mk"
.include "../../graphics/freetype2/buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../textproc/icu/buildlink3.mk"
.include "../../www/libproxy/buildlink3.mk"
.if ${OPSYS} != "Darwin"
.include "../../fonts/fontconfig/buildlink3.mk"
.include "../../graphics/glu/buildlink3.mk"
Changes 5.5.1: Qt Bluetooth Bluetooth Low Energy API final release (5.4 was featuring tech preview). Bluetooth Low Energy Support for Android (requires Android v18+) added. Bluetooth Classic and Low Energy support for iOS and OS X. Qt Core You can now have Q_PROPERTY and Q_INVOKABLE within a Q_GADGET, and there is a way to query the QMetaObject of such gadget using the QMetaTYpe system. Added Q_ENUM to replace Q_ENUMS which allow to get a QMetaEnum at compile time using QMetaEnum::fromType<T>. Such enums are now automatically registered as metatype, and can be converted to string within QVariant, or are printed as string by qDebug() Qt GUI Windows packages are all built with -opengl dynamic. No OpenGL-only or ANGLE-only builds are provided anymore. On Windows the OpenGL implementation to use can now be configured based on the GPU vendor and driver version using JSON configuration files. This allows shipping fine-grained card and driver blacklists with the apps, when necessary. QOpenGLWidget is now supported in iOS. QImage: 8-bit alpha map and grayscale formats. QImageReader: EXIF orientation can now be read though the transformation method, and applied on read to JPEGs if wanted. Qt Multimedia GStreamer 1.0 support. Note that the default is still 0.10. 1.0 support can be enabled by configuring Qt with '-gstreamer 1.0'. New video filtering framework to integrate frameworks like OpenCV or compute APIs such as OpenCL or CUDA with VideoOutput elements. New API to control camera viewfinder settings Improved camera support on iOS (focus, zoom, exposure, viewfinder/image settings) The QML MediaPlayer is now rendered in an OpenGL texture on iOS. This means VideoOutput supports advanced transformation, shader effects and doesn't have to be always on top of other items anymore. Qt NFC Neard based backend for Linux added. Qt Network New SSL back-end for iOS and OS X based on Secure Transport. Note that in Qt 5.6 this will become the default SSL: back-end on these platforms. Support for libproxy Support for TLS PSK ciphersuites Support for elliptic curve certificates Ability to select specific curves when using elliptic curve ciphersuites. QPA Added support for the Raspberry Pi 2. Added support for the ODROID-XU3. On supported desktops, the xcb plugin now uses the D-Bus based org.kde.StatusNotifier protocol for system tray icons, and org.freedesktop.Notifications for notifications. KMS/DRM backend for EGLFS. This replaces the now deprecated KMS platform plugin. It allows running apps with eglfs on the console on systems with Mesa and devices that come with drm support. EGLFS has a plugin-based backend mechanism in addition to the existing, statically compiled-in solution. Most compiled-in hooks are converted to be dynamically loaded plugins that are built based on configure time tests. This reduces the reliance on the device makespecs for RPi, i.MX6 and Mali-based devices. Input handling is now unified for EGLFS and LinuxFB, avoiding the need to launch and configure LinuxFB-based apps differently than when using EGLFS. tslib is now better integrated with EGLFS and LinuxFB to provide support for resistive single-touch touchscreens often used in industrial environments. xcb is refactored to move GLX and EGL support into plugins. No more ifdefs, allowing building both backends. Added a TUIO Touch plugin for receiving remote touch events via UDP. Added a libinput plugin. iOS: you can now use QFileDialog to browse system photos using a native image picker dialog by setting directory to QStandardPaths::PicturesLocation. Selected photos can be loaded using QFile. Qt QML It is now possible to conveniently expose custom C++ value types into the JavaScript environment of QML and QJSEngine. Support for JavaScript typed arrays Various performance improvements, notably QJSValue Added convenience qJsEngine(QObject*) getter function. Qt Quick Windows now defaults to the threaded Qt Quick render loop when using desktop OpenGL (opengl32.dll). QQuickWidget is now supported in iOS. QQuickRenderControl supports threaded rendering. Improved behavior of Flickable on OS X trackpads using pixel deltas from native gestures. PinchArea handles native pinch gestures when the OS provides them (so far only on OS X). Otherwise it relies on touch events, as before. Added a smart zoom signal to PinchArea to react to that gesture on an OS X trackpad. MouseArea now has a scrollGestureEnabled property to control whether native scroll gestures from the OS will be handled by the wheel signal handler. Qt Quick Controls Qt Quick Extras (formerly Qt Quick Enterprise Controls) was added under the QtQuick.Extras import. TreeView control for QAbstractItemModel-derived models. Supports QItemSelectionModel selection. Qt WebEngine Updated Chromium snapshot to version 40 WebEngineProfile for control of storage and cache paths and related policies. Added support for javascript Geolocation API with QtLocation as a backend Added API for managing downloading of files Added API for controlling cache and cookie paths and policy Added API for WebEngine settings Added API for injecting user scripts Various experimental QML API has been promoted to public Added QtWebChannel integration API over Chromium IPC Qt WebView Added native implementations for Mac OS X. Added API for running JavaScript (Requires API 19+ on Android). Added API for setting the HTML content. Added API for load status notifications.
2015-10-26 20:03:59 +01:00
. if !empty(MESALIB_SUPPORTS_EGL:Myes)
PLIST.egl= yes
Changes 5.5.1: Qt Bluetooth Bluetooth Low Energy API final release (5.4 was featuring tech preview). Bluetooth Low Energy Support for Android (requires Android v18+) added. Bluetooth Classic and Low Energy support for iOS and OS X. Qt Core You can now have Q_PROPERTY and Q_INVOKABLE within a Q_GADGET, and there is a way to query the QMetaObject of such gadget using the QMetaTYpe system. Added Q_ENUM to replace Q_ENUMS which allow to get a QMetaEnum at compile time using QMetaEnum::fromType<T>. Such enums are now automatically registered as metatype, and can be converted to string within QVariant, or are printed as string by qDebug() Qt GUI Windows packages are all built with -opengl dynamic. No OpenGL-only or ANGLE-only builds are provided anymore. On Windows the OpenGL implementation to use can now be configured based on the GPU vendor and driver version using JSON configuration files. This allows shipping fine-grained card and driver blacklists with the apps, when necessary. QOpenGLWidget is now supported in iOS. QImage: 8-bit alpha map and grayscale formats. QImageReader: EXIF orientation can now be read though the transformation method, and applied on read to JPEGs if wanted. Qt Multimedia GStreamer 1.0 support. Note that the default is still 0.10. 1.0 support can be enabled by configuring Qt with '-gstreamer 1.0'. New video filtering framework to integrate frameworks like OpenCV or compute APIs such as OpenCL or CUDA with VideoOutput elements. New API to control camera viewfinder settings Improved camera support on iOS (focus, zoom, exposure, viewfinder/image settings) The QML MediaPlayer is now rendered in an OpenGL texture on iOS. This means VideoOutput supports advanced transformation, shader effects and doesn't have to be always on top of other items anymore. Qt NFC Neard based backend for Linux added. Qt Network New SSL back-end for iOS and OS X based on Secure Transport. Note that in Qt 5.6 this will become the default SSL: back-end on these platforms. Support for libproxy Support for TLS PSK ciphersuites Support for elliptic curve certificates Ability to select specific curves when using elliptic curve ciphersuites. QPA Added support for the Raspberry Pi 2. Added support for the ODROID-XU3. On supported desktops, the xcb plugin now uses the D-Bus based org.kde.StatusNotifier protocol for system tray icons, and org.freedesktop.Notifications for notifications. KMS/DRM backend for EGLFS. This replaces the now deprecated KMS platform plugin. It allows running apps with eglfs on the console on systems with Mesa and devices that come with drm support. EGLFS has a plugin-based backend mechanism in addition to the existing, statically compiled-in solution. Most compiled-in hooks are converted to be dynamically loaded plugins that are built based on configure time tests. This reduces the reliance on the device makespecs for RPi, i.MX6 and Mali-based devices. Input handling is now unified for EGLFS and LinuxFB, avoiding the need to launch and configure LinuxFB-based apps differently than when using EGLFS. tslib is now better integrated with EGLFS and LinuxFB to provide support for resistive single-touch touchscreens often used in industrial environments. xcb is refactored to move GLX and EGL support into plugins. No more ifdefs, allowing building both backends. Added a TUIO Touch plugin for receiving remote touch events via UDP. Added a libinput plugin. iOS: you can now use QFileDialog to browse system photos using a native image picker dialog by setting directory to QStandardPaths::PicturesLocation. Selected photos can be loaded using QFile. Qt QML It is now possible to conveniently expose custom C++ value types into the JavaScript environment of QML and QJSEngine. Support for JavaScript typed arrays Various performance improvements, notably QJSValue Added convenience qJsEngine(QObject*) getter function. Qt Quick Windows now defaults to the threaded Qt Quick render loop when using desktop OpenGL (opengl32.dll). QQuickWidget is now supported in iOS. QQuickRenderControl supports threaded rendering. Improved behavior of Flickable on OS X trackpads using pixel deltas from native gestures. PinchArea handles native pinch gestures when the OS provides them (so far only on OS X). Otherwise it relies on touch events, as before. Added a smart zoom signal to PinchArea to react to that gesture on an OS X trackpad. MouseArea now has a scrollGestureEnabled property to control whether native scroll gestures from the OS will be handled by the wheel signal handler. Qt Quick Controls Qt Quick Extras (formerly Qt Quick Enterprise Controls) was added under the QtQuick.Extras import. TreeView control for QAbstractItemModel-derived models. Supports QItemSelectionModel selection. Qt WebEngine Updated Chromium snapshot to version 40 WebEngineProfile for control of storage and cache paths and related policies. Added support for javascript Geolocation API with QtLocation as a backend Added API for managing downloading of files Added API for controlling cache and cookie paths and policy Added API for WebEngine settings Added API for injecting user scripts Various experimental QML API has been promoted to public Added QtWebChannel integration API over Chromium IPC Qt WebView Added native implementations for Mac OS X. Added API for running JavaScript (Requires API 19+ on Android). Added API for setting the HTML content. Added API for load status notifications.
2015-10-26 20:03:59 +01:00
. endif
BUILDLINK_API_DEPENDS.libxcb+= libxcb>=1.11
.include "../../x11/libxcb/buildlink3.mk"
.include "../../x11/xcb-util/buildlink3.mk"
.include "../../x11/xcb-util-image/buildlink3.mk"
.include "../../x11/xcb-util-keysyms/buildlink3.mk"
.include "../../x11/xcb-util-renderutil/buildlink3.mk"
.include "../../x11/xcb-util-wm/buildlink3.mk"
.include "../../x11/libSM/buildlink3.mk"
.include "../../x11/libX11/buildlink3.mk"
.include "../../x11/libXext/buildlink3.mk"
.include "../../x11/libXcursor/buildlink3.mk"
.include "../../x11/libXft/buildlink3.mk"
.include "../../x11/libXi/buildlink3.mk"
.include "../../x11/libXmu/buildlink3.mk"
.include "../../x11/libXrandr/buildlink3.mk"
.include "../../x11/libXrender/buildlink3.mk"
.include "../../x11/libxkbcommon/buildlink3.mk"
.endif
.include "../../mk/jpeg.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"