Skip to content

Instantly share code, notes, and snippets.

@aanatoly
Last active May 18, 2016 10:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aanatoly/76a2310d41d797d266700c70f0890de7 to your computer and use it in GitHub Desktop.
Save aanatoly/76a2310d41d797d266700c70f0890de7 to your computer and use it in GitHub Desktop.
qt5webengine in br2
BR2_arm=y
BR2_cortex_a9=y
BR2_ARM_ENABLE_NEON=y
BR2_ARM_ENABLE_VFP=y
BR2_ARM_FPU_VFPV3=y
BR2_CCACHE=y
BR2_CCACHE_DIR="$(TOPDIR)/.ccache"
BR2_CCACHE_INITIAL_SETUP="-M 2G"
# BR2_CCACHE_USE_BASEDIR is not set
BR2_SHARED_STATIC_LIBS=y
BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches"
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_PATH="/opt/x-tools/Linaro"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-linux-gnueabihf"
BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_1=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_ENABLE_LOCALE_PURGE=y
BR2_TARGET_GENERIC_HOSTNAME="imx6"
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT5BASE_LICENSE_APPROVED=y
BR2_PACKAGE_QT5BASE_LINUXFB=y
BR2_PACKAGE_QT5BASE_EGLFS=y
BR2_PACKAGE_QT5BASE_DEFAULT_QPA="linuxfb"
BR2_PACKAGE_QT5BASE_GIF=y
BR2_PACKAGE_QT5BASE_JPEG=y
BR2_PACKAGE_QT5BASE_PNG=y
BR2_PACKAGE_QT5BASE_ICU=y
BR2_PACKAGE_QT5BASE_TSLIB=y
BR2_PACKAGE_QT5CONNECTIVITY=y
BR2_PACKAGE_QT5DECLARATIVE=y
BR2_PACKAGE_QT5ENGINIO=y
BR2_PACKAGE_QT5IMAGEFORMATS=y
BR2_PACKAGE_QT5LOCATION=y
BR2_PACKAGE_QT5MULTIMEDIA=y
BR2_PACKAGE_QT5SERIALPORT=y
BR2_PACKAGE_QT5SVG=y
BR2_PACKAGE_QT5WEBENGINE=y
BR2_PACKAGE_EVTEST=y
BR2_PACKAGE_FREESCALE_IMX=y
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q=y
BR2_PACKAGE_IMX_VPU=y
BR2_PACKAGE_IMX_GPU_VIV=y
BR2_PACKAGE_IMX_GPU_VIV_APITRACE=y
BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES=y
BR2_PACKAGE_IMX_GPU_VIV_GMEM_INFO=y
diff --git a/package/python/python.mk b/package/python/python.mk
index 4ecd0d1..06b13e6 100644
--- a/package/python/python.mk
+++ b/package/python/python.mk
@@ -31,7 +31,7 @@ HOST_PYTHON_CONF_OPTS += \
--disable-gdbm \
--disable-bsddb \
--disable-test-modules \
- --disable-bz2 \
+ --enable-bz2 \
--disable-ssl \
--disable-ossaudiodev \
--disable-pyo-build
@@ -52,7 +52,7 @@ HOST_PYTHON_MAKE = $(MAKE1)
PYTHON_DEPENDENCIES = host-python libffi
-HOST_PYTHON_DEPENDENCIES = host-expat host-zlib
+HOST_PYTHON_DEPENDENCIES = host-expat host-zlib host-bzip2
PYTHON_INSTALL_STAGING = YES
diff --git a/package/qt5/Config.in b/package/qt5/Config.in
index 84cbb0f..d3f7328 100644
--- a/package/qt5/Config.in
+++ b/package/qt5/Config.in
@@ -47,6 +47,7 @@ source "package/qt5/qt5serialport/Config.in"
source "package/qt5/qt5svg/Config.in"
source "package/qt5/qt5tools/Config.in"
source "package/qt5/qt5webchannel/Config.in"
+source "package/qt5/qt5webengine/Config.in"
source "package/qt5/qt5websockets/Config.in"
source "package/qt5/qt5x11extras/Config.in"
source "package/qt5/qt5xmlpatterns/Config.in"
diff --git a/package/qt5/qt5webengine/001-fix-unix-detection.patch b/package/qt5/qt5webengine/001-fix-unix-detection.patch
new file mode 100644
index 0000000..aacb34f
--- /dev/null
+++ b/package/qt5/qt5webengine/001-fix-unix-detection.patch
@@ -0,0 +1,11 @@
+diff -uNr qt5webengine-5.6.0-orig/src/3rdparty/chromium/skia/skia_common.gypi qt5webengine-5.6.0/src/3rdparty/chromium/skia/skia_common.gypi
+--- qt5webengine-5.6.0-orig/src/3rdparty/chromium/skia/skia_common.gypi 2016-03-03 16:48:36.000000000 +0200
++++ qt5webengine-5.6.0/src/3rdparty/chromium/skia/skia_common.gypi 2016-05-17 17:13:45.287742094 +0300
+@@ -69,6 +69,7 @@
+ 'SK_GAMMA_EXPONENT=1.2',
+ 'SK_GAMMA_CONTRAST=0.2',
+ 'SK_HIGH_QUALITY_IS_LANCZOS',
++ 'SK_BUILD_FOR_UNIX',
+ ],
+ }],
+ ['OS == "android"', {
diff --git a/package/qt5/qt5webengine/002-inject-v4l2-enum.patch b/package/qt5/qt5webengine/002-inject-v4l2-enum.patch
new file mode 100644
index 0000000..f942029
--- /dev/null
+++ b/package/qt5/qt5webengine/002-inject-v4l2-enum.patch
@@ -0,0 +1,10 @@
+--- orig/src/3rdparty/chromium/media/video/capture/linux/v4l2_capture_delegate.h 2016-05-17 18:42:27.396080813 +0300
++++ mod/src/3rdparty/chromium/media/video/capture/linux/v4l2_capture_delegate.h 2016-05-17 18:20:31.009989688 +0300
+@@ -9,6 +9,7 @@
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
++#define V4L2_CID_POWER_LINE_FREQUENCY_AUTO 3
+ #endif
+
+ #include "base/files/scoped_file.h"
diff --git a/package/qt5/qt5webengine/Config.in b/package/qt5/qt5webengine/Config.in
new file mode 100644
index 0000000..39c087a
--- /dev/null
+++ b/package/qt5/qt5webengine/Config.in
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_QT5WEBENGINE
+ bool "qt5webengine"
+ select BR2_PACKAGE_QT5BASE
+ select BR2_PACKAGE_QT5BASE_GUI
+ select BR2_PACKAGE_QT5BASE_FONTCONFIG
+ select BR2_PACKAGE_QT5BASE_DBUS
+ select BR2_PACKAGE_QT5BASE_ICU
+ select BR2_PACKAGE_QT5WEBCHANNEL
+ select BR2_PACKAGE_OPENSSL
+ select BR2_PACKAGE_LIBCAP
+ select BR2_PACKAGE_QT5DECLARATIVE
+ select BR2_PACKAGE_QT5DECLARATIVE_QUICK
+ help
+ Qt is a cross-platform application and UI framework for
+ developers using C++.
+
+ This package corresponds to the qt5webengine module.
+
+ http://qt.io
diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
new file mode 100644
index 0000000..070a04d
--- /dev/null
+++ b/package/qt5/qt5webengine/qt5webengine.mk
@@ -0,0 +1,74 @@
+################################################################################
+#
+# qt5webengine
+#
+################################################################################
+
+QT5WEBENGINE_VERSION = $(QT5_VERSION)
+QT5WEBENGINE_SITE = $(QT5_SITE)
+QT5WEBENGINE_SOURCE = qtwebengine-opensource-src-$(QT5WEBENGINE_VERSION).tar.xz
+QT5WEBENGINE_DEPENDENCIES = qt5base qt5declarative qt5webchannel libcap openssl host-gperf
+QT5WEBENGINE_INSTALL_STAGING = YES
+
+ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y)
+QT5WEBENGINE_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2
+# Source files contain references to LGPL_EXCEPTION.txt but it is not included
+# in the archive.
+QT5WEBENGINE_LICENSE_FILES = LICENSE.LGPLv21 LICENSE.LGPLv3 LICENSE.GPLv2
+else
+QT5WEBENGINE_LICENSE = Commercial license
+QT5WEBENGINE_REDISTRIBUTE = NO
+endif
+
+ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y)
+QT5WEBENGINE_DEPENDENCIES += qt5declarative
+endif
+
+define QT5WEBENGINE_CONFIGURE_CMDS
+ (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake)
+endef
+
+define QT5WEBENGINE_BUILD_CMDS
+ # First invocation of make will create ninja files and fail due to absent
+ # std=c++11, then we add std=c++11 to target cxx only and restart the build
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) || true
+ cd $(@D); sed -i 's/\(^cxx\s=.*\)/& -std=c++11/' src/core/Release/build.ninja
+ # restart build
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define QT5WEBENGINE_INSTALL_STAGING_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
+ $(QT5_LA_PRL_FILES_FIXUP)
+endef
+
+ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y)
+define QT5WEBENGINE_INSTALL_TARGET_QMLS
+ cp -dpfr $(STAGING_DIR)/usr/qml/QtWebEngine $(TARGET_DIR)/usr/qml/
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y)
+define QT5WEBENGINE_INSTALL_TARGET_EXAMPLES
+ cp -dpfr $(STAGING_DIR)/usr/lib/qt/examples/webengine* $(TARGET_DIR)/usr/lib/qt/examples/
+endef
+endif
+
+ifneq ($(BR2_STATIC_LIBS),y)
+define QT5WEBENGINE_INSTALL_TARGET_LIBS
+ cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebEngine*.so.* $(TARGET_DIR)/usr/lib
+ #cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/qtwebengine $(TARGET_DIR)/usr/lib/qt/plugins/
+ cp -dpf $(STAGING_DIR)/usr/libexec/QtWebEngineProcess $(TARGET_DIR)/usr/libexec/
+ cp -dpfr $(STAGING_DIR)/usr/translations/qtwebengine_locales $(TARGET_DIR)/usr/translations/
+ #cp -dpf $(STAGING_DIR)/usr/qtwebengine_resources.pak $(TARGET_DIR)/usr/
+ # cp -dpf $(STAGING_DIR)/usr/icudtl.dat $(TARGET_DIR)/usr/
+endef
+endif
+
+define QT5WEBENGINE_INSTALL_TARGET_CMDS
+ $(QT5WEBENGINE_INSTALL_TARGET_LIBS)
+ $(QT5WEBENGINE_INSTALL_TARGET_QMLS)
+ $(QT5WEBENGINE_INSTALL_TARGET_EXAMPLES)
+endef
+
+$(eval $(generic-package))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment