chromium, html5-*: adapt to kirkstone
[AGL/meta-agl-demo.git] / recipes-wam / chromium / chromium.inc
index e1067ca..17e46f4 100644 (file)
@@ -3,7 +3,7 @@
 SUMMARY = "Chromium webruntime for webOS"
 AUTHOR = "Lokesh Kumar Goel <lokeshkumar.goel@lge.com>"
 SECTION = "webos/apps"
-LICENSE = "Apache-2.0 & BSD-3-Clause & LGPL-2.0 & LGPL-2.1"
+LICENSE = "Apache-2.0 & BSD-3-Clause & LGPL-2.0-only & LGPL-2.1-only"
 LIC_FILES_CHKSUM = "\
     file://src/LICENSE;md5=0fca02217a5d49a14dfe2d11837bb34d \
     file://src/third_party/blink/renderer/core/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
@@ -12,9 +12,9 @@ LIC_FILES_CHKSUM = "\
 
 require gn-utils.inc
 
-inherit gettext qemu pythonnative
+inherit gettext qemu pythonnative pkgconfig
 
-DEPENDS = "virtual/gettext wayland wayland-native pixman freetype glib-2.0 fontconfig openssl pango cairo icu libxkbcommon libexif dbus pciutils udev libcap alsa-lib virtual/egl elfutils-native libdrm atk at-spi2-atk gperf-native gconf nss nss-native nspr nspr-native bison-native qemu-native"
+DEPENDS = "virtual/gettext wayland wayland-native pixman freetype glib-2.0 fontconfig openssl pango cairo icu libxkbcommon libexif dbus pciutils udev libcap alsa-lib virtual/egl elfutils-native libdrm atk at-spi2-atk gperf-native gconf nss nss-native nspr nspr-native bison-native qemu-native curl"
 
 PROVIDES = "${BROWSER_APPLICATION}"
 
@@ -34,24 +34,14 @@ OUT_DIR = "${B}/${BUILD_TYPE}"
 
 WEBRUNTIME_BUILD_TARGET = "webos:weboswebruntime"
 BROWSER_APP_BUILD_TARGET = "chrome"
-BROWSER_APPLICATION = "chromium84-browser"
-BROWSER_APPLICATION_DIR = "/opt/chromium84"
+BROWSER_APPLICATION = "chromium-browser"
+BROWSER_APPLICATION_DIR = "/opt/chromium"
 
 TARGET = "${WEBRUNTIME_BUILD_TARGET} ${BROWSER_APP_BUILD_TARGET}"
 
 # Skip do_install:append of webos_system_bus. It is not compatible with this component.
 WEBOS_SYSTEM_BUS_FILES_LOCATION = "${S}/files/sysbus"
 
-PACKAGECONFIG ?= "jumbo use-upstream-wayland"
-
-
-# Set a default value for jumbo file merge of 8. This should be good for build
-# servers and workstations with a big number of cores. In case build is
-# happening in a machine with less cores but still enough RAM a good value could
-# be 50.
-JUMBO_FILE_MERGE_LIMIT="8"
-PACKAGECONFIG[jumbo] = "use_jumbo_build=true jumbo_file_merge_limit=${JUMBO_FILE_MERGE_LIMIT}, use_jumbo_build=false"
-
 PACKAGECONFIG[lttng] = "use_lttng=true,use_lttng=false,lttng-ust,lttng-tools lttng-modules babeltrace"
 
 # Chromium can use v4l2 device for hardware accelerated video decoding on such boards as Renesas R-car M3, for example.
@@ -59,10 +49,11 @@ PACKAGECONFIG[lttng] = "use_lttng=true,use_lttng=false,lttng-ust,lttng-tools ltt
 # See https://github.com/igel-oss/meta-browser-hwdecode/tree/igalia-chromium71.
 PACKAGECONFIG[use-linux-v4l2] = "use_v4l2_codec=true use_v4lplugin=true use_linux_v4l2_only=true"
 
-PACKAGECONFIG[use-upstream-wayland] = " \
-    ozone_platform_wayland_external=false ozone_platform_wayland=true, \
-    ozone_platform_wayland_external=true ozone_platform_wayland=false \
-"
+# Options to enable debug build. Add this PACKAGECONFIG to local.conf
+# to enable debug build. By default debug is completely disabled to
+# speed up build
+PACKAGECONFIG[debug] = "symbol_level=2 use_debug_fission=true,symbol_level=1"
+PACKAGECONFIG[debug-blink] = "blink_symbol_level=2 use_debug_fission=true,blink_symbol_level=1"
 
 GN_ARGS = "\
     enable_memorymanager_webapi=false\
@@ -72,6 +63,7 @@ GN_ARGS = "\
     proprietary_codecs=true\
     target_os=\"linux\"\
     treat_warnings_as_errors=false\
+    use_x11=false\
     is_agl=true\
     use_cbe=true\
     is_chrome_cbe=true\
@@ -104,25 +96,8 @@ GN_ARGS += "is_debug=false is_official_build=true"
 #          "is_cfi requires setting is_clang = true in 'gn args'")
 GN_ARGS += "is_cfi=false"
 
-# By default, passing is_official_build=true to GN causes its symbol_level
-# variable to be set to "2". This means the compiler will be passed "-g2" and
-# we will end up with a very large chrome binary (around 5Gb as of M58)
-# regardless of whether DEBUG_BUILD has been set or not. In addition, binutils,
-# file and other utilities are unable to read a 32-bit binary this size, which
-# causes it not to be stripped.
-# The solution is two-fold:
-# 1. Make sure -g is not passed on 32-bit architectures via DEBUG_FLAGS. -g is
-#    the same as -g2. -g1 generates an 800MB binary, which is a lot more
-#    manageable.
-# 2. Explicitly pass symbol_level=0 to GN. This causes -g0 to be passed
-#    instead, so that if DEBUG_BUILD is not set GN will not create a huge debug
-#    binary anyway. Since our compiler flags are passed after GN's, -g0 does
-#    not cause any issues if DEBUG_BUILD is set, as -g1 will be passed later.
-DEBUG_FLAGS:remove:arm = "-g"
-DEBUG_FLAGS:append:arm = "-g1"
-DEBUG_FLAGS:remove:x86 = "-g"
-DEBUG_FLAGS:append:x86 = "-g1"
-GN_ARGS += "symbol_level=0"
+# use_thin_lto should be also disabled for GCC
+GN_ARGS += "use_thin_lto=false"
 
 # We do not want to use Chromium's own Debian-based sysroots, it is easier to
 # just let Chromium's build system assume we are not using a sysroot at all and
@@ -179,6 +154,7 @@ GN_ARGS += "\
     enable_nacl=false\
     disable_ftp_support=true\
     enable_print_preview=false\
+    enable_basic_printing=false\
     enable_remoting=false\
     use_glib=true\
     use_gnome_keyring=false\
@@ -210,7 +186,7 @@ do_compile() {
     fi
 
     export PATH="${S}/depot_tools:$PATH"
-    ${S}/depot_tools/ninja ${PARALLEL_MAKE} -v -C ${OUT_DIR} ${TARGET}
+    ${S}/depot_tools/ninja ${PARALLEL_MAKE} -C ${OUT_DIR} ${TARGET}
 }
 
 do_configure() {