kumquat-buildroot/package/qt5/qt5multimedia/qt5multimedia.mk

84 lines
2.6 KiB
Makefile
Raw Normal View History

################################################################################
#
# qt5multimedia
#
################################################################################
QT5MULTIMEDIA_VERSION = $(QT5_VERSION)
QT5MULTIMEDIA_SITE = $(QT5_SITE)
QT5MULTIMEDIA_SOURCE = qtmultimedia-opensource-src-$(QT5MULTIMEDIA_VERSION).tar.xz
QT5MULTIMEDIA_DEPENDENCIES = qt5base
QT5MULTIMEDIA_INSTALL_STAGING = YES
ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
QT5MULTIMEDIA_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs)
package/qt5: bump latest version to 5.9.1 Qt 5.9 is a Long Term Support version [1]. Some license file changes are involved, a new dependency on pcre2, and some filename changes. qt5webkit popped back into the picture for 5.9.1 after being absent for 5.9.0 "officially." QT5_SNAPSHOTS_SITE is removed with this commit as it is not used for qtwebkit anymore. This removes the following patches that have been upstreamed for 5.9.1: - qt5base/5.8.0/0001-fix-parallel-builds-with-qt-freetype-system-libpng.patch [2] - qt5base/5.8.0/0002-fix-VNC-platform-plugin-build-on-big-endian-machines.patch [3] - qt5base/5.8.0/0003-QAtomic-pass-explicit-failure-mode-to-std-atomic-com.patch [4] - qt5base/5.8.0/0003-eglfs-fix-x11-header-related-compile-failure.patch [5] - qt5base/5.8.0/0004-examples-fix-compile-without-gui-module.patch [6] - qt5webkit/0003-Exclude-backtrace-API-for-non-glibc-libraries.patch [7] The qt5webkit patches no longer apply to both the LTS and latest version, so they are moved to per-version directories. [1] https://www.qt.io/qt5-9/ [2] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=4dcfd90e4fd7d4c49138038dbbcbda8794a9fbff [3] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=6f64bfa654fb7e20bb75ec3b0544b81482babb44 [4] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=5cc0de2e084cb887a75b076b82cf470ecdcd4dd3 [5] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=e9a7739e77f79baeb5452189b6d17e63de5b341d [6] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=18d49808db46add078d9d4bcffaac5361d5c7269 [7] https://code.qt.io/cgit/qt/qtwebkit.git/commit/?id=548380af096f8277e460383c81a4ecdf2b77523f Signed-off-by: Joshua Henderson <joshua.henderson@microchip.com> Cc: Julien Corjon <corjon.j@ecagroup.com> Cc: Brent Sink <brents_3@hotmail.com> Cc: Naoki Matsumoto <n-matsumoto@melcoinc.co.jp> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-13 18:18:43 +02:00
QT5MULTIMEDIA_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL
qt5: add choice between version 5.6.2 and 5.8.0 For 5.8.0 - add hashes - qt5 need C++11 compliant compiler since 5.7 ([1]) - use different licenses: since version 5.7 Qt removed the LGPL v2.1 option in favor of v3 with a different exception - qt5base: renamed library to EglFSDeviceIntegration ([2]) - qt5base: remove ras-pi patch, commit c0cc5052097c723d0331a7619d686af9eb93d33c fix it ([3]) - qt5base: remove 0007-eglfs-fix-eglfs_mali-compile-for-odroid-mali.patch (upstream committed [3b]) - qt5base: remove obsolete config-option -large ([4]) - qt5base: gstreamer support fully moved to qt5multimedia, so gstreamer related options are no longer passed ([5]) - add patch for python-pyqt5 to fix the build with Qt 5.8 - add tweak in libv4l to fix the build with Qt 5.8, originally provided by Peter Seiderer - add patch from Peter Seiderer fixing a build issue with freetype For 5.6.2 - moved patches to subdir, and renumber patches [1] http://blog.qt.io/blog/2016/06/16/qt-5-7-released/ [2] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ec4eb4db61094179bc6a9ec26ec68fb710177053 [3] https://codereview.qt-project.org/#/c/167172/ [3b] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=f1b4bd4790860e1ff5afcec111a359bc3a91cfda [4] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=84d3a21c9efe7efb2cce6d3bd14af1f9580b1108 [5] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=7d4da559afb62a779b3d90a65fb679cb5433f203 Signed-off-by: Andreas Naumann <anaumann@ultratronik.de> Signed-off-by: Julien Corjon <corjon.j@ecagroup.com> Signed-off-by: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com> [Thomas: - tweak commit log about GStreamer related changes, suggested by Arnout - move the gcc 4.8 dependency from the main qt5 option to just the qt5.8 selection, so that qt5.6 can still be built if gcc < 4.8 is used. Noticed by Arnout. - rename the options of the version selection to not include the version number itself so that we don't have to keep legacy symbols. Noticed by Arnout. - introduce changes to qt5quickcontrols2.mk needed to handle qt5.6 vs. qt5.8, borrowed from a later patch in the series. - add patch for python-pyqt5 to fix the build with Qt 5.8. - add fix to libv4l.mk from Peter Seiderer to fix the build with Qt 5.8. - renumber patches for 5.6.2, suggested by Arnout.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-01-31 08:59:03 +01:00
else
QT5MULTIMEDIA_LICENSE = GPL-3.0 or LGPL-2.1 with exception or LGPL-3.0, GFDL-1.3 (docs)
QT5MULTIMEDIA_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL
qt5: add choice between version 5.6.2 and 5.8.0 For 5.8.0 - add hashes - qt5 need C++11 compliant compiler since 5.7 ([1]) - use different licenses: since version 5.7 Qt removed the LGPL v2.1 option in favor of v3 with a different exception - qt5base: renamed library to EglFSDeviceIntegration ([2]) - qt5base: remove ras-pi patch, commit c0cc5052097c723d0331a7619d686af9eb93d33c fix it ([3]) - qt5base: remove 0007-eglfs-fix-eglfs_mali-compile-for-odroid-mali.patch (upstream committed [3b]) - qt5base: remove obsolete config-option -large ([4]) - qt5base: gstreamer support fully moved to qt5multimedia, so gstreamer related options are no longer passed ([5]) - add patch for python-pyqt5 to fix the build with Qt 5.8 - add tweak in libv4l to fix the build with Qt 5.8, originally provided by Peter Seiderer - add patch from Peter Seiderer fixing a build issue with freetype For 5.6.2 - moved patches to subdir, and renumber patches [1] http://blog.qt.io/blog/2016/06/16/qt-5-7-released/ [2] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ec4eb4db61094179bc6a9ec26ec68fb710177053 [3] https://codereview.qt-project.org/#/c/167172/ [3b] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=f1b4bd4790860e1ff5afcec111a359bc3a91cfda [4] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=84d3a21c9efe7efb2cce6d3bd14af1f9580b1108 [5] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=7d4da559afb62a779b3d90a65fb679cb5433f203 Signed-off-by: Andreas Naumann <anaumann@ultratronik.de> Signed-off-by: Julien Corjon <corjon.j@ecagroup.com> Signed-off-by: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com> [Thomas: - tweak commit log about GStreamer related changes, suggested by Arnout - move the gcc 4.8 dependency from the main qt5 option to just the qt5.8 selection, so that qt5.6 can still be built if gcc < 4.8 is used. Noticed by Arnout. - rename the options of the version selection to not include the version number itself so that we don't have to keep legacy symbols. Noticed by Arnout. - introduce changes to qt5quickcontrols2.mk needed to handle qt5.6 vs. qt5.8, borrowed from a later patch in the series. - add patch for python-pyqt5 to fix the build with Qt 5.8. - add fix to libv4l.mk from Peter Seiderer to fix the build with Qt 5.8. - renumber patches for 5.6.2, suggested by Arnout.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-01-31 08:59:03 +01:00
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y)
QT5MULTIMEDIA_DEPENDENCIES += gst1-plugins-base
endif
ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y)
QT5MULTIMEDIA_DEPENDENCIES += qt5declarative
endif
ifeq ($(BR2_PACKAGE_LIBGLIB2)$(BR2_PACKAGE_PULSEAUDIO),yy)
QT5MULTIMEDIA_DEPENDENCIES += libglib2 pulseaudio
endif
ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
QT5MULTIMEDIA_DEPENDENCIES += alsa-lib
endif
define QT5MULTIMEDIA_CONFIGURE_CMDS
(cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/bin/qmake)
endef
define QT5MULTIMEDIA_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
endef
define QT5MULTIMEDIA_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
$(QT5_LA_PRL_FILES_FIXUP)
endef
ifeq ($(BR2_STATIC_LIBS),)
qt5multimedia: drop broken gstreamer 0.10 support The gstreamer 0.10 support code seems to have bitrotten as the build fails with undefined references to various functions: .obj/qgstreameraudiodecodersession.o: In function `QGstreamerAudioDecoderSession::read()': qgstreameraudiodecodersession.cpp:(.text+0x13a0): undefined reference to `QGstUtils::audioFormatForBuffer(_GstBuffer*)' collect2: error: ld returned 1 exit status Makefile:111: recipe for target '../../../../plugins/mediaservice/libgstaudiodecoder.so' failed make[6]: *** [../../../../plugins/mediaservice/libgstaudiodecoder.so] Error 1 Makefile:45: recipe for target 'sub-audiodecoder-make_first' failed make[5]: *** [sub-audiodecoder-make_first] Error 2 make[5]: *** Waiting for unfinished jobs.... .obj/qgstreamercapturesession.o: In function `QGstreamerCaptureSession::probeBuffer(_GstBuffer*) [clone .part.30]': qgstreamercapturesession.cpp:(.text+0x3fc8): undefined reference to `QGstUtils::bufferToImage(_GstBuffer*)' collect2: error: ld returned 1 exit status Makefile:153: recipe for target '../../../../plugins/mediaservice/libgstmediacapture.so' failed make[6]: *** [../../../../plugins/mediaservice/libgstmediacapture.so] Error 1 Makefile:95: recipe for target 'sub-mediacapture-make_first' failed make[5]: *** [sub-mediacapture-make_first] Error 2 .obj/qgstreamerplayersession.o: In function `QGstreamerPlayerSession::QGstreamerPlayerSession(QObject*)': qgstreamerplayersession.cpp:(.text+0xecc): undefined reference to `gst_video_connector_get_type' .obj/qgstreamerplayersession.o: In function `QGstreamerPlayerSession::processBusMessage(QGstreamerMessage const&)': qgstreamerplayersession.cpp:(.text+0x5b4c): undefined reference to `QGstUtils::gstTagListToMap(_GstStructure const*)' collect2: error: ld returned 1 exit status Makefile:129: recipe for target '../../../../plugins/mediaservice/libgstmediaplayer.so' failed make[6]: *** [../../../../plugins/mediaservice/libgstmediaplayer.so] Error 1 Makefile:70: recipe for target 'sub-mediaplayer-make_first' failed make[5]: *** [sub-mediaplayer-make_first] Error 2 Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-10-21 10:06:30 +02:00
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y)
define QT5MULTIMEDIA_INSTALL_TARGET_QGSTTOOLS_LIB
cp -dpf $(STAGING_DIR)/usr/lib/libqgsttools*.so.* $(TARGET_DIR)/usr/lib
endef
endif
define QT5MULTIMEDIA_INSTALL_TARGET_LIBS
cp -dpf $(STAGING_DIR)/usr/lib/libQt5Multimedia*.so.* $(TARGET_DIR)/usr/lib
cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/* $(TARGET_DIR)/usr/lib/qt/plugins
$(QT5MULTIMEDIA_INSTALL_TARGET_QGSTTOOLS_LIB)
endef
endif
# this is only built with quick/opengl support enabled
ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK)$(BR2_PACKAGE_QT5_GL_AVAILABLE),yy)
define QT5MULTIMEDIA_INSTALL_TARGET_QMLS
cp -dpfr $(STAGING_DIR)/usr/qml/QtMultimedia $(TARGET_DIR)/usr/qml/
endef
endif
ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y)
define QT5MULTIMEDIA_INSTALL_TARGET_EXAMPLES
cp -dpfr $(STAGING_DIR)/usr/lib/qt/examples/multimedia* $(TARGET_DIR)/usr/lib/qt/examples/
endef
endif
define QT5MULTIMEDIA_INSTALL_TARGET_CMDS
$(QT5MULTIMEDIA_INSTALL_TARGET_LIBS)
$(QT5MULTIMEDIA_INSTALL_TARGET_QMLS)
$(QT5MULTIMEDIA_INSTALL_TARGET_EXAMPLES)
endef
$(eval $(generic-package))