* [Buildroot] [PATCH v1 01/30] pkgconf: always keep system libs
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2020-01-14 16:17 ` Yann E. MORIN
2019-12-05 17:14 ` [Buildroot] [PATCH v1 02/30] pkgconf: Configure using pkgconf-personality Michael Drake
` (29 subsequent siblings)
30 siblings, 1 reply; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
From: Thomas Preston <thomas.preston@codethink.co.uk>
The previous change to pkgconf 9cc8680fe5, which tells it about the
target sysroot system lib and include dirs so that they are not printed
by default, introduced a regression where packages relying on libtool
could no longer see Libtool Archive (.la) files in the system lib
directory.
Since we still rely on pkgconf not printing the system include directory
to allow the correct ordering of -I, -isystem and compiler default
search paths, and it is still correct behaviour to tell pkgconf about the
new system lib dir (in the target sysroot), we should not revert the
previous change.
Instead, we should explicitly request pkgconf to print the system libs
globally, so that all packages which rely on libtool can find the
Libtool Archive files. For system lib directories, this is the same
pkgconf behaviour as before the 9cc8680fe5 change.
Fixes:
- http://autobuild.buildroot.org/results/a79e0487135ad90530595d5c6ecc32f9c8cea7c4/
- http://autobuild.buildroot.net/results/089/08952dbf89bf3c49da7697943441cee411940420/
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Tested-by: Peter Seiderer <ps.report@gmx.net>
---
package/pkgconf/pkg-config.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package/pkgconf/pkg-config.in b/package/pkgconf/pkg-config.in
index f411eb0926..e5a23a10f7 100644
--- a/package/pkgconf/pkg-config.in
+++ b/package/pkgconf/pkg-config.in
@@ -9,4 +9,4 @@ PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-${DEFAULT_PKG_CONFIG_LIBDIR}} \
PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR:-${DEFAULT_PKG_CONFIG_SYSROOT_DIR}} \
PKG_CONFIG_SYSTEM_INCLUDE_PATH=${PKG_CONFIG_SYSTEM_INCLUDE_PATH:-${DEFAULT_PKG_CONFIG_SYSTEM_INCLUDE_PATH}} \
PKG_CONFIG_SYSTEM_LIBRARY_PATH=${PKG_CONFIG_SYSTEM_LIBRARY_PATH:-${DEFAULT_PKG_CONFIG_SYSTEM_LIBRARY_PATH}} \
- exec ${PKGCONFDIR}/pkgconf @STATIC@ "$@"
+ exec ${PKGCONFDIR}/pkgconf --keep-system-libs @STATIC@ "$@"
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 01/30] pkgconf: always keep system libs
2019-12-05 17:14 ` [Buildroot] [PATCH v1 01/30] pkgconf: always keep system libs Michael Drake
@ 2020-01-14 16:17 ` Yann E. MORIN
0 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2020-01-14 16:17 UTC (permalink / raw)
To: buildroot
Michael, All,
On 2019-12-05 17:14 +0000, Michael Drake spake thusly:
> From: Thomas Preston <thomas.preston@codethink.co.uk>
>
> The previous change to pkgconf 9cc8680fe5, which tells it about the
> target sysroot system lib and include dirs so that they are not printed
> by default, introduced a regression where packages relying on libtool
> could no longer see Libtool Archive (.la) files in the system lib
> directory.
>
> Since we still rely on pkgconf not printing the system include directory
> to allow the correct ordering of -I, -isystem and compiler default
> search paths, and it is still correct behaviour to tell pkgconf about the
> new system lib dir (in the target sysroot), we should not revert the
> previous change.
>
> Instead, we should explicitly request pkgconf to print the system libs
> globally, so that all packages which rely on libtool can find the
> Libtool Archive files. For system lib directories, this is the same
> pkgconf behaviour as before the 9cc8680fe5 change.
>
> Fixes:
> - http://autobuild.buildroot.org/results/a79e0487135ad90530595d5c6ecc32f9c8cea7c4/
> - http://autobuild.buildroot.net/results/089/08952dbf89bf3c49da7697943441cee411940420/
>
> Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
> Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
> Tested-by: Peter Seiderer <ps.report@gmx.net>
Applied to master. I added another related build failure to the list,
for good measure.
Thanks.
Regards,
Yann E. MORIN.
> ---
> package/pkgconf/pkg-config.in | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/package/pkgconf/pkg-config.in b/package/pkgconf/pkg-config.in
> index f411eb0926..e5a23a10f7 100644
> --- a/package/pkgconf/pkg-config.in
> +++ b/package/pkgconf/pkg-config.in
> @@ -9,4 +9,4 @@ PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-${DEFAULT_PKG_CONFIG_LIBDIR}} \
> PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR:-${DEFAULT_PKG_CONFIG_SYSROOT_DIR}} \
> PKG_CONFIG_SYSTEM_INCLUDE_PATH=${PKG_CONFIG_SYSTEM_INCLUDE_PATH:-${DEFAULT_PKG_CONFIG_SYSTEM_INCLUDE_PATH}} \
> PKG_CONFIG_SYSTEM_LIBRARY_PATH=${PKG_CONFIG_SYSTEM_LIBRARY_PATH:-${DEFAULT_PKG_CONFIG_SYSTEM_LIBRARY_PATH}} \
> - exec ${PKGCONFDIR}/pkgconf @STATIC@ "$@"
> + exec ${PKGCONFDIR}/pkgconf --keep-system-libs @STATIC@ "$@"
> --
> 2.20.1
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 35+ messages in thread
* [Buildroot] [PATCH v1 02/30] pkgconf: Configure using pkgconf-personality
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 01/30] pkgconf: always keep system libs Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 03/30] package/qt5/qt5webengine: Use Buildroot's host-pkg-config wrapper Michael Drake
` (28 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
From: Thomas Preston <thomas.preston@codethink.co.uk>
The preferred way to configure pkgconf when cross-compiling is to use
pkgconf-personality, rather than using environment variables.
This patch also adds the host pkg-config wrapper script so that packages
which configure for the host and target from the same environement can
get the correct pkg-config personaility.
However some misbehaving packages just call pkg-config, or even pkgconf
directly, so we should still force those cases in the host environment by
setting the other {BR2_,}PKG_CONFIG* variables.
The personality can be selected with a symbolic link mechanism, however in
Buildroot we also want to configure the `--static` flag so we continue
to use the pkg-config wrapper script and select personality via the
flag.
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
---
package/Makefile.in | 7 ++++++-
package/pkgconf/host-pkg-config.in | 11 ++++++++++
package/pkgconf/host.personality.in | 6 ++++++
package/pkgconf/pkg-config.in | 15 +++++---------
package/pkgconf/pkgconf.mk | 30 +++++++++++++++++++++++----
package/pkgconf/target.personality.in | 6 ++++++
6 files changed, 60 insertions(+), 15 deletions(-)
create mode 100644 package/pkgconf/host-pkg-config.in
create mode 100644 package/pkgconf/host.personality.in
create mode 100644 package/pkgconf/target.personality.in
diff --git a/package/Makefile.in b/package/Makefile.in
index 285e2837ef..47808292b0 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -284,9 +284,14 @@ TARGET_CONFIGURE_OPTS = \
INTLTOOL_PERL=$(PERL)
+# Packages should respect PKG_CONFIG and use the host-pkg-config wrapper.
+# However some misbehaving packages just call pkg-config, or even pkgconf
+# directly, so we should force those cases in the host environment by setting
+# the other {BR2_,}PKG_CONFIG* variables.
HOST_MAKE_ENV = \
PATH=$(BR_PATH) \
- PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
+ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY_HOST)" \
+ BR2_PKGCONF_PERSONALITY="$(GNU_HOST_NAME)" \
PKG_CONFIG_SYSROOT_DIR="/" \
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
diff --git a/package/pkgconf/host-pkg-config.in b/package/pkgconf/host-pkg-config.in
new file mode 100644
index 0000000000..c7ce8aea80
--- /dev/null
+++ b/package/pkgconf/host-pkg-config.in
@@ -0,0 +1,11 @@
+#!/bin/sh
+# This is the Buildroot host pkgconf wrapper which is requried to allow host
+# packages to query system cflags and system libs. It can be used when a package
+# needs to build a binary for the host, but is unable to source the
+# HOST_MAKE_ENV.
+PKGCONFDIR=$(dirname $0)
+BR2_PKGCONF_PERSONALITY=${BR2_PKGCONF_PERSONALITY:- at DEFAULT_HOST_PERSONALITY@}
+exec ${PKGCONFDIR}/pkgconf \
+ --keep-system-cflags \
+ --keep-system-libs \
+ --personality=$BR2_PKGCONF_PERSONALITY "$@"
diff --git a/package/pkgconf/host.personality.in b/package/pkgconf/host.personality.in
new file mode 100644
index 0000000000..8099d26435
--- /dev/null
+++ b/package/pkgconf/host.personality.in
@@ -0,0 +1,6 @@
+# Buildroot host pkgconf-personality
+Triplet: @GNU_HOST_NAME@
+SysrootDir: /
+DefaultSearchPaths: @HOST_DIR@/usr/lib/pkgconfig:@HOST_DIR@/usr/share/pkgconfig
+SystemIncludePaths: @HOST_DIR@/usr/include
+SystemLibraryPaths: @HOST_DIR@/usr/lib
diff --git a/package/pkgconf/pkg-config.in b/package/pkgconf/pkg-config.in
index e5a23a10f7..8e90de7f0c 100644
--- a/package/pkgconf/pkg-config.in
+++ b/package/pkgconf/pkg-config.in
@@ -1,12 +1,7 @@
#!/bin/sh
+# This is the Buildroot pkgconf wrapper which is requried to build static
+# libraries for the target.
PKGCONFDIR=$(dirname $0)
-DEFAULT_PKG_CONFIG_LIBDIR=${PKGCONFDIR}/../@STAGING_SUBDIR@/usr/lib/pkgconfig:${PKGCONFDIR}/../@STAGING_SUBDIR@/usr/share/pkgconfig
-DEFAULT_PKG_CONFIG_SYSROOT_DIR=${PKGCONFDIR}/../@STAGING_SUBDIR@
-DEFAULT_PKG_CONFIG_SYSTEM_INCLUDE_PATH=${PKGCONFDIR}/../@STAGING_SUBDIR@/usr/include
-DEFAULT_PKG_CONFIG_SYSTEM_LIBRARY_PATH=${PKGCONFDIR}/../@STAGING_SUBDIR@/usr/lib
-
-PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-${DEFAULT_PKG_CONFIG_LIBDIR}} \
- PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR:-${DEFAULT_PKG_CONFIG_SYSROOT_DIR}} \
- PKG_CONFIG_SYSTEM_INCLUDE_PATH=${PKG_CONFIG_SYSTEM_INCLUDE_PATH:-${DEFAULT_PKG_CONFIG_SYSTEM_INCLUDE_PATH}} \
- PKG_CONFIG_SYSTEM_LIBRARY_PATH=${PKG_CONFIG_SYSTEM_LIBRARY_PATH:-${DEFAULT_PKG_CONFIG_SYSTEM_LIBRARY_PATH}} \
- exec ${PKGCONFDIR}/pkgconf --keep-system-libs @STATIC@ "$@"
+BR2_PKGCONF_PERSONALITY=${BR2_PKGCONF_PERSONALITY:- at DEFAULT_TARGET_PERSONALITY@}
+exec ${PKGCONFDIR}/pkgconf \
+ --personality=$BR2_PKGCONF_PERSONALITY --keep-system-libs @STATIC@ "$@"
diff --git a/package/pkgconf/pkgconf.mk b/package/pkgconf/pkgconf.mk
index 1851ecfca4..28ea12be39 100644
--- a/package/pkgconf/pkgconf.mk
+++ b/package/pkgconf/pkgconf.mk
@@ -9,7 +9,11 @@ PKGCONF_SITE = https://distfiles.dereferenced.org/pkgconf
PKGCONF_SOURCE = pkgconf-$(PKGCONF_VERSION).tar.xz
PKGCONF_LICENSE = pkgconf license
PKGCONF_LICENSE_FILES = COPYING
+PKGCONF_HOST_PERSONALITYD = $(HOST_DIR)/share/pkgconfig/personality.d
+HOST_PKGCONF_CONF_OPTS += --with-personality-dir=$(PKGCONF_HOST_PERSONALITYD)
+
+PKG_CONFIG_HOST_BINARY_HOST = $(HOST_DIR)/bin/host-pkg-config
PKG_CONFIG_HOST_BINARY = $(HOST_DIR)/bin/pkg-config
define PKGCONF_LINK_PKGCONFIG
@@ -17,10 +21,28 @@ define PKGCONF_LINK_PKGCONFIG
endef
define HOST_PKGCONF_INSTALL_WRAPPER
- $(INSTALL) -m 0755 -D package/pkgconf/pkg-config.in \
- $(HOST_DIR)/bin/pkg-config
- $(SED) 's, at STAGING_SUBDIR@,$(STAGING_SUBDIR),g' \
- $(HOST_DIR)/bin/pkg-config
+ mkdir -p $(PKGCONF_HOST_PERSONALITYD)
+
+ # Install pkgconf target personality
+ sed -e 's, at STAGING_DIR@,$(STAGING_DIR),g' \
+ -e 's, at GNU_TARGET_NAME@,$(GNU_TARGET_NAME),g' \
+ $(PKGCONF_PKGDIR)/target.personality.in \
+ > $(PKGCONF_HOST_PERSONALITYD)/$(GNU_TARGET_NAME).personality
+ $(INSTALL) -m 0755 -D $(PKGCONF_PKGDIR)/pkg-config.in \
+ $(PKG_CONFIG_HOST_BINARY)
+ $(SED) 's, at DEFAULT_TARGET_PERSONALITY@,$(GNU_TARGET_NAME),g' \
+ $(PKG_CONFIG_HOST_BINARY)
+
+ # Install pkgconf host personality
+ sed -e 's, at HOST_DIR@,$(HOST_DIR),g' \
+ -e 's, at GNU_HOST_NAME@,$(GNU_HOST_NAME),g' \
+ $(PKGCONF_PKGDIR)/host.personality.in \
+ > $(PKGCONF_HOST_PERSONALITYD)/$(GNU_HOST_NAME).personality
+ $(INSTALL) -m 0755 -D $(PKGCONF_PKGDIR)/host-pkg-config.in \
+ $(PKG_CONFIG_HOST_BINARY_HOST)
+ $(SED) 's, at DEFAULT_HOST_PERSONALITY@,$(GNU_HOST_NAME),g' \
+ $(PKG_CONFIG_HOST_BINARY_HOST)
+
endef
define HOST_PKGCONF_STATIC
diff --git a/package/pkgconf/target.personality.in b/package/pkgconf/target.personality.in
new file mode 100644
index 0000000000..3959d833ee
--- /dev/null
+++ b/package/pkgconf/target.personality.in
@@ -0,0 +1,6 @@
+# Buildroot target pkgconf-personality
+Triplet: @GNU_TARGET_NAME@
+SysrootDir: @STAGING_DIR@
+DefaultSearchPaths: @STAGING_DIR@/usr/lib/pkgconfig:@STAGING_DIR@/usr/share/pkgconfig
+SystemIncludePaths: @STAGING_DIR@/usr/include
+SystemLibraryPaths: @STAGING_DIR@/usr/lib
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 03/30] package/qt5/qt5webengine: Use Buildroot's host-pkg-config wrapper
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 01/30] pkgconf: always keep system libs Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 02/30] pkgconf: Configure using pkgconf-personality Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 04/30] package/libkrb5: Add host tools package Michael Drake
` (27 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
From: Thomas Preston <thomas.preston@codethink.co.uk>
Buildroot now has a host package config wrapper to use pkgconf with
the host enviornment, so qt5webengine should use that instead of its
own one.
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
---
package/qt5/qt5webengine/host-pkg-config.in | 6 ------
package/qt5/qt5webengine/qt5webengine.mk | 7 +------
2 files changed, 1 insertion(+), 12 deletions(-)
delete mode 100644 package/qt5/qt5webengine/host-pkg-config.in
diff --git a/package/qt5/qt5webengine/host-pkg-config.in b/package/qt5/qt5webengine/host-pkg-config.in
deleted file mode 100644
index 86a980648b..0000000000
--- a/package/qt5/qt5webengine/host-pkg-config.in
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-PKG_CONFIG_SYSROOT_DIR="/" \
-PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
-PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
-PKG_CONFIG_LIBDIR="@HOST_DIR@/lib/pkgconfig:@HOST_DIR@/share/pkgconfig" \
-exec @HOST_DIR@/bin/pkgconf "$@"
diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
index 1d5ee8d819..95666f5469 100644
--- a/package/qt5/qt5webengine/qt5webengine.mk
+++ b/package/qt5/qt5webengine/qt5webengine.mk
@@ -55,12 +55,7 @@ QT5WEBENGINE_PRE_CONFIGURE_HOOKS += QT5WEBENGINE_PYTHON2_SYMLINK
QT5WEBENGINE_ENV += NINJAFLAGS="-j$(PARALLEL_JOBS)"
ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
-define QT5WEBENGINE_CREATE_HOST_PKG_CONFIG
- sed s%@HOST_DIR@%$(HOST_DIR)%g $(QT5WEBENGINE_PKGDIR)/host-pkg-config.in > $(@D)/host-bin/host-pkg-config
- chmod +x $(@D)/host-bin/host-pkg-config
-endef
-QT5WEBENGINE_PRE_CONFIGURE_HOOKS += QT5WEBENGINE_CREATE_HOST_PKG_CONFIG
-QT5WEBENGINE_ENV += GN_PKG_CONFIG_HOST=$(@D)/host-bin/host-pkg-config
+QT5WEBENGINE_ENV += GN_PKG_CONFIG_HOST=$(PKG_CONFIG_HOST_BINARY_HOST)
endif
define QT5WEBENGINE_CONFIGURE_CMDS
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 04/30] package/libkrb5: Add host tools package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (2 preceding siblings ...)
2019-12-05 17:14 ` [Buildroot] [PATCH v1 03/30] package/qt5/qt5webengine: Use Buildroot's host-pkg-config wrapper Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 05/30] package/jpeg-turbo: Add host install Michael Drake
` (26 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/libkrb5/libkrb5.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/package/libkrb5/libkrb5.mk b/package/libkrb5/libkrb5.mk
index 7c199129a3..b132d49e4f 100644
--- a/package/libkrb5/libkrb5.mk
+++ b/package/libkrb5/libkrb5.mk
@@ -58,3 +58,4 @@ LIBKRB5_CONF_OPTS += --disable-thread-support
endif
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 05/30] package/jpeg-turbo: Add host install
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (3 preceding siblings ...)
2019-12-05 17:14 ` [Buildroot] [PATCH v1 04/30] package/libkrb5: Add host tools package Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 06/30] package/llvm: add config to build backend for host arch Michael Drake
` (25 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
From: Thomas Preston <thomas.preston@codethink.co.uk>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/jpeg-turbo/jpeg-turbo.mk | 3 +++
1 file changed, 3 insertions(+)
diff --git a/package/jpeg-turbo/jpeg-turbo.mk b/package/jpeg-turbo/jpeg-turbo.mk
index 0c75cf1db5..88c61dec94 100644
--- a/package/jpeg-turbo/jpeg-turbo.mk
+++ b/package/jpeg-turbo/jpeg-turbo.mk
@@ -14,6 +14,8 @@ JPEG_TURBO_PROVIDES = jpeg
JPEG_TURBO_DEPENDENCIES = host-pkgconf
JPEG_TURBO_CONF_OPTS = -DWITH_JPEG8=ON
+# x86 simd support improves performance but needs host-nasm, so just turn it off
+HOST_JPEG_TURBO_CONF_OPTS += -DWITH_SIMD=OFF
ifeq ($(BR2_STATIC_LIBS),y)
JPEG_TURBO_CONF_OPTS += -DENABLE_STATIC=ON -DENABLE_SHARED=OFF
@@ -38,3 +40,4 @@ endef
JPEG_TURBO_POST_INSTALL_TARGET_HOOKS += JPEG_TURBO_REMOVE_USELESS_TOOLS
$(eval $(cmake-package))
+$(eval $(host-cmake-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 06/30] package/llvm: add config to build backend for host arch
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (4 preceding siblings ...)
2019-12-05 17:14 ` [Buildroot] [PATCH v1 05/30] package/jpeg-turbo: Add host install Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2020-02-29 18:17 ` Romain Naour
2019-12-05 17:14 ` [Buildroot] [PATCH v1 07/30] package/compiler-rt: new package Michael Drake
` (24 subsequent siblings)
30 siblings, 1 reply; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
From: Joseph Kogut <joseph.kogut@gmail.com>
When cross-compiling for a different architecture to the host,
LLVM only has target architecture support. This change adds
support for compiling for the host architecture as well.
Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/llvm/Config.in | 6 ++++++
package/llvm/llvm.mk | 6 +++++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/package/llvm/Config.in b/package/llvm/Config.in
index 1d21d879da..ae96d30a64 100644
--- a/package/llvm/Config.in
+++ b/package/llvm/Config.in
@@ -28,6 +28,12 @@ config BR2_PACKAGE_LLVM
if BR2_PACKAGE_LLVM
+config BR2_PACKAGE_HOST_LLVM_HOST_ARCH
+ string
+ default "X86" if BR2_HOSTARCH = "x86" || BR2_HOSTARCH = "x86_64"
+ default "AArch64" if BR2_HOSTARCH="aarch64"
+ default "ARM" if BR2_HOSTARCH = "arm"
+
config BR2_PACKAGE_LLVM_AMDGPU
bool "AMDGPU backend"
help
diff --git a/package/llvm/llvm.mk b/package/llvm/llvm.mk
index 2b2bcf336e..300ac3e300 100644
--- a/package/llvm/llvm.mk
+++ b/package/llvm/llvm.mk
@@ -42,7 +42,10 @@ LLVM_TARGET_ARCH = $(call qstrip,$(BR2_PACKAGE_LLVM_TARGET_ARCH))
# Build backend for target architecture. This include backends like AMDGPU.
LLVM_TARGETS_TO_BUILD = $(LLVM_TARGET_ARCH)
-HOST_LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))"
+HOST_LLVM_TARGETS_TO_BUILD = \
+ $(LLVM_TARGETS_TO_BUILD) \
+ $(call qstrip,$(BR2_PACKAGE_HOST_LLVM_HOST_ARCH))
+HOST_LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(HOST_LLVM_TARGETS_TO_BUILD))"
LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))"
# LLVM target to use for native code generation. This is required for JIT generation.
@@ -58,6 +61,7 @@ LLVM_CONF_OPTS += -DLLVM_TARGET_ARCH=$(LLVM_TARGET_ARCH)
# output only $(LLVM_TARGET_ARCH) if not, and mesa3d won't build as
# it thinks AMDGPU backend is not installed on the target.
ifeq ($(BR2_PACKAGE_LLVM_AMDGPU),y)
+HOST_LLVM_TARGETS_TO_BUILD += AMDGPU
LLVM_TARGETS_TO_BUILD += AMDGPU
endif
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 06/30] package/llvm: add config to build backend for host arch
2019-12-05 17:14 ` [Buildroot] [PATCH v1 06/30] package/llvm: add config to build backend for host arch Michael Drake
@ 2020-02-29 18:17 ` Romain Naour
0 siblings, 0 replies; 35+ messages in thread
From: Romain Naour @ 2020-02-29 18:17 UTC (permalink / raw)
To: buildroot
Hello Michael,
Le 05/12/2019 ? 18:14, Michael Drake a ?crit?:
> From: Joseph Kogut <joseph.kogut@gmail.com>
>
> When cross-compiling for a different architecture to the host,
> LLVM only has target architecture support. This change adds
> support for compiling for the host architecture as well.
>
> Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com>
> Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
> Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
> ---
> package/llvm/Config.in | 6 ++++++
> package/llvm/llvm.mk | 6 +++++-
> 2 files changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/package/llvm/Config.in b/package/llvm/Config.in
> index 1d21d879da..ae96d30a64 100644
> --- a/package/llvm/Config.in
> +++ b/package/llvm/Config.in
> @@ -28,6 +28,12 @@ config BR2_PACKAGE_LLVM
>
> if BR2_PACKAGE_LLVM
>
This should be outside of BR2_PACKAGE_LLVM, like BR2_PACKAGE_LLVM_TARGET_ARCH.
> +config BR2_PACKAGE_HOST_LLVM_HOST_ARCH
> + string
> + default "X86" if BR2_HOSTARCH = "x86" || BR2_HOSTARCH = "x86_64"
> + default "AArch64" if BR2_HOSTARCH="aarch64"
> + default "ARM" if BR2_HOSTARCH = "arm"
> +
> config BR2_PACKAGE_LLVM_AMDGPU
> bool "AMDGPU backend"
> help
> diff --git a/package/llvm/llvm.mk b/package/llvm/llvm.mk
> index 2b2bcf336e..300ac3e300 100644
> --- a/package/llvm/llvm.mk
> +++ b/package/llvm/llvm.mk
> @@ -42,7 +42,10 @@ LLVM_TARGET_ARCH = $(call qstrip,$(BR2_PACKAGE_LLVM_TARGET_ARCH))
>
> # Build backend for target architecture. This include backends like AMDGPU.
> LLVM_TARGETS_TO_BUILD = $(LLVM_TARGET_ARCH)
> -HOST_LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))"
> +HOST_LLVM_TARGETS_TO_BUILD = \
> + $(LLVM_TARGETS_TO_BUILD) \
> + $(call qstrip,$(BR2_PACKAGE_HOST_LLVM_HOST_ARCH))
> +HOST_LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(HOST_LLVM_TARGETS_TO_BUILD))"
Maybe we want to consider the case where llvm is supported by the host
(BR2_PACKAGE_HOST_LLVM_HOST_ARCH is set) but not by the selected target
(BR2_PACKAGE_LLVM_TARGET_ARCH is not set).
In this case LLVM_TARGETS_TO_BUILD would be -DLLVM_TARGETS_TO_BUILD=";X86" due
to a space before the host target string (X86).
Some one may need host-llvm (ex qdoc) [1]
[1] http://patchwork.ozlabs.org/patch/1246516/
> LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))"
>
> # LLVM target to use for native code generation. This is required for JIT generation.
> @@ -58,6 +61,7 @@ LLVM_CONF_OPTS += -DLLVM_TARGET_ARCH=$(LLVM_TARGET_ARCH)
> # output only $(LLVM_TARGET_ARCH) if not, and mesa3d won't build as
> # it thinks AMDGPU backend is not installed on the target.
> ifeq ($(BR2_PACKAGE_LLVM_AMDGPU),y)
> +HOST_LLVM_TARGETS_TO_BUILD += AMDGPU
Ok, we need to keep AMDGPU here to keep llvm-config working for the cross build
process.
Best regards,
Romain
> LLVM_TARGETS_TO_BUILD += AMDGPU
> endif
>
>
^ permalink raw reply [flat|nested] 35+ messages in thread
* [Buildroot] [PATCH v1 07/30] package/compiler-rt: new package
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (5 preceding siblings ...)
2019-12-05 17:14 ` [Buildroot] [PATCH v1 06/30] package/llvm: add config to build backend for host arch Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 08/30] package/webp: Enable host package build Michael Drake
` (23 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
From: Matt Weber <matthew.weber@rockwellcollins.com>
This patch adds support for the compiler-rt (CLANG runtime) library.
It builds a set of static libraries and installs them into the
CLANG/LLVM toolchain resource folder.
The compiler-rt fuzzer and address sanitizer tools require additional
LLVM binary tools installed to allow stack trace decoding actively during
executable analysis. This patch conditionally enables these tools.
https://github.com/google/sanitizers/wiki/AddressSanitizerCallStack
Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
Cc: Romain Naour <romain.naour@smile.fr>
Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Valentin Korenblit <valentinkorenblit@gmail.com>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/compiler-rt/Config.in | 14 +++++++++++
package/compiler-rt/compiler-rt.hash | 3 +++
package/compiler-rt/compiler-rt.mk | 37 ++++++++++++++++++++++++++++
package/llvm/llvm.mk | 11 ++++++++-
6 files changed, 66 insertions(+), 1 deletion(-)
create mode 100644 package/compiler-rt/Config.in
create mode 100644 package/compiler-rt/compiler-rt.hash
create mode 100644 package/compiler-rt/compiler-rt.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index a030be7890..b0b5c9153a 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1553,6 +1553,7 @@ F: package/bridge-utils/
F: package/checkpolicy/
F: package/checksec/
F: package/cgroupfs-mount/
+F: package/compiler-rt/
F: package/crda/
F: package/cunit/
F: package/dacapo/
diff --git a/package/Config.in b/package/Config.in
index 9e2b78fe6a..e92e3550d7 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1716,6 +1716,7 @@ menu "Other"
source "package/clapack/Config.in"
source "package/classpath/Config.in"
source "package/cmocka/Config.in"
+ source "package/compiler-rt/Config.in"
source "package/cppcms/Config.in"
source "package/cracklib/Config.in"
source "package/dawgdic/Config.in"
diff --git a/package/compiler-rt/Config.in b/package/compiler-rt/Config.in
new file mode 100644
index 0000000000..9afc0d9d60
--- /dev/null
+++ b/package/compiler-rt/Config.in
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_COMPILER_RT
+ bool "compiler-rt"
+ depends on BR2_PACKAGE_LLVM
+ depends on BR2_TOOLCHAIN_USES_GLIBC # asan lib requires
+ help
+ A collection of runtime libraries primarily used by clang and
+ llvm to provide builtins, sanitizer runtimes, and profiling
+ at runtime.
+
+ https://compiler-rt.llvm.org/
+
+comment "compiler-rt requires llvm to be enabled and a glibc toolchain"
+ depends on !BR2_PACKAGE_LLVM
+ depends on !BR2_TOOLCHAIN_USES_GLIBC
diff --git a/package/compiler-rt/compiler-rt.hash b/package/compiler-rt/compiler-rt.hash
new file mode 100644
index 0000000000..cf2f1890ad
--- /dev/null
+++ b/package/compiler-rt/compiler-rt.hash
@@ -0,0 +1,3 @@
+# Locally computed:
+sha256 56e4cd96dd1d8c346b07b4d6b255f976570c6f2389697347a6c3dcb9e820d10e compiler-rt-9.0.0.src.tar.xz
+sha256 dd27f8c290bcdc8368549cd7cd98710a9dbdc34122f2e096a1edb97824ed4148 LICENSE.TXT
diff --git a/package/compiler-rt/compiler-rt.mk b/package/compiler-rt/compiler-rt.mk
new file mode 100644
index 0000000000..a661e393e0
--- /dev/null
+++ b/package/compiler-rt/compiler-rt.mk
@@ -0,0 +1,37 @@
+################################################################################
+#
+# compiler-rt
+#
+################################################################################
+
+# Compiler-RT should be bumped together with LLVM and Clang as the run-time is
+# tied to the version of those tools
+COMPILER_RT_VERSION = 9.0.0
+COMPILER_RT_SOURCE = compiler-rt-$(COMPILER_RT_VERSION).src.tar.xz
+COMPILER_RT_SITE = http://llvm.org/releases/$(COMPILER_RT_VERSION)
+COMPILER_RT_LICENSE = Apache-2.0 with exceptions
+COMPILER_RT_LICENSE_FILES = LICENSE.TXT
+COMPILER_RT_DEPENDENCIES = host-clang llvm
+
+COMPILER_RT_INSTALL_STAGING = YES
+COMPILER_RT_INSTALL_TARGET = NO
+
+COMPILER_RT_CONF_OPTS = \
+ -DCOMPILER_RT_STANDALONE_BUILD=ON \
+ -DCOMPILER_RT_DEFAULT_TARGET_TRIPLE=$(GNU_TARGET_NAME) \
+ -DLLVM_CONFIG_PATH=$(HOST_DIR)/usr/bin/llvm-config
+
+# The installation of the target runtime libraries defaults to DESTDIR, however
+# host-clang resources directory needs a link so Clang can find the runtime
+# libraries in the same location they would be if built as part of the Clang
+# build. The "resources" directory is loosely documented and seems to be
+# assumed, as compiler-rt is usually build at the same time as Clang and not
+# standalone.
+define COMPILER_RT_SETUP_RUNTIME_LIBS
+ mkdir -p $(HOST_DIR)/lib/clang/$(HOST_CLANG_VERSION)/lib
+ ln -sf ../../../../$(GNU_TARGET_NAME)/sysroot/usr/lib/linux $(HOST_DIR)/lib/clang/$(HOST_CLANG_VERSION)/lib/linux
+ ln -sf ../../../$(GNU_TARGET_NAME)/sysroot/usr/share $(HOST_DIR)/lib/clang/$(HOST_CLANG_VERSION)/share
+endef
+COMPILER_RT_POST_INSTALL_STAGING_HOOKS += COMPILER_RT_SETUP_RUNTIME_LIBS
+
+$(eval $(cmake-package))
diff --git a/package/llvm/llvm.mk b/package/llvm/llvm.mk
index 300ac3e300..d15ca80d75 100644
--- a/package/llvm/llvm.mk
+++ b/package/llvm/llvm.mk
@@ -220,8 +220,17 @@ HOST_LLVM_CONF_OPTS += \
# We need to activate LLVM_INCLUDE_TOOLS, otherwise it does not generate
# libLLVM.so
LLVM_CONF_OPTS += \
- -DLLVM_INCLUDE_TOOLS=ON \
+ -DLLVM_INCLUDE_TOOLS=ON
+
+# The llvm-symbolizer binary is used by the Compiler-RT Fuzzer
+# and AddressSanitizer tools for stack traces.
+ifeq ($(BR2_PACKAGE_COMPILER_RT),y)
+LLVM_CONF_OPTS += \
+ -DLLVM_BUILD_TOOLS=ON
+else
+LLVM_CONF_OPTS += \
-DLLVM_BUILD_TOOLS=OFF
+endif
ifeq ($(BR2_PACKAGE_LLVM_RTTI),y)
HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=ON
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 08/30] package/webp: Enable host package build.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (6 preceding siblings ...)
2019-12-05 17:14 ` [Buildroot] [PATCH v1 07/30] package/compiler-rt: new package Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 09/30] package/Makefile.in: Provide TARGET_CROSS without path and trailing - Michael Drake
` (22 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/webp/webp.mk | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/package/webp/webp.mk b/package/webp/webp.mk
index d5df3f5da0..d67fe97bb7 100644
--- a/package/webp/webp.mk
+++ b/package/webp/webp.mk
@@ -11,6 +11,10 @@ WEBP_LICENSE = BSD-3-Clause
WEBP_LICENSE_FILES = COPYING
WEBP_INSTALL_STAGING = YES
+HOST_WEBP_CONF_OPTS += \
+ --enable-libwebpmux \
+ --enable-libwebpdemux
+
WEBP_CONF_OPTS += \
--with-jpegincludedir=$(STAGING_DIR)/usr/include \
--with-jpeglibdir=$(STAGING_DIR)/usr/lib \
@@ -54,3 +58,4 @@ WEBP_DEPENDENCIES += $(if $(BR2_PACKAGE_JPEG),jpeg)
WEBP_DEPENDENCIES += $(if $(BR2_PACKAGE_TIFF),tiff)
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 09/30] package/Makefile.in: Provide TARGET_CROSS without path and trailing -
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (7 preceding siblings ...)
2019-12-05 17:14 ` [Buildroot] [PATCH v1 08/30] package/webp: Enable host package build Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2020-02-29 19:03 ` Romain Naour
2019-12-05 17:14 ` [Buildroot] [PATCH v1 10/30] package/libcef: New package Michael Drake
` (21 subsequent siblings)
30 siblings, 1 reply; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
The LLVM/Clang toolchain takes the target triple as a `--target=`
argument, rather than having separate binaries with different
names for each target.
This change exposes just the triple as TARGET_CROSS_TRIPLE.
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/Makefile.in | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/package/Makefile.in b/package/Makefile.in
index 47808292b0..273e9de5d9 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -192,11 +192,13 @@ TARGET_CXXFLAGS += -mid-shared-library -mshared-library-id=0
endif
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-TARGET_CROSS = $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-
+TARGET_CROSS_TRIPLE = $(GNU_TARGET_NAME)
else
-TARGET_CROSS = $(HOST_DIR)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
+TARGET_CROSS_TRIPLE = $(TOOLCHAIN_EXTERNAL_PREFIX)
endif
+TARGET_CROSS = $(HOST_DIR)/bin/$(TARGET_CROSS_TRIPLE)-
+
# Define TARGET_xx variables for all common binutils/gcc
TARGET_AR = $(TARGET_CROSS)ar
TARGET_AS = $(TARGET_CROSS)as
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 09/30] package/Makefile.in: Provide TARGET_CROSS without path and trailing -
2019-12-05 17:14 ` [Buildroot] [PATCH v1 09/30] package/Makefile.in: Provide TARGET_CROSS without path and trailing - Michael Drake
@ 2020-02-29 19:03 ` Romain Naour
0 siblings, 0 replies; 35+ messages in thread
From: Romain Naour @ 2020-02-29 19:03 UTC (permalink / raw)
To: buildroot
Hi Michael,
Le 05/12/2019 ? 18:14, Michael Drake a ?crit?:
> The LLVM/Clang toolchain takes the target triple as a `--target=`
> argument, rather than having separate binaries with different
> names for each target.
>
> This change exposes just the triple as TARGET_CROSS_TRIPLE.
>
> Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
> Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
> ---
> package/Makefile.in | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 47808292b0..273e9de5d9 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -192,11 +192,13 @@ TARGET_CXXFLAGS += -mid-shared-library -mshared-library-id=0
> endif
>
> ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
> -TARGET_CROSS = $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-
> +TARGET_CROSS_TRIPLE = $(GNU_TARGET_NAME)
GNU_TARGET_NAME is used all over the place in Buildroot. Adding
TARGET_CROSS_TRIPLE would require in the manual [1] to clarify the use of one or
the other.
[1] docs/manual/adding-packages-generic.txt
> else
> -TARGET_CROSS = $(HOST_DIR)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
> +TARGET_CROSS_TRIPLE = $(TOOLCHAIN_EXTERNAL_PREFIX)
> endif
>
> +TARGET_CROSS = $(HOST_DIR)/bin/$(TARGET_CROSS_TRIPLE)-
TOOLCHAIN_EXTERNAL_PREFIX can be used in a package, see [2] as example.
[2] https://git.buildroot.net/buildroot/tree/package/wine/wine.mk?h=2020.02-rc2#n39
> +
> # Define TARGET_xx variables for all common binutils/gcc
> TARGET_AR = $(TARGET_CROSS)ar
> TARGET_AS = $(TARGET_CROSS)as
>
^ permalink raw reply [flat|nested] 35+ messages in thread
* [Buildroot] [PATCH v1 10/30] package/libcef: New package
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (8 preceding siblings ...)
2019-12-05 17:14 ` [Buildroot] [PATCH v1 09/30] package/Makefile.in: Provide TARGET_CROSS without path and trailing - Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 11/30] package/libcef: Add option to build cefsimple Michael Drake
` (20 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
Adds the Chromium Embedded Framework library.
The libcef library is built using the LLVM (clang) toolchain.
This is a library for creating applications with embedded web
browser functionality. The Chromium Embedded Framework library
itself does not include the Chromium source code.
The libcef build works by augmenting the Chromium build to
include the extra Chromium Embedded Framework sources.
As such, this package fetches the libcef source, and also the
corresponding Chromium source release. It extracts first the
Chromium source into the package build directory, and then the
libcef source into a cef/ subdirectory. This is the source
tree layout required by the Chromium Embedded Framework project.
The Chromium Embedded Framework project carries some patches
for the Chromium source, and these are applied in a pre-patch
hook step.
Since Chromium is an enormous monolithic source tree containing
many other projects, there are a lot of licenses involved. As
such, we have a script to collect up the list of License files
and generate an include makefile to list them. The script is
provided in the package's scripts directory.
Coauthored-by: Thomas Preston <thomas.preston@codethink.co.uk>
Cc: Patrick Glaser <pglaser@tesla.com>
Cc: Jon duSaint <jdusaint@tesla.com>
Cc: Enis Lavery <elavery@tesla.com>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/Config.in | 1 +
...et-pkg_config-wrapper-handle-sysroot.patch | 52 +
...e-cef_use_gtk-for-cefclient-GTK-deps.patch | 57 +
package/libcef/Config.in | 88 ++
.../build/toolchain/linux/unbundle/BUILD.gn | 55 +
package/libcef/libcef.hash | 3 +
package/libcef/libcef.license-files.inc | 1131 +++++++++++++++++
package/libcef/libcef.mk | 401 ++++++
.../libcef/scripts/gather-license-files.sh | 53 +
package/libcef/scripts/version.sh | 48 +
package/libcef/templates/cef_version.h | 70 +
11 files changed, 1959 insertions(+)
create mode 100644 package/libcef/0001-pkg_config-Let-pkg_config-wrapper-handle-sysroot.patch
create mode 100644 package/libcef/0002-BUILD.gn-Use-cef_use_gtk-for-cefclient-GTK-deps.patch
create mode 100644 package/libcef/Config.in
create mode 100644 package/libcef/build/toolchain/linux/unbundle/BUILD.gn
create mode 100644 package/libcef/libcef.hash
create mode 100644 package/libcef/libcef.license-files.inc
create mode 100644 package/libcef/libcef.mk
create mode 100755 package/libcef/scripts/gather-license-files.sh
create mode 100755 package/libcef/scripts/version.sh
create mode 100644 package/libcef/templates/cef_version.h
diff --git a/package/Config.in b/package/Config.in
index e92e3550d7..c6940d6694 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1604,6 +1604,7 @@ menu "Networking"
source "package/gupnp-dlna/Config.in"
source "package/ibrcommon/Config.in"
source "package/ibrdtn/Config.in"
+ source "package/libcef/Config.in"
source "package/libcgi/Config.in"
source "package/libcgicc/Config.in"
source "package/libcoap/Config.in"
diff --git a/package/libcef/0001-pkg_config-Let-pkg_config-wrapper-handle-sysroot.patch b/package/libcef/0001-pkg_config-Let-pkg_config-wrapper-handle-sysroot.patch
new file mode 100644
index 0000000000..1b6c9cb9e9
--- /dev/null
+++ b/package/libcef/0001-pkg_config-Let-pkg_config-wrapper-handle-sysroot.patch
@@ -0,0 +1,52 @@
+From 9ae5ac511bbb1c9ba9c1b8160ea82132b441028a Mon Sep 17 00:00:00 2001
+From: Thomas Preston <thomas.preston@codethink.co.uk>
+Date: Thu, 31 Oct 2019 17:14:20 +0000
+Subject: [PATCH] pkg_config: Let pkg_config wrapper handle sysroot
+
+If use_sysroot=true, the pkg_config.gni forces the pkg-config.py script
+to use the sysroot prefix, even when we're using a pkg_config wrapper,
+for example in a custom cross-compile environment.
+
+The pkg_config wrapper script may already handle the custom sysroot, for
+example in Buildroot:
+https://git.buildroot.net/buildroot/tree/package/pkgconf/pkg-config.in
+
+Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
+---
+ build/config/linux/pkg_config.gni | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/build/config/linux/pkg_config.gni b/build/config/linux/pkg_config.gni
+index 428e44ac0a03..03551a6ff273 100644
+--- a/build/config/linux/pkg_config.gni
++++ b/build/config/linux/pkg_config.gni
+@@ -30,6 +30,8 @@ declare_args() {
+ # environments.
+ # Leaving it blank defaults to searching PATH for 'pkg-config' and relying on
+ # the sysroot mechanism to find the right .pc files.
++ # Setting this value disables any pkg-config.py customisations such as `-s`,
++ # this should be handled in the wrapper itself.
+ pkg_config = ""
+
+ # A optional pkg-config wrapper to use for tools built on the host.
+@@ -53,7 +55,7 @@ pkg_config_script = "//build/config/linux/pkg-config.py"
+ # need to invoke it manually.
+ pkg_config_args = []
+
+-if (sysroot != "") {
++if (pkg_config == "" && sysroot != "") {
+ # Pass the sysroot if we're using one (it requires the CPU arch also).
+ pkg_config_args += [
+ "-s",
+@@ -71,7 +73,7 @@ if (pkg_config != "") {
+ }
+
+ # Only use the custom libdir when building with the target sysroot.
+-if (target_sysroot != "" && sysroot == target_sysroot) {
++if (pkg_config == "" && target_sysroot != "" && sysroot == target_sysroot) {
+ pkg_config_args += [
+ "--system_libdir",
+ system_libdir,
+--
+2.20.1
+
diff --git a/package/libcef/0002-BUILD.gn-Use-cef_use_gtk-for-cefclient-GTK-deps.patch b/package/libcef/0002-BUILD.gn-Use-cef_use_gtk-for-cefclient-GTK-deps.patch
new file mode 100644
index 0000000000..ae35eee3b9
--- /dev/null
+++ b/package/libcef/0002-BUILD.gn-Use-cef_use_gtk-for-cefclient-GTK-deps.patch
@@ -0,0 +1,57 @@
+From df279ff3b18f15356162fa141c3840dfa1fe9d1c Mon Sep 17 00:00:00 2001
+From: Thomas Preston <thomas.preston@codethink.co.uk>
+Date: Thu, 31 Oct 2019 11:20:36 +0000
+Subject: [PATCH] BUILD.gn: Use cef_use_gtk for cefclient GTK deps
+
+The cefclient target depends on GTK packages that are not available in
+the default sysroot environment. So we should only use them when we are
+not using the sysroot. Alternatively, the developer might not want to
+use the GTK dependencies at all, in which case they can set
+`cef_use_gtk=false`.
+
+Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
+Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>t
+---
+ cef/BUILD.gn | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/cef/BUILD.gn b/cef/BUILD.gn
+index 6aa0a84d..de8f472b 100644
+--- a/cef/BUILD.gn
++++ b/cef/BUILD.gn
+@@ -235,6 +235,13 @@ if (is_win) {
+ import("//build/config/win/manifest.gni")
+ }
+
++declare_args() {
++ # The cefclient target depends on GTK packages that are not available in the
++ # default sysroot environment. So we should only use them when we are not
++ # using the sysroot. Alternatively, the developer might not want to use the
++ # GTK dependencies at all, in which case they can set `cef_use_gtk=false`.
++ cef_use_gtk = !use_sysroot
++}
+
+ #
+ # Verify required global arguments configured via `gn args`.
+@@ -2055,7 +2062,9 @@ if (is_mac) {
+ "glib-2.0",
+ ]
+ }
++ }
+
++ if (is_linux && cef_use_gtk) {
+ pkg_config("gtk") {
+ packages = [
+ "gmodule-2.0",
+@@ -2149,7 +2158,7 @@ if (is_mac) {
+ "X11",
+ ]
+
+- if (!use_sysroot) {
++ if (cef_use_gtk) {
+ configs += [
+ ":gtk",
+ ":gtkglext",
+--
+2.23.0
+
diff --git a/package/libcef/Config.in b/package/libcef/Config.in
new file mode 100644
index 0000000000..e0d8929bce
--- /dev/null
+++ b/package/libcef/Config.in
@@ -0,0 +1,88 @@
+config BR2_PACKAGE_LIBCEF_TARGET_ARCH
+ string
+ default "arm" if BR2_arm
+ default "arm64" if BR2_aarch64
+ default "mips" if BR2_mips
+ default "x86" if BR2_i386
+ default "x64" if BR2_x86_64
+
+config BR2_PACKAGE_LIBCEF_ARCH_SUPPORTS
+ bool
+ default y if BR2_PACKAGE_LIBCEF_TARGET_ARCH != ""
+ depends on BR2_HOSTARCH = "x86_64"
+
+comment "libcef requires a toolchain with glibc, wchar, threads"
+ depends on !BR2_TOOLCHAIN_USES_GLIBC || \
+ !BR2_TOOLCHAIN_HAS_THREADS || \
+ !BR2_USE_WCHAR
+
+comment "libcef needs the standard C++ library"
+ depends on !BR2_INSTALL_LIBSTDCPP
+
+comment "libcef isn't compatible with flat binary formats"
+ depends on BR2_BINFMT_FLAT
+
+comment "libcef depends on shared libraries being enabled"
+ depends on BR2_STATIC_LIBS
+
+comment "libcef requires an MMU"
+ depends on !BR2_USE_MMU
+
+comment "libcef requires LLVM (for compiler-rt) to build"
+ depends on !BR2_PACKAGE_LLVM
+
+comment "libcef depends on GTK3, X.org and OpenGL backend"
+ depends on !BR2_PACKAGE_LIBGTK3 || !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL
+
+config BR2_PACKAGE_LIBCEF
+ bool "libcef"
+ depends on BR2_HOST_GCC_AT_LEAST_4_9 # gn requires -std=c++14
+ depends on BR2_INSTALL_LIBSTDCPP # harfbuzz, icu, pango
+ depends on BR2_USE_WCHAR # at-spi2-atk, icu, glib2, libgtk3, pango
+ depends on BR2_TOOLCHAIN_USES_GLIBC # compiler-rt
+ depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib, dbus, glib2, icu
+ depends on BR2_USE_MMU # at-spi2-atk, dbus, glib2, libgtk3, libkrb5, pango
+ depends on !BR2_BINFMT_FLAT # icu
+ depends on !BR2_STATIC_LIBS # libopenh264, libkrb5
+ depends on BR2_PACKAGE_LIBCEF_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_HAS_LIBGL
+ depends on BR2_PACKAGE_LLVM # compiler-rt
+ depends on BR2_PACKAGE_XORG7
+ depends on BR2_PACKAGE_LIBGTK3
+ select BR2_PACKAGE_AT_SPI2_ATK
+ select BR2_PACKAGE_ALSA_LIB
+ select BR2_PACKAGE_COMPILER_RT
+ select BR2_PACKAGE_DBUS
+ select BR2_PACKAGE_FFMPEG
+ select BR2_PACKAGE_FLAC
+ select BR2_PACKAGE_FREETYPE
+ select BR2_PACKAGE_HARFBUZZ
+ select BR2_PACKAGE_LLVM_ENABLE_HOST_ARCH
+ select BR2_PACKAGE_ICU
+ select BR2_PACKAGE_JPEG_TURBO
+ select BR2_PACKAGE_LIBDRM
+ select BR2_PACKAGE_LIBERATION # runtime
+ select BR2_PACKAGE_LIBGLIB2
+ select BR2_PACKAGE_LIBGTK3_X11
+ select BR2_PACKAGE_LIBKRB5
+ select BR2_PACKAGE_LIBNSS
+ select BR2_PACKAGE_LIBPNG
+ select BR2_PACKAGE_LIBXML2
+ select BR2_PACKAGE_LIBXSLT
+ select BR2_PACKAGE_PCIUTILS
+ select BR2_PACKAGE_PANGO
+ select BR2_PACKAGE_WEBP
+ select BR2_PACKAGE_WEBP_MUX
+ select BR2_PACKAGE_WEBP_DEMUX
+ select BR2_PACKAGE_XLIB_LIBXCOMPOSITE
+ select BR2_PACKAGE_XLIB_LIBXCURSOR
+ select BR2_PACKAGE_XLIB_LIBXRANDR
+ select BR2_PACKAGE_XLIB_LIBXSCRNSAVER
+ select BR2_PACKAGE_XLIB_LIBXV
+ select BR2_PACKAGE_ZLIB
+ help
+ Chromium Embedded Framework focuses on facilitating embedded
+ browser use cases in third-party applications, based on the
+ Google Chromium web browser.
+
+ https://bitbucket.org/chromiumembedded/cef
diff --git a/package/libcef/build/toolchain/linux/unbundle/BUILD.gn b/package/libcef/build/toolchain/linux/unbundle/BUILD.gn
new file mode 100644
index 0000000000..60bc96799d
--- /dev/null
+++ b/package/libcef/build/toolchain/linux/unbundle/BUILD.gn
@@ -0,0 +1,55 @@
+# Chromium build/toolchain/linux/unbundle/BUILD.gn override
+# Use this file to "unbundle" the default (target), host and V8 snapshot
+# toolchains. This is how we get Buildroot Makefile variables into the Chromium
+# build system.
+
+import("//build/toolchain/gcc_toolchain.gni")
+
+gcc_toolchain("default") {
+ cc = getenv("CC")
+ cxx = getenv("CXX")
+ ar = getenv("AR")
+ nm = getenv("NM")
+ ld = cxx
+
+ extra_cflags = getenv("CFLAGS")
+ extra_cppflags = getenv("CPPFLAGS")
+ extra_cxxflags = getenv("CXXFLAGS")
+ extra_ldflags = getenv("LDFLAGS")
+
+ toolchain_args = {
+ current_cpu = target_cpu
+ current_os = target_os
+ }
+}
+
+gcc_toolchain("host") {
+ cc = getenv("BUILD_CC")
+ cxx = getenv("BUILD_CXX")
+ ar = getenv("BUILD_AR")
+ nm = getenv("BUILD_NM")
+ ld = cxx
+
+ extra_cflags = getenv("BUILD_CFLAGS")
+ extra_cppflags = getenv("BUILD_CPPFLAGS")
+ extra_cxxflags = getenv("BUILD_CXXFLAGS")
+ extra_asmflags = getenv("BUILD_ASMFLAGS")
+ extra_ldflags = getenv("BUILD_LDFLAGS")
+
+ toolchain_args = {
+ current_cpu = host_cpu
+ current_os = host_os
+ # Buildroot doesn't a sysroot when building host tools.
+ use_sysroot = false
+ # Disable the target_sysroot override, which forces a sysroot no matter what
+ target_sysroot = ""
+ }
+}
+
+# TODO V8 snapshot toolchain
+# For targets which have the same memory architecture as the host, such as an
+# x86_64 host building for an x86_64 target, the host toolchain can be used to
+# build the V8 snapshot. For targets which have different memory architectures
+# such as x86_64 host building for ARM 32-bit, there must be a separate
+# toolchain capable of building a target-compatible V8 snapshot. This is tricky
+# to do in Buildroot as it does not yet support multiple host architectures.
diff --git a/package/libcef/libcef.hash b/package/libcef/libcef.hash
new file mode 100644
index 0000000000..83cd0a82d8
--- /dev/null
+++ b/package/libcef/libcef.hash
@@ -0,0 +1,3 @@
+# Locally computed:
+sha256 ba170ef22a1b099ba5a023853a780a52e2408fbbcd6e36dda45dc82ba91ec03a 4907ec52f3fe52eea2c5b759f6bbf7c99a295afe.tar.bz2
+sha256 ddc5794097d65ba19c1ae359c2057b08921e7b38b7afe9d5ec45f5e8b9a87462 chromium-78.0.3904.70.tar.xz
diff --git a/package/libcef/libcef.license-files.inc b/package/libcef/libcef.license-files.inc
new file mode 100644
index 0000000000..17463f97e7
--- /dev/null
+++ b/package/libcef/libcef.license-files.inc
@@ -0,0 +1,1131 @@
+# Generated with package/libcef/scripts/gather-license-files.sh
+LIBCEF_LICENSE_FILES = \
+ base/third_party/cityhash/COPYING \
+ base/third_party/dmg_fp/LICENSE \
+ base/third_party/dynamic_annotations/LICENSE \
+ base/third_party/icu/LICENSE \
+ base/third_party/libevent/LICENSE \
+ base/third_party/nspr/LICENSE \
+ base/third_party/superfasthash/LICENSE \
+ base/third_party/symbolize/LICENSE \
+ base/third_party/valgrind/LICENSE \
+ base/third_party/xdg_mime/LICENSE \
+ base/third_party/xdg_user_dirs/LICENSE \
+ build/fuchsia/fidlgen_js/third_party/enum34/LICENSE \
+ buildtools/LICENSE \
+ buildtools/third_party/libc++abi/trunk/LICENSE.TXT \
+ buildtools/third_party/libc++/trunk/LICENSE.TXT \
+ buildtools/third_party/libc++/trunk/utils/google-benchmark/LICENSE \
+ buildtools/third_party/libunwind/trunk/LICENSE.TXT \
+ cef/LICENSE.txt \
+ cef/tools/yapf/LICENSE \
+ chrome/android/third_party/compositor_animator/LICENSE \
+ chrome/browser/resources/chromeos/camera/src/LICENSE \
+ chrome/browser/resources/chromeos/zip_archiver/LICENSE \
+ chrome/installer/mac/third_party/bsdiff/LICENSE \
+ chrome/installer/mac/third_party/xz/LICENSE \
+ chrome/test/vr/perf/latency/third_party/maestro/LICENSE \
+ chrome/third_party/mock4js/LICENSE \
+ chrome/third_party/mozilla_security_manager/LICENSE \
+ components/cronet/third_party/curl_headers/COPYING \
+ components/cronet/third_party/curl_headers/LICENSE \
+ courgette/third_party/divsufsort/LICENSE \
+ ios/third_party/blink/LICENSE \
+ ios/third_party/earl_grey2/LICENSE \
+ ios/third_party/earl_grey/LICENSE \
+ ios/third_party/edo/LICENSE \
+ ios/third_party/firebase/LICENSE \
+ ios/third_party/fishhook/LICENSE \
+ ios/third_party/gtx/LICENSE \
+ ios/third_party/material_components_ios/LICENSE \
+ ios/third_party/material_font_disk_loader_ios/LICENSE \
+ ios/third_party/material_internationalization_ios/LICENSE \
+ ios/third_party/material_roboto_font_loader_ios/LICENSE \
+ ios/third_party/material_sprited_animation_view_ios/LICENSE \
+ ios/third_party/material_text_accessibility_ios/LICENSE \
+ ios/third_party/motion_animator_objc/LICENSE \
+ ios/third_party/motion_interchange_objc/LICENSE \
+ ios/third_party/motion_transitioning_objc/LICENSE \
+ ios/third_party/ochamcrest/LICENSE \
+ ios/third_party/webkit/LICENSE \
+ LICENSE \
+ LICENSE.chromium_os \
+ mojo/public/LICENSE \
+ native_client/COPYING \
+ native_client/LICENSE \
+ native_client_sdk/src/COPYING \
+ native_client_sdk/src/libraries/third_party/pthreads-win32/COPYING \
+ native_client_sdk/src/libraries/third_party/pthreads-win32/COPYING.LIB \
+ native_client_sdk/src/libraries/third_party/pthreads-win32/LICENSE \
+ native_client_sdk/src/LICENSE \
+ native_client/src/third_party/pnacl_native_newlib_subset/COPYING.NEWLIB \
+ net/third_party/mozilla_security_manager/LICENSE \
+ net/third_party/nss/LICENSE \
+ net/third_party/quiche/src/LICENSE \
+ net/third_party/uri_template/LICENSE \
+ ppapi/LICENSE \
+ third_party/abseil-cpp/LICENSE \
+ third_party/accessibility-audit/LICENSE \
+ third_party/accessibility_test_framework/LICENSE \
+ third_party/afl/src/docs/COPYING \
+ third_party/android_build_tools/bundletool/LICENSE \
+ third_party/android_crazy_linker/LICENSE \
+ third_party/android_crazy_linker/src/LICENSE \
+ third_party/android_data_chart/LICENSE \
+ third_party/android_deps/libs/android_arch_core_common/LICENSE \
+ third_party/android_deps/libs/android_arch_lifecycle_common_java8/LICENSE \
+ third_party/android_deps/libs/android_arch_lifecycle_common/LICENSE \
+ third_party/android_deps/libs/android_arch_lifecycle_runtime/LICENSE \
+ third_party/android_deps/libs/androidx_annotation_annotation/LICENSE \
+ third_party/android_deps/libs/androidx_lifecycle_lifecycle_common/LICENSE \
+ third_party/android_deps/libs/androidx_test_core/LICENSE \
+ third_party/android_deps/libs/androidx_test_ext_junit/LICENSE \
+ third_party/android_deps/libs/androidx_test_monitor/LICENSE \
+ third_party/android_deps/libs/androidx_test_rules/LICENSE \
+ third_party/android_deps/libs/androidx_test_runner/LICENSE \
+ third_party/android_deps/libs/com_android_support_animated_vector_drawable/LICENSE \
+ third_party/android_deps/libs/com_android_support_appcompat_v7/LICENSE \
+ third_party/android_deps/libs/com_android_support_cardview_v7/LICENSE \
+ third_party/android_deps/libs/com_android_support_design/LICENSE \
+ third_party/android_deps/libs/com_android_support_gridlayout_v7/LICENSE \
+ third_party/android_deps/libs/com_android_support_leanback_v17/LICENSE \
+ third_party/android_deps/libs/com_android_support_mediarouter_v7/LICENSE \
+ third_party/android_deps/libs/com_android_support_multidex/LICENSE \
+ third_party/android_deps/libs/com_android_support_palette_v7/LICENSE \
+ third_party/android_deps/libs/com_android_support_preference_leanback_v17/LICENSE \
+ third_party/android_deps/libs/com_android_support_preference_v14/LICENSE \
+ third_party/android_deps/libs/com_android_support_preference_v7/LICENSE \
+ third_party/android_deps/libs/com_android_support_recyclerview_v7/LICENSE \
+ third_party/android_deps/libs/com_android_support_support_annotations/LICENSE \
+ third_party/android_deps/libs/com_android_support_support_compat/LICENSE \
+ third_party/android_deps/libs/com_android_support_support_core_ui/LICENSE \
+ third_party/android_deps/libs/com_android_support_support_core_utils/LICENSE \
+ third_party/android_deps/libs/com_android_support_support_fragment/LICENSE \
+ third_party/android_deps/libs/com_android_support_support_media_compat/LICENSE \
+ third_party/android_deps/libs/com_android_support_support_v13/LICENSE \
+ third_party/android_deps/libs/com_android_support_support_v4/LICENSE \
+ third_party/android_deps/libs/com_android_support_support_vector_drawable/LICENSE \
+ third_party/android_deps/libs/com_android_support_transition/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_auth_api_phone/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_auth_base/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_auth/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_base/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_basement/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_cast/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_clearcut/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_fido/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_flags/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_gcm/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_iid/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_location/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_phenotype/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_places_placereport/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_stats/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_tasks/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_vision_common/LICENSE \
+ third_party/android_deps/libs/com_google_android_gms_play_services_vision/LICENSE \
+ third_party/android_deps/libs/com_google_ar_core/LICENSE \
+ third_party/android_deps/libs/com_google_code_findbugs_jsr305/LICENSE \
+ third_party/android_deps/libs/com_google_dagger_dagger_compiler/LICENSE \
+ third_party/android_deps/libs/com_google_dagger_dagger/LICENSE \
+ third_party/android_deps/libs/com_google_dagger_dagger_producers/LICENSE \
+ third_party/android_deps/libs/com_google_dagger_dagger_spi/LICENSE \
+ third_party/android_deps/libs/com_google_errorprone_error_prone_annotations/LICENSE \
+ third_party/android_deps/libs/com_google_errorprone_javac_shaded/LICENSE \
+ third_party/android_deps/libs/com_google_googlejavaformat_google_java_format/LICENSE \
+ third_party/android_deps/libs/com_google_guava_guava/LICENSE \
+ third_party/android_deps/libs/com_google_j2objc_j2objc_annotations/LICENSE \
+ third_party/android_deps/libs/com_google_protobuf_protobuf_lite/LICENSE \
+ third_party/android_deps/libs/com_squareup_javapoet/LICENSE \
+ third_party/android_deps/libs/javax_annotation_jsr250_api/LICENSE \
+ third_party/android_deps/libs/javax_inject_javax_inject/LICENSE \
+ third_party/android_deps/libs/net_sf_kxml_kxml2/LICENSE \
+ third_party/android_deps/libs/org_checkerframework_checker_compat_qual/LICENSE \
+ third_party/android_deps/libs/org_codehaus_mojo_animal_sniffer_annotations/LICENSE \
+ third_party/android_deps/licenses/Android_SDK_License-December_9_2016.txt \
+ third_party/android_deps/licenses/Codehaus_License-2009.txt \
+ third_party/android_media/LICENSE \
+ third_party/android_opengl/LICENSE \
+ third_party/android_platform/LICENSE \
+ third_party/android_sdk/LICENSE \
+ third_party/android_support_test_runner/LICENSE \
+ third_party/android_swipe_refresh/LICENSE \
+ third_party/android_system_sdk/LICENSE \
+ third_party/angle/LICENSE \
+ third_party/angle/src/common/third_party/smhasher/LICENSE \
+ third_party/angle/src/common/third_party/xxhash/LICENSE \
+ third_party/angle/src/tests/test_utils/third_party/LICENSE \
+ third_party/angle/src/third_party/compiler/LICENSE \
+ third_party/angle/src/third_party/libXNVCtrl/LICENSE \
+ third_party/angle/third_party/deqp/src/external/graphicsfuzz/data/gles3/graphicsfuzz/LICENSE \
+ third_party/angle/third_party/deqp/src/external/vulkancts/LICENSE \
+ third_party/angle/third_party/deqp/src/LICENSE \
+ third_party/angle/third_party/deqp/src/MODULE_LICENSE_APACHE2 \
+ third_party/angle/third_party/glmark2/src/COPYING \
+ third_party/angle/third_party/glmark2/src/COPYING.SGI \
+ third_party/angle/third_party/glmark2/src/src/libjpeg-turbo/LICENSE.md \
+ third_party/angle/third_party/glmark2/src/src/libmatrix/COPYING \
+ third_party/angle/third_party/glmark2/src/src/libpng/LICENSE \
+ third_party/angle/third_party/rapidjson/src/bin/jsonschema/LICENSE \
+ third_party/angle/third_party/rapidjson/src/contrib/natvis/LICENSE \
+ third_party/angle/third_party/rapidjson/src/license.txt \
+ third_party/angle/third_party/vulkan-headers/src/LICENSE.txt \
+ third_party/angle/third_party/vulkan-loader/src/LICENSE.txt \
+ third_party/angle/third_party/vulkan-tools/src/LICENSE.txt \
+ third_party/angle/third_party/vulkan-tools/src/winrt/VulkanRT-License.txt \
+ third_party/angle/third_party/vulkan-validation-layers/src/LICENSE.txt \
+ third_party/angle/util/windows/third_party/StackWalker/LICENSE \
+ third_party/apache-mac/LICENSE \
+ third_party/apache-portable-runtime/LICENSE \
+ third_party/apache-win32/LICENSE.txt \
+ third_party/apk-patch-size-estimator/LICENSE \
+ third_party/apple_apsl/LICENSE \
+ third_party/arcore-android-sdk-client/LICENSE \
+ third_party/arcore-android-sdk/LICENSE \
+ third_party/ashmem/LICENSE \
+ third_party/axe-core/LICENSE \
+ third_party/bazel/LICENSE \
+ third_party/binutils/LICENSE \
+ third_party/blanketjs/LICENSE \
+ third_party/blink/LICENSE_FOR_ABOUT_CREDITS \
+ third_party/blink/perf_tests/speedometer/resources/flightjs-example-app/components/es5-shim/LICENSE \
+ third_party/blink/perf_tests/speedometer/resources/flightjs-example-app/components/jasmine-flight/LICENSE.md \
+ third_party/blink/perf_tests/speedometer/resources/flightjs-example-app/LICENSE.md \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/LICENSE \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/architecture-examples/react/license.md \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/LICENSE \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/architecture-examples/react/node_modules/director/LICENSE \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/LICENSE \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/architecture-examples/react/node_modules/react/LICENSE \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/LICENSE \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/LICENSE \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/LICENSE \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE \
+ third_party/blink/perf_tests/speedometer/resources/todomvc/license.md \
+ third_party/blink/perf_tests/svg/resources/LICENSES \
+ third_party/blink/renderer/core/LICENSE-APPLE \
+ third_party/blink/renderer/core/LICENSE-LGPL-2 \
+ third_party/blink/renderer/core/LICENSE-LGPL-2.1 \
+ third_party/blink/renderer/devtools/front_end/audits/lighthouse/LICENSE \
+ third_party/blink/renderer/devtools/front_end/audits_worker/lighthouse/LICENSE \
+ third_party/blink/renderer/devtools/front_end/cm/LICENSE \
+ third_party/blink/renderer/devtools/front_end/cm/LICENSE_python \
+ third_party/blink/renderer/devtools/front_end/cm_modes/LICENSE \
+ third_party/blink/renderer/devtools/front_end/formatter_worker/acorn/LICENSE \
+ third_party/blink/renderer/devtools/front_end/terminal/xterm.js/LICENSE \
+ third_party/blink/renderer/devtools/LICENSE \
+ third_party/blink/renderer/devtools/scripts/closure/COPYING \
+ third_party/blink/renderer/platform/testing/data/third_party/Noto/LICENSE_OFL.txt \
+ third_party/blink/renderer/platform/testing/data/third_party/Roboto/LICENSE.txt \
+ third_party/blink/renderer/platform/wtf/dtoa/COPYING \
+ third_party/blink/renderer/platform/wtf/dtoa/LICENSE \
+ third_party/boringssl/src/LICENSE \
+ third_party/boringssl/src/third_party/fiat/LICENSE \
+ third_party/boringssl/src/third_party/googletest/LICENSE \
+ third_party/boringssl/src/third_party/sike/LICENSE \
+ third_party/boringssl/src/third_party/wycheproof_testvectors/LICENSE \
+ third_party/bouncycastle/LICENSE \
+ third_party/breakpad/breakpad/LICENSE \
+ third_party/breakpad/breakpad/src/third_party/curl/COPYING \
+ third_party/breakpad/breakpad/src/third_party/libdisasm/LICENSE \
+ third_party/breakpad/LICENSE \
+ third_party/brotli/LICENSE \
+ third_party/bspatch/LICENSE \
+ third_party/byte_buddy/LICENSE \
+ third_party/cacheinvalidation/src/google/cacheinvalidation/COPYING \
+ third_party/cacheinvalidation/src/java/COPYING \
+ third_party/catapult/common/eslint/LICENSE \
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin/bench/LICENSE.cssmin \
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin/LICENSE \
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin/LICENSE \
+ third_party/catapult/experimental/trace_on_tap/LICENSE \
+ third_party/catapult/experimental/trace_on_tap/third_party/pako/LICENSE \
+ third_party/catapult/LICENSE \
+ third_party/catapult/systrace/profile_chrome/third_party/COPYING \
+ third_party/catapult/systrace/systrace/LICENSE \
+ third_party/catapult/telemetry/third_party/altgraph/doc/license.rst \
+ third_party/catapult/telemetry/third_party/chromite/LICENSE \
+ third_party/catapult/telemetry/third_party/flot/LICENSE.txt \
+ third_party/catapult/telemetry/third_party/mock/LICENSE.txt \
+ third_party/catapult/telemetry/third_party/modulegraph/doc/license.rst \
+ third_party/catapult/telemetry/third_party/mox3/COPYING.txt \
+ third_party/catapult/telemetry/third_party/pyfakefs/pyfakefs/COPYING \
+ third_party/catapult/telemetry/third_party/tsproxy/LICENSE \
+ third_party/catapult/telemetry/third_party/WebKit/LICENSE \
+ third_party/catapult/telemetry/third_party/websocket-client/LICENSE \
+ third_party/catapult/third_party/apiclient/LICENSE \
+ third_party/catapult/third_party/beautifulsoup4/COPYING.txt \
+ third_party/catapult/third_party/cachetools/LICENSE \
+ third_party/catapult/third_party/certifi/LICENSE.txt \
+ third_party/catapult/third_party/chai/LICENSE \
+ third_party/catapult/third_party/chardet/LICENSE \
+ third_party/catapult/third_party/cloudstorage/COPYING \
+ third_party/catapult/third_party/coverage/LICENSE.txt \
+ third_party/catapult/third_party/d3/LICENSE \
+ third_party/catapult/third_party/flot/LICENSE.txt \
+ third_party/catapult/third_party/gae_ts_mon/LICENSE \
+ third_party/catapult/third_party/google-auth/LICENSE \
+ third_party/catapult/third_party/google-endpoints/enum/LICENSE \
+ third_party/catapult/third_party/gsutil/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/apitools/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/argcomplete/LICENSE.rst \
+ third_party/catapult/third_party/gsutil/third_party/boto/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/crcmod/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/crcmod_osx/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/fasteners/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/funcsigs/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/gcs-oauth2-boto-plugin/COPYING \
+ third_party/catapult/third_party/gsutil/third_party/httplib2/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/mock/LICENSE.txt \
+ third_party/catapult/third_party/gsutil/third_party/monotonic/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/oauth2client/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/pyasn1/docs/source/license.rst \
+ third_party/catapult/third_party/gsutil/third_party/pyasn1/LICENSE.rst \
+ third_party/catapult/third_party/gsutil/third_party/pyasn1-modules/LICENSE.txt \
+ third_party/catapult/third_party/gsutil/third_party/python-gflags/COPYING \
+ third_party/catapult/third_party/gsutil/third_party/retry-decorator/LICENSE.txt \
+ third_party/catapult/third_party/gsutil/third_party/rsa/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/six/LICENSE \
+ third_party/catapult/third_party/gsutil/third_party/socksipy-branch/LICENSE \
+ third_party/catapult/third_party/html5lib-python/doc/license.rst \
+ third_party/catapult/third_party/html5lib-python/LICENSE \
+ third_party/catapult/third_party/idb/LICENSE \
+ third_party/catapult/third_party/idna/LICENSE.rst \
+ third_party/catapult/third_party/ijson/LICENSE.txt \
+ third_party/catapult/third_party/mocha/LICENSE \
+ third_party/catapult/third_party/mox3/COPYING.txt \
+ third_party/catapult/third_party/oauth2client/LICENSE \
+ third_party/catapult/third_party/Paste/docs/license.txt \
+ third_party/catapult/third_party/polymer2/bower_components/accessibility-developer-tools/LICENSE \
+ third_party/catapult/third_party/polymer2/bower_components/async/LICENSE \
+ third_party/catapult/third_party/polymer2/bower_components/google-apis/LICENSE \
+ third_party/catapult/third_party/polymer2/bower_components/google-signin/LICENSE \
+ third_party/catapult/third_party/polymer2/bower_components/lodash/LICENSE \
+ third_party/catapult/third_party/polymer2/bower_components/marked/LICENSE.md \
+ third_party/catapult/third_party/polymer2/bower_components/mocha/LICENSE \
+ third_party/catapult/third_party/polymer2/bower_components/moment/LICENSE \
+ third_party/catapult/third_party/polymer2/bower_components/moment-timezone/LICENSE \
+ third_party/catapult/third_party/polymer2/bower_components/polymer/LICENSE.txt \
+ third_party/catapult/third_party/polymer2/bower_components/polymer-redux/LICENSE \
+ third_party/catapult/third_party/polymer2/bower_components/sinon-chai/LICENSE.txt \
+ third_party/catapult/third_party/polymer2/bower_components/stacky/LICENSE \
+ third_party/catapult/third_party/polymer2/bower_components/web-animations-js/COPYING \
+ third_party/catapult/third_party/polymer2/bower_components/webcomponentsjs/LICENSE.md \
+ third_party/catapult/third_party/polymer2/LICENSE.polymer \
+ third_party/catapult/third_party/polymer3/bower_components/polymer/LICENSE.txt \
+ third_party/catapult/third_party/polymer3/LICENSE.polymer \
+ third_party/catapult/third_party/polymer/components/google-apis/LICENSE \
+ third_party/catapult/third_party/polymer/components/google-signin/LICENSE \
+ third_party/catapult/third_party/polymer/components/polymer/LICENSE.txt \
+ third_party/catapult/third_party/polymer/components/promise-polyfill/LICENSE \
+ third_party/catapult/third_party/polymer/components/shadycss/LICENSE.md \
+ third_party/catapult/third_party/polymer/components/web-animations-js/COPYING \
+ third_party/catapult/third_party/polymer/LICENSE.polymer \
+ third_party/catapult/third_party/pyasn1/LICENSE.txt \
+ third_party/catapult/third_party/pyasn1_modules/LICENSE.txt \
+ third_party/catapult/third_party/pyfakefs/COPYING \
+ third_party/catapult/third_party/pyserial/LICENSE.txt \
+ third_party/catapult/third_party/python_gflags/COPYING \
+ third_party/catapult/third_party/redux/LICENSE.md \
+ third_party/catapult/third_party/requests/LICENSE \
+ third_party/catapult/third_party/requests_toolbelt/LICENSE \
+ third_party/catapult/third_party/rsa/LICENSE.txt \
+ third_party/catapult/third_party/six/LICENSE \
+ third_party/catapult/third_party/snap-it/LICENSE \
+ third_party/catapult/third_party/tsmon_client/LICENSE \
+ third_party/catapult/third_party/typ/LICENSE \
+ third_party/catapult/third_party/urllib3/LICENSE.txt \
+ third_party/catapult/third_party/vinn/third_party/parse5/LICENSE \
+ third_party/catapult/third_party/vinn/third_party/v8/LICENSE \
+ third_party/catapult/third_party/vinn/third_party/v8/LICENSE.strongtalk \
+ third_party/catapult/third_party/vinn/third_party/v8/LICENSE.v8 \
+ third_party/catapult/third_party/vinn/third_party/v8/LICENSE.valgrind \
+ third_party/catapult/third_party/webapp2/LICENSE \
+ third_party/catapult/third_party/WebOb/docs/license.txt \
+ third_party/catapult/third_party/zipfile/LICENSE \
+ third_party/catapult/tracing/LICENSE \
+ third_party/catapult/tracing/third_party/chai/LICENSE \
+ third_party/catapult/tracing/third_party/d3/LICENSE \
+ third_party/catapult/tracing/third_party/devscripts/COPYING \
+ third_party/catapult/tracing/third_party/gl-matrix/LICENSE.md \
+ third_party/catapult/tracing/third_party/jpeg-js/LICENSE \
+ third_party/catapult/tracing/third_party/jszip/LICENSE.markdown \
+ third_party/catapult/tracing/third_party/mocha/LICENSE \
+ third_party/catapult/tracing/third_party/pako/LICENSE \
+ third_party/ced/LICENSE \
+ third_party/ced/src/LICENSE \
+ third_party/chaijs/LICENSE \
+ third_party/checkstyle/LICENSE \
+ third_party/checkstyle/LICENSE.apache20 \
+ third_party/chromevox/LICENSE \
+ third_party/chromevox/third_party/closure-library/LICENSE \
+ third_party/chromevox/third_party/sre/LICENSE \
+ third_party/chromite/LICENSE \
+ third_party/chromite/licensing/extra_package_licenses/libarchive-3.1.2.LICENSE \
+ third_party/chromite/scripts/sysmon/LICENSE \
+ third_party/chromite/third_party/boto/LICENSE \
+ third_party/chromite/third_party/httplib2/LICENSE \
+ third_party/chromite/third_party/oauth2client/LICENSE \
+ third_party/chromite/third_party/six/LICENSE \
+ third_party/cld_3/LICENSE \
+ third_party/cld_3/src/LICENSE \
+ third_party/closure_compiler/compiler/COPYING \
+ third_party/closure_compiler/LICENSE \
+ third_party/colorama/LICENSE \
+ third_party/colorama/src/LICENSE.txt \
+ third_party/crashpad/crashpad/LICENSE \
+ third_party/crashpad/crashpad/third_party/apple_cf/APPLE_LICENSE \
+ third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/LICENSE \
+ third_party/crashpad/crashpad/third_party/getopt/LICENSE \
+ third_party/crashpad/crashpad/third_party/glibc/COPYING.LIB \
+ third_party/crashpad/crashpad/third_party/xnu/APPLE_LICENSE \
+ third_party/crc32c/src/LICENSE \
+ third_party/cros_system_api/LICENSE \
+ third_party/custom_tabs_client/LICENSE \
+ third_party/d3/src/LICENSE \
+ third_party/dav1d/libdav1d/COPYING \
+ third_party/dav1d/LICENSE \
+ third_party/dawn/LICENSE \
+ third_party/decklink/LICENSE \
+ third_party/depot_tools/LICENSE \
+ third_party/depot_tools/third_party/colorama/LICENSE.txt \
+ third_party/depot_tools/third_party/httplib2/LICENSE \
+ third_party/depot_tools/third_party/logilab/astroid/LICENSE.txt \
+ third_party/depot_tools/third_party/logilab/lazy_object_proxy/LICENSE \
+ third_party/depot_tools/third_party/logilab/wrapt/LICENSE \
+ third_party/depot_tools/third_party/mock/LICENSE.txt \
+ third_party/depot_tools/third_party/oauth2client/LICENSE \
+ third_party/depot_tools/third_party/pylint/LICENSE.txt \
+ third_party/depot_tools/third_party/repo/COPYING \
+ third_party/depot_tools/third_party/retry_decorator/LICENSE.google \
+ third_party/depot_tools/third_party/schema/LICENSE-MIT \
+ third_party/devscripts/COPYING \
+ third_party/devtools-node-modules/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/acorn-jsx/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/acorn/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/ajv/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/ansi-escapes/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/ansi-regex/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/ansi-styles/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/argparse/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/astral-regex/license \
+ third_party/devtools-node-modules/third_party/node_modules/@babel/code-frame/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/@babel/highlight/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/balanced-match/LICENSE.md \
+ third_party/devtools-node-modules/third_party/node_modules/brace-expansion/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/callsites/license \
+ third_party/devtools-node-modules/third_party/node_modules/chalk/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/chardet/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/cli-cursor/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/cli-width/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/color-convert/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/color-name/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/concat-map/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/cross-spawn/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/debug/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/deep-is/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/doctrine/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/doctrine/LICENSE.closure-compiler \
+ third_party/devtools-node-modules/third_party/node_modules/doctrine/LICENSE.esprima \
+ third_party/devtools-node-modules/third_party/node_modules/emoji-regex/LICENSE-MIT.txt \
+ third_party/devtools-node-modules/third_party/node_modules/escape-string-regexp/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/eslint/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/eslint-scope/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/eslint-utils/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/eslint-visitor-keys/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/espree/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/esprima/LICENSE.BSD \
+ third_party/devtools-node-modules/third_party/node_modules/esquery/license.txt \
+ third_party/devtools-node-modules/third_party/node_modules/estraverse/LICENSE.BSD \
+ third_party/devtools-node-modules/third_party/node_modules/esutils/LICENSE.BSD \
+ third_party/devtools-node-modules/third_party/node_modules/external-editor/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/fast-deep-equal/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/fast-json-stable-stringify/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/fast-levenshtein/LICENSE.md \
+ third_party/devtools-node-modules/third_party/node_modules/figures/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/file-entry-cache/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/flat-cache/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/flatted/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/fs.realpath/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/functional-red-black-tree/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/globals/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/glob/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/glob-parent/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/glob-parent/node_modules/is-glob/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/has-flag/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/iconv-lite/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/ignore/LICENSE-MIT \
+ third_party/devtools-node-modules/third_party/node_modules/import-fresh/license \
+ third_party/devtools-node-modules/third_party/node_modules/inflight/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/inherits/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/inquirer/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/inquirer/node_modules/ansi-regex/license \
+ third_party/devtools-node-modules/third_party/node_modules/inquirer/node_modules/strip-ansi/license \
+ third_party/devtools-node-modules/third_party/node_modules/isexe/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/is-extglob/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/is-fullwidth-code-point/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/is-glob/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/is-promise/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/json-schema-traverse/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/json-stable-stringify-without-jsonify/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/js-tokens/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/js-yaml/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/levn/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/lodash/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/mimic-fn/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/minimatch/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/minimist/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/mkdirp/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/ms/license.md \
+ third_party/devtools-node-modules/third_party/node_modules/mute-stream/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/nice-try/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/once/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/onetime/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/optionator/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/os-tmpdir/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/parent-module/license \
+ third_party/devtools-node-modules/third_party/node_modules/path-dirname/license \
+ third_party/devtools-node-modules/third_party/node_modules/path-is-absolute/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/path-key/license \
+ third_party/devtools-node-modules/third_party/node_modules/prelude-ls/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/progress/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/punycode/LICENSE-MIT.txt \
+ third_party/devtools-node-modules/third_party/node_modules/regexpp/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/resolve-from/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/restore-cursor/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/rimraf/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/run-async/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/rxjs/_esm2015/LICENSE.txt \
+ third_party/devtools-node-modules/third_party/node_modules/rxjs/_esm5/LICENSE.txt \
+ third_party/devtools-node-modules/third_party/node_modules/rxjs/LICENSE.txt \
+ third_party/devtools-node-modules/third_party/node_modules/rxjs/src/LICENSE.txt \
+ third_party/devtools-node-modules/third_party/node_modules/safer-buffer/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/semver/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/shebang-command/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/shebang-regex/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/signal-exit/LICENSE.txt \
+ third_party/devtools-node-modules/third_party/node_modules/slice-ansi/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/sprintf-js/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/string-width/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/strip-ansi/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/strip-json-comments/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/supports-color/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/table/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/table/node_modules/ansi-regex/license \
+ third_party/devtools-node-modules/third_party/node_modules/table/node_modules/string-width/license \
+ third_party/devtools-node-modules/third_party/node_modules/table/node_modules/strip-ansi/license \
+ third_party/devtools-node-modules/third_party/node_modules/text-table/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/through/LICENSE.APACHE2 \
+ third_party/devtools-node-modules/third_party/node_modules/through/LICENSE.MIT \
+ third_party/devtools-node-modules/third_party/node_modules/tmp/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/tslib/LICENSE.txt \
+ third_party/devtools-node-modules/third_party/node_modules/type-check/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/which/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/wordwrap/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/wrappy/LICENSE \
+ third_party/devtools-node-modules/third_party/node_modules/write/LICENSE \
+ third_party/dom_distiller_js/LICENSE \
+ third_party/emoji-segmenter/LICENSE \
+ third_party/emoji-segmenter/src/LICENSE \
+ third_party/errorprone/LICENSE \
+ third_party/espresso/LICENSE \
+ third_party/expat/files/COPYING \
+ third_party/feed/LICENSE \
+ third_party/ffmpeg/chromium/scripts/license_texts/full_lgpl.txt \
+ third_party/ffmpeg/COPYING.GPLv2 \
+ third_party/ffmpeg/COPYING.GPLv3 \
+ third_party/ffmpeg/COPYING.LGPLv2.1 \
+ third_party/ffmpeg/COPYING.LGPLv3 \
+ third_party/ffmpeg/LICENSE.md \
+ third_party/flac/COPYING.FDL \
+ third_party/flac/COPYING.GPL \
+ third_party/flac/COPYING.LGPL \
+ third_party/flac/COPYING.Xiph \
+ third_party/flatbuffers/LICENSE \
+ third_party/flatbuffers/src/dart/LICENSE \
+ third_party/flatbuffers/src/LICENSE.txt \
+ third_party/flot/LICENSE.txt \
+ third_party/fontconfig/LICENSE \
+ third_party/fontconfig/src/COPYING \
+ third_party/freetype/src/docs/GPLv2.TXT \
+ third_party/freetype/src/docs/LICENSE.TXT \
+ third_party/fuchsia-sdk/LICENSE \
+ third_party/gestures/gestures/LICENSE \
+ third_party/gestures/LICENSE \
+ third_party/gif_player/LICENSE \
+ third_party/glfw/src/LICENSE.md \
+ third_party/glslang/LICENSE \
+ third_party/glslang/src/LICENSE.txt \
+ third_party/google_android_play_core/LICENSE \
+ third_party/google_input_tools/LICENSE \
+ third_party/google_input_tools/third_party/closure_library/LICENSE \
+ third_party/googletest/src/googlemock/LICENSE \
+ third_party/googletest/src/googlemock/scripts/generator/LICENSE \
+ third_party/googletest/src/googletest/LICENSE \
+ third_party/googletest/src/LICENSE \
+ third_party/google_toolbox_for_mac/LICENSE \
+ third_party/google_trust_services/src/LICENSE \
+ third_party/google-truth/LICENSE \
+ third_party/grpc/LICENSE \
+ third_party/grpc/src/LICENSE \
+ third_party/grpc/src/src/php/ext/grpc/LICENSE \
+ third_party/grpc/src/third_party/address_sorting/LICENSE \
+ third_party/grpc/src/third_party/nanopb/LICENSE.txt \
+ third_party/grpc/src/third_party/rake-compiler-dock/LICENSE.txt \
+ third_party/gson/LICENSE \
+ third_party/guava/LICENSE \
+ third_party/gvr-android-keyboard/LICENSE \
+ third_party/gvr-android-sdk/LICENSE \
+ third_party/hamcrest/LICENSE \
+ third_party/harfbuzz-ng/src/COPYING \
+ third_party/harfbuzz-ng/src/test/shaping/data/aots/COPYING \
+ third_party/harfbuzz-ng/src/test/shaping/data/in-house/COPYING \
+ third_party/harfbuzz-ng/src/test/shaping/data/text-rendering-tests/COPYING \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-assamese/utrrs/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-bengali/utrrs/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-devanagari/utrrs/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-gujarati/utrrs/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-gurmukhi/utrrs/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-kannada/utrrs/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-malayalam/utrrs/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-oriya/utrrs/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-sinhala/utrrs/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-tamil/utrrs/LICENSE \
+ third_party/harfbuzz-ng/src/test/shaping/texts/in-house/shaper-indic/script-telugu/utrrs/LICENSE \
+ third_party/hunspell/COPYING \
+ third_party/hunspell/COPYING.LESSER \
+ third_party/hunspell/COPYING.MPL \
+ third_party/iaccessible2/LICENSE \
+ third_party/iccjpeg/LICENSE \
+ third_party/icu4j/LICENSE \
+ third_party/icu/LICENSE \
+ third_party/icu/scripts/LICENSE \
+ third_party/ijar/LICENSE \
+ third_party/ink/LICENSE \
+ third_party/inspector_protocol/LICENSE \
+ third_party/intellij/LICENSE \
+ third_party/isimpledom/LICENSE \
+ third_party/jacoco/LICENSE \
+ third_party/javalang/LICENSE \
+ third_party/jinja2/LICENSE \
+ third_party/jsoncpp/LICENSE \
+ third_party/jsoncpp/source/LICENSE \
+ third_party/jstemplate/COPYING \
+ third_party/junit/LICENSE \
+ third_party/khronos/LICENSE \
+ third_party/lcov/COPYING \
+ third_party/leveldatabase/src/LICENSE \
+ third_party/libaddressinput/LICENSE \
+ third_party/libaddressinput/src/cpp/LICENSE.chromium \
+ third_party/libaddressinput/src/LICENSE \
+ third_party/libaom/source/libaom/LICENSE \
+ third_party/libaom/source/libaom/third_party/fastfeat/LICENSE \
+ third_party/libaom/source/libaom/third_party/googletest/src/googletest/LICENSE \
+ third_party/libaom/source/libaom/third_party/libwebm/LICENSE.TXT \
+ third_party/libaom/source/libaom/third_party/vector/LICENSE \
+ third_party/libaom/source/libaom/third_party/x86inc/LICENSE \
+ third_party/libcxx-pretty-printers/LICENSE \
+ third_party/libevdev/LICENSE \
+ third_party/libFuzzer/LICENSE.TXT \
+ third_party/libjingle_xmpp/LICENSE \
+ third_party/libjpeg/LICENSE \
+ third_party/libjpeg_turbo/LICENSE.md \
+ third_party/liblouis/LICENSE \
+ third_party/liblouis/src/COPYING \
+ third_party/liblouis/src/COPYING.LESSER \
+ third_party/liblouis/src/License.md \
+ third_party/libovr/LICENSE \
+ third_party/libphonenumber/dist/cpp/LICENSE \
+ third_party/libphonenumber/dist/LICENSE \
+ third_party/libphonenumber/dist/LICENSE.Chromium \
+ third_party/libphonenumber/LICENSE \
+ third_party/libpng/LICENSE \
+ third_party/libprotobuf-mutator/src/LICENSE \
+ third_party/libsecret/LICENSE \
+ third_party/libsrtp/LICENSE \
+ third_party/libsync/LICENSE \
+ third_party/libudev/LICENSE \
+ third_party/libusb/src/COPYING \
+ third_party/libvpx/source/libvpx/LICENSE \
+ third_party/libvpx/source/libvpx/third_party/googletest/src/LICENSE \
+ third_party/libvpx/source/libvpx/third_party/libwebm/LICENSE.TXT \
+ third_party/libvpx/source/libvpx/third_party/libyuv/LICENSE \
+ third_party/libvpx/source/libvpx/third_party/x86inc/LICENSE \
+ third_party/libwebm/source/LICENSE.TXT \
+ third_party/libwebp/LICENSE \
+ third_party/libxml/src/COPYING \
+ third_party/libXNVCtrl/LICENSE \
+ third_party/libyuv/LICENSE \
+ third_party/llvm/clang/LICENSE.TXT \
+ third_party/llvm/clang/test/SemaObjC/warn-assign-property-nscopying.m \
+ third_party/llvm/clang/tools/clang-format-vs/ClangFormat/license.txt \
+ third_party/llvm/clang-tools-extra/clangd/clients/clangd-vscode/LICENSE \
+ third_party/llvm/clang-tools-extra/clang-tidy/cert/LICENSE.TXT \
+ third_party/llvm/clang-tools-extra/clang-tidy/hicpp/LICENSE.TXT \
+ third_party/llvm/clang-tools-extra/clang-tidy-vs/ClangTidy/license.txt \
+ third_party/llvm/clang-tools-extra/LICENSE.TXT \
+ third_party/llvm/compiler-rt/LICENSE.TXT \
+ third_party/llvm/libclc/LICENSE.TXT \
+ third_party/llvm/libcxxabi/LICENSE.TXT \
+ third_party/llvm/libcxx/LICENSE.TXT \
+ third_party/llvm/libcxx/utils/google-benchmark/LICENSE \
+ third_party/llvm/libunwind/LICENSE.TXT \
+ third_party/llvm/lldb/LICENSE.TXT \
+ third_party/llvm/lldb/third_party/Python/module/pexpect-4.6/LICENSE \
+ third_party/llvm/lldb/third_party/Python/module/ptyprocess-0.6.0/LICENSE \
+ third_party/llvm/lldb/third_party/Python/module/six/LICENSE \
+ third_party/llvm/lld/LICENSE.TXT \
+ third_party/llvm/llgo/LICENSE.TXT \
+ third_party/llvm/llgo/third_party/gofrontend/libffi/LICENSE \
+ third_party/llvm/llgo/third_party/gofrontend/libgo/LICENSE \
+ third_party/llvm/llgo/third_party/gofrontend/LICENSE \
+ third_party/llvm/llgo/third_party/gotools/LICENSE \
+ third_party/llvm/llgo/third_party/liner/COPYING \
+ third_party/llvm/llvm/include/llvm/Support/LICENSE.TXT \
+ third_party/llvm/llvm/LICENSE.TXT \
+ third_party/llvm/llvm/test/YAMLParser/LICENSE.txt \
+ third_party/llvm/llvm/tools/msbuild/license.txt \
+ third_party/llvm/llvm/utils/benchmark/LICENSE \
+ third_party/llvm/llvm/utils/unittest/googlemock/LICENSE.txt \
+ third_party/llvm/llvm/utils/unittest/googletest/LICENSE.TXT \
+ third_party/llvm/openmp/LICENSE.txt \
+ third_party/llvm/parallel-libs/acxxel/LICENSE.TXT \
+ third_party/llvm/polly/lib/External/isl/LICENSE \
+ third_party/llvm/polly/LICENSE.txt \
+ third_party/llvm/polly/tools/GPURuntime/LICENSE.TXT \
+ third_party/llvm/pstl/LICENSE.txt \
+ third_party/logilab/logilab/astroid/LICENSE.txt \
+ third_party/logilab/logilab/common/LICENSE.txt \
+ third_party/lottie/LICENSE \
+ third_party/lzma_sdk/LICENSE \
+ third_party/markdown/LICENSE \
+ third_party/markupsafe/LICENSE \
+ third_party/material_design_icons/LICENSE \
+ third_party/mesa_headers/LICENSE \
+ third_party/metrics_proto/LICENSE \
+ third_party/microsoft_webauthn/LICENSE \
+ third_party/minigbm/LICENSE \
+ third_party/minigbm/src/LICENSE \
+ third_party/minizip/src/lib/bzip2/LICENSE \
+ third_party/minizip/src/LICENSE \
+ third_party/mocha/LICENSE \
+ third_party/mockito/LICENSE \
+ third_party/modp_b64/LICENSE \
+ third_party/motemplate/LICENSE \
+ third_party/mozilla/LICENSE \
+ third_party/nasm/LICENSE \
+ third_party/netty4/LICENSE \
+ third_party/netty-tcnative/LICENSE \
+ third_party/node/LICENSE \
+ third_party/node/node_modules/acorn-jsx/LICENSE \
+ third_party/node/node_modules/acorn-jsx/node_modules/acorn/LICENSE \
+ third_party/node/node_modules/acorn/LICENSE \
+ third_party/node/node_modules/ajv-keywords/LICENSE \
+ third_party/node/node_modules/ajv/LICENSE \
+ third_party/node/node_modules/ansi-escape-sequences/LICENSE \
+ third_party/node/node_modules/ansi-escapes/license \
+ third_party/node/node_modules/ansi-regex/license \
+ third_party/node/node_modules/ansi-styles/license \
+ third_party/node/node_modules/argparse/LICENSE \
+ third_party/node/node_modules/array-back/LICENSE \
+ third_party/node/node_modules/brace-expansion/LICENSE \
+ third_party/node/node_modules/buffer-from/LICENSE \
+ third_party/node/node_modules/chalk/license \
+ third_party/node/node_modules/circular-json/LICENSE.txt \
+ third_party/node/node_modules/circular-json/template/license.after \
+ third_party/node/node_modules/circular-json/template/license.before \
+ third_party/node/node_modules/cli-cursor/license \
+ third_party/node/node_modules/cli-width/LICENSE \
+ third_party/node/node_modules/clone/LICENSE \
+ third_party/node/node_modules/coa/LICENSE \
+ third_party/node/node_modules/coa/node_modules/ansi-styles/license \
+ third_party/node/node_modules/coa/node_modules/chalk/license \
+ third_party/node/node_modules/coa/node_modules/supports-color/license \
+ third_party/node/node_modules/code-point-at/license \
+ third_party/node/node_modules/co/LICENSE \
+ third_party/node/node_modules/color-convert/LICENSE \
+ third_party/node/node_modules/color-name/LICENSE \
+ third_party/node/node_modules/commander/LICENSE \
+ third_party/node/node_modules/command-line-args/LICENSE \
+ third_party/node/node_modules/command-line-usage/LICENSE \
+ third_party/node/node_modules/concat-map/LICENSE \
+ third_party/node/node_modules/concat-stream/LICENSE \
+ third_party/node/node_modules/core-js/LICENSE \
+ third_party/node/node_modules/core-util-is/LICENSE \
+ third_party/node/node_modules/crisper/LICENSE \
+ third_party/node/node_modules/csso/LICENSE \
+ third_party/node/node_modules/csso/node_modules/css-tree/LICENSE \
+ third_party/node/node_modules/css-select-base-adapter/LICENSE \
+ third_party/node/node_modules/css-select/LICENSE \
+ third_party/node/node_modules/css-tree/LICENSE \
+ third_party/node/node_modules/css-url-regex/license \
+ third_party/node/node_modules/css-what/LICENSE \
+ third_party/node/node_modules/debug/LICENSE \
+ third_party/node/node_modules/deep-extend/LICENSE \
+ third_party/node/node_modules/deep-is/LICENSE \
+ third_party/node/node_modules/define-properties/LICENSE \
+ third_party/node/node_modules/d/LICENSE \
+ third_party/node/node_modules/doctrine/LICENSE \
+ third_party/node/node_modules/doctrine/LICENSE.closure-compiler \
+ third_party/node/node_modules/doctrine/LICENSE.esprima \
+ third_party/node/node_modules/dom5/LICENSE \
+ third_party/node/node_modules/domelementtype/LICENSE \
+ third_party/node/node_modules/dom-serializer/LICENSE \
+ third_party/node/node_modules/domutils/LICENSE \
+ third_party/node/node_modules/entities/LICENSE \
+ third_party/node/node_modules/es5-ext/LICENSE \
+ third_party/node/node_modules/es6-iterator/LICENSE \
+ third_party/node/node_modules/es6-map/LICENSE \
+ third_party/node/node_modules/es6-set/LICENSE \
+ third_party/node/node_modules/es6-symbol/LICENSE \
+ third_party/node/node_modules/es6-weak-map/LICENSE \
+ third_party/node/node_modules/es-abstract/LICENSE \
+ third_party/node/node_modules/escape-string-regexp/license \
+ third_party/node/node_modules/escodegen/LICENSE.BSD \
+ third_party/node/node_modules/escodegen/node_modules/esprima/LICENSE.BSD \
+ third_party/node/node_modules/escodegen/node_modules/source-map/LICENSE \
+ third_party/node/node_modules/escope/LICENSE.BSD \
+ third_party/node/node_modules/eslint/LICENSE \
+ third_party/node/node_modules/espree/LICENSE \
+ third_party/node/node_modules/esprima/LICENSE.BSD \
+ third_party/node/node_modules/esquery/license.txt \
+ third_party/node/node_modules/es-to-primitive/LICENSE \
+ third_party/node/node_modules/estraverse/LICENSE.BSD \
+ third_party/node/node_modules/esutils/LICENSE.BSD \
+ third_party/node/node_modules/event-emitter/LICENSE \
+ third_party/node/node_modules/feature-detect-es6/LICENSE \
+ third_party/node/node_modules/figures/license \
+ third_party/node/node_modules/file-entry-cache/LICENSE \
+ third_party/node/node_modules/find-replace/LICENSE \
+ third_party/node/node_modules/flat-cache/LICENSE \
+ third_party/node/node_modules/fs.realpath/LICENSE \
+ third_party/node/node_modules/function-bind/LICENSE \
+ third_party/node/node_modules/generate-function/LICENSE \
+ third_party/node/node_modules/generate-object-property/LICENSE \
+ third_party/node/node_modules/globals/license \
+ third_party/node/node_modules/glob/LICENSE \
+ third_party/node/node_modules/graceful-fs/LICENSE \
+ third_party/node/node_modules/has-ansi/license \
+ third_party/node/node_modules/has-flag/license \
+ third_party/node/node_modules/has/LICENSE-MIT \
+ third_party/node/node_modules/has-symbols/LICENSE \
+ third_party/node/node_modules/inflight/LICENSE \
+ third_party/node/node_modules/inherits/LICENSE \
+ third_party/node/node_modules/interpret/LICENSE \
+ third_party/node/node_modules/is-callable/LICENSE \
+ third_party/node/node_modules/is-date-object/LICENSE \
+ third_party/node/node_modules/is-fullwidth-code-point/license \
+ third_party/node/node_modules/is-my-json-valid/LICENSE \
+ third_party/node/node_modules/is-property/LICENSE \
+ third_party/node/node_modules/is-regex/LICENSE \
+ third_party/node/node_modules/is-resolvable/LICENSE \
+ third_party/node/node_modules/is-symbol/LICENSE \
+ third_party/node/node_modules/jsonschema/LICENSE \
+ third_party/node/node_modules/json-stable-stringify/LICENSE \
+ third_party/node/node_modules/js-tokens/LICENSE \
+ third_party/node/node_modules/js-yaml/LICENSE \
+ third_party/node/node_modules/levn/LICENSE \
+ third_party/node/node_modules/lodash.camelcase/LICENSE \
+ third_party/node/node_modules/lodash/LICENSE \
+ third_party/node/node_modules/lodash.padend/LICENSE \
+ third_party/node/node_modules/mdn-data/LICENSE \
+ third_party/node/node_modules/minimatch/LICENSE \
+ third_party/node/node_modules/minimist/LICENSE \
+ third_party/node/node_modules/mkdirp/LICENSE \
+ third_party/node/node_modules/mute-stream/LICENSE \
+ third_party/node/node_modules/next-tick/LICENSE \
+ third_party/node/node_modules/nth-check/LICENSE \
+ third_party/node/node_modules/number-is-nan/license \
+ third_party/node/node_modules/object-assign/license \
+ third_party/node/node_modules/object.getownpropertydescriptors/LICENSE \
+ third_party/node/node_modules/object-keys/LICENSE \
+ third_party/node/node_modules/object.values/LICENSE \
+ third_party/node/node_modules/once/LICENSE \
+ third_party/node/node_modules/onetime/license \
+ third_party/node/node_modules/optionator/LICENSE \
+ third_party/node/node_modules/os-homedir/license \
+ third_party/node/node_modules/parse5/LICENSE \
+ third_party/node/node_modules/path-is-absolute/license \
+ third_party/node/node_modules/path-is-inside/LICENSE.txt \
+ third_party/node/node_modules/path-parse/LICENSE \
+ third_party/node/node_modules/pluralize/LICENSE \
+ third_party/node/node_modules/polymer-analyzer/LICENSE \
+ third_party/node/node_modules/polymer-analyzer/node_modules/clone/LICENSE \
+ third_party/node/node_modules/polymer-analyzer/node_modules/dom5/LICENSE \
+ third_party/node/node_modules/polymer-analyzer/node_modules/parse5/LICENSE \
+ third_party/node/node_modules/polymer-bundler/LICENSE \
+ third_party/node/node_modules/polymer-bundler/node_modules/clone/LICENSE \
+ third_party/node/node_modules/polymer-bundler/node_modules/dom5/LICENSE \
+ third_party/node/node_modules/polymer-bundler/node_modules/parse5/LICENSE \
+ third_party/node/node_modules/polymer-css-build/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/ansi-styles/license \
+ third_party/node/node_modules/polymer-css-build/node_modules/array-back/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/chalk/license \
+ third_party/node/node_modules/polymer-css-build/node_modules/clone/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/command-line-args/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/command-line-usage/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/command-line-usage/node_modules/array-back/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/command-line-usage/node_modules/typical/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/deep-extend/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/dom5/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/find-replace/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/parse5/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/supports-color/license \
+ third_party/node/node_modules/polymer-css-build/node_modules/table-layout/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/table-layout/node_modules/array-back/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/table-layout/node_modules/typical/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/typical/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/wordwrapjs/LICENSE \
+ third_party/node/node_modules/polymer-css-build/node_modules/wordwrapjs/node_modules/typical/LICENSE \
+ third_party/node/node_modules/prelude-ls/LICENSE \
+ third_party/node/node_modules/progress/LICENSE \
+ third_party/node/node_modules/q/LICENSE \
+ third_party/node/node_modules/readable-stream/LICENSE \
+ third_party/node/node_modules/rechoir/LICENSE \
+ third_party/node/node_modules/reduce-flatten/LICENSE \
+ third_party/node/node_modules/require-uncached/license \
+ third_party/node/node_modules/resolve-from/license \
+ third_party/node/node_modules/resolve/LICENSE \
+ third_party/node/node_modules/restore-cursor/license \
+ third_party/node/node_modules/rimraf/LICENSE \
+ third_party/node/node_modules/run-async/LICENSE \
+ third_party/node/node_modules/safe-buffer/LICENSE \
+ third_party/node/node_modules/sax/LICENSE \
+ third_party/node/node_modules/shady-css-parser/LICENSE.txt \
+ third_party/node/node_modules/shelljs/LICENSE \
+ third_party/node/node_modules/slice-ansi/license \
+ third_party/node/node_modules/source-map/LICENSE \
+ third_party/node/node_modules/sprintf-js/LICENSE \
+ third_party/node/node_modules/string_decoder/LICENSE \
+ third_party/node/node_modules/string-width/license \
+ third_party/node/node_modules/strip-ansi/license \
+ third_party/node/node_modules/strip-bom/license \
+ third_party/node/node_modules/strip-indent/license \
+ third_party/node/node_modules/strip-json-comments/license \
+ third_party/node/node_modules/supports-color/license \
+ third_party/node/node_modules/svgo/LICENSE \
+ third_party/node/node_modules/svgo/node_modules/ansi-styles/license \
+ third_party/node/node_modules/svgo/node_modules/chalk/license \
+ third_party/node/node_modules/svgo/node_modules/supports-color/license \
+ third_party/node/node_modules/table-layout/LICENSE \
+ third_party/node/node_modules/table/LICENSE \
+ third_party/node/node_modules/table/node_modules/ansi-regex/license \
+ third_party/node/node_modules/table/node_modules/is-fullwidth-code-point/license \
+ third_party/node/node_modules/table/node_modules/string-width/license \
+ third_party/node/node_modules/table/node_modules/strip-ansi/license \
+ third_party/node/node_modules/test-value/LICENSE \
+ third_party/node/node_modules/text-table/LICENSE \
+ third_party/node/node_modules/through/LICENSE.APACHE2 \
+ third_party/node/node_modules/through/LICENSE.MIT \
+ third_party/node/node_modules/type-check/LICENSE \
+ third_party/node/node_modules/typedarray/LICENSE \
+ third_party/node/node_modules/typical/LICENSE \
+ third_party/node/node_modules/uglify-es/LICENSE \
+ third_party/node/node_modules/uglify-es/node_modules/source-map/LICENSE \
+ third_party/node/node_modules/unquote/LICENSE \
+ third_party/node/node_modules/user-home/license \
+ third_party/node/node_modules/util-deprecate/LICENSE \
+ third_party/node/node_modules/util.promisify/LICENSE \
+ third_party/node/node_modules/wordwrapjs/LICENSE \
+ third_party/node/node_modules/wordwrap/LICENSE \
+ third_party/node/node_modules/wrappy/LICENSE \
+ third_party/node/node_modules/write/LICENSE \
+ third_party/nvml/LICENSE \
+ third_party/objenesis/LICENSE \
+ third_party/ocmock/License.txt \
+ third_party/one_euro_filter/LICENSE \
+ third_party/openh264/src/LICENSE \
+ third_party/openscreen/src/LICENSE \
+ third_party/openscreen/src/third_party/tinycbor/src/LICENSE \
+ third_party/openvr/src/LICENSE \
+ third_party/opus/src/COPYING \
+ third_party/opus/src/LICENSE_PLEASE_READ.txt \
+ third_party/ots/LICENSE \
+ third_party/ow2_asm/LICENSE \
+ third_party/pdfium/LICENSE \
+ third_party/pdfium/third_party/bigint/LICENSE \
+ third_party/pdfium/third_party/libpng16/LICENSE \
+ third_party/pdfium/third_party/pymock/LICENSE.txt \
+ third_party/perfetto/MODULE_LICENSE_APACHE2 \
+ third_party/pexpect/LICENSE \
+ third_party/pffft/LICENSE \
+ third_party/ply/LICENSE \
+ third_party/polymer/LICENSE.polymer \
+ third_party/polymer/v1_0/components-chromium/polymer2/LICENSE.txt \
+ third_party/polymer/v1_0/components-chromium/polymer/LICENSE.txt \
+ third_party/polymer/v3_0/components-chromium/polymer/LICENSE.txt \
+ third_party/proguard/LICENSE \
+ third_party/protobuf/LICENSE \
+ third_party/pycoverage/LICENSE \
+ third_party/pyelftools/elftools/construct/LICENSE \
+ third_party/pyelftools/LICENSE \
+ third_party/pyjson5/src/LICENSE \
+ third_party/pylint/pylint/LICENSE.txt \
+ third_party/pymock/LICENSE.txt \
+ third_party/pystache/LICENSE \
+ third_party/Python-Markdown/LICENSE.md \
+ third_party/pywebsocket/src/LICENSE \
+ third_party/qcms/src/COPYING \
+ third_party/quic_trace/src/LICENSE \
+ third_party/quic_trace/src/third_party/fonts/LICENSE \
+ third_party/quic_trace/src/third_party/glew/LICENSE.txt \
+ third_party/qunit/LICENSE \
+ third_party/r8/LICENSE \
+ third_party/re2/LICENSE \
+ third_party/re2/src/LICENSE \
+ third_party/requests/LICENSE \
+ third_party/rnnoise/COPYING \
+ third_party/robolectric/LICENSE \
+ third_party/robolectric/licenses/extreme.indiana.edu.license.txt \
+ third_party/robolectric/licenses/javolution.license.txt \
+ third_party/robolectric/licenses/pivotal.labs.license.txt \
+ third_party/s2cellid/LICENSE \
+ third_party/sfntly/COPYING.txt \
+ third_party/sfntly/src/cpp/COPYING.txt \
+ third_party/sfntly/src/java/COPYING \
+ third_party/shaderc/src/LICENSE \
+ third_party/shaderc/src/third_party/LICENSE.glslang \
+ third_party/shaderc/src/third_party/LICENSE.spirv-tools \
+ third_party/simplejson/LICENSE.txt \
+ third_party/sinonjs/LICENSE \
+ third_party/skia/include/third_party/skcms/LICENSE \
+ third_party/skia/include/third_party/vulkan/LICENSE \
+ third_party/skia/LICENSE \
+ third_party/skia/modules/canvaskit/canvaskit/LICENSE \
+ third_party/skia/modules/pathkit/npm-asmjs/LICENSE \
+ third_party/skia/modules/pathkit/npm-wasm/LICENSE \
+ third_party/skia/third_party/etc1/LICENSE \
+ third_party/skia/third_party/gif/LICENSE \
+ third_party/skia/third_party/skcms/LICENSE \
+ third_party/skia/third_party/vulkanmemoryallocator/include/LICENSE.txt \
+ third_party/skia/third_party/vulkanmemoryallocator/LICENSE \
+ third_party/skia/third_party/wuffs/LICENSE \
+ third_party/smhasher/LICENSE \
+ third_party/snappy/src/COPYING \
+ third_party/speech-dispatcher/COPYING \
+ third_party/spirv-cross/spirv-cross/LICENSE \
+ third_party/spirv-headers/LICENSE \
+ third_party/spirv-headers/src/LICENSE \
+ third_party/SPIRV-Tools/LICENSE \
+ third_party/SPIRV-Tools/src/LICENSE \
+ third_party/sqlite4java/LICENSE \
+ third_party/sqlite/LICENSE \
+ third_party/sqlite/patched/autoconf/tea/license.terms \
+ third_party/sqlite/patched/LICENSE.md \
+ third_party/sqlite/sqlite-src-3290000/autoconf/tea/license.terms \
+ third_party/sqlite/sqlite-src-3290000/LICENSE.md \
+ third_party/sudden_motion_sensor/LICENSE \
+ third_party/swiftshader/LICENSE.txt \
+ third_party/swiftshader/third_party/llvm-7.0/llvm/include/llvm/Support/LICENSE.TXT \
+ third_party/swiftshader/third_party/llvm-7.0/llvm/lib/Target/ARM/LICENSE.TXT \
+ third_party/swiftshader/third_party/llvm-7.0/llvm/LICENSE.TXT \
+ third_party/swiftshader/third_party/llvm-7.0/llvm/test/YAMLParser/LICENSE.txt \
+ third_party/swiftshader/third_party/llvm-7.0/llvm/tools/msbuild/license.txt \
+ third_party/swiftshader/third_party/llvm-7.0/llvm/utils/unittest/googlemock/LICENSE.txt \
+ third_party/swiftshader/third_party/llvm-7.0/llvm/utils/unittest/googletest/LICENSE.TXT \
+ third_party/swiftshader/third_party/llvm-subzero/LICENSE.TXT \
+ third_party/swiftshader/third_party/PowerVR_SDK/License.txt \
+ third_party/swiftshader/third_party/SPIRV-Headers/LICENSE \
+ third_party/swiftshader/third_party/SPIRV-Tools/LICENSE \
+ third_party/swiftshader/third_party/subzero/LICENSE.TXT \
+ third_party/tcmalloc/gperftools-2.0/vendor/COPYING \
+ third_party/tcmalloc/LICENSE \
+ third_party/tcmalloc/vendor/COPYING \
+ third_party/test_fonts/LICENSE \
+ third_party/tlslite/LICENSE \
+ third_party/ub-uiautomator/LICENSE \
+ third_party/unrar/LICENSE \
+ third_party/unrar/src/license.txt \
+ third_party/usb_ids/LICENSE \
+ third_party/usrsctp/LICENSE \
+ third_party/usrsctp/usrsctplib/LICENSE.md \
+ third_party/v4l-utils/COPYING.libv4l \
+ third_party/wayland/LICENSE \
+ third_party/wayland-protocols/LICENSE \
+ third_party/wayland-protocols/src/COPYING \
+ third_party/wayland/src/COPYING \
+ third_party/wds/LICENSE \
+ third_party/wds/src/COPYING \
+ third_party/web-animations-js/LICENSE \
+ third_party/web-animations-js/sources/COPYING \
+ third_party/webdriver/COPYING \
+ third_party/webdriver/LICENSE \
+ third_party/webgl/src/conformance-suites/1.0.1/conformance/LICENSE_CHROMIUM \
+ third_party/webgl/src/conformance-suites/2.0.0/closure-library/LICENSE \
+ third_party/webgl/src/conformance-suites/2.0.0/deqp/LICENSE \
+ third_party/webgl/src/conformance-suites/2.0.0/py/lint/LICENSE \
+ third_party/webgl/src/LICENSE.txt \
+ third_party/webgl/src/resources/html5lib/LICENSE \
+ third_party/webgl/src/sdk/demos/google/san-angeles/gles/license-BSD.txt \
+ third_party/webgl/src/sdk/demos/google/san-angeles/gles/license-LGPL.txt \
+ third_party/webgl/src/sdk/demos/google/san-angeles/gles/license.txt \
+ third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/license-BSD.txt \
+ third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/license-LGPL.txt \
+ third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/license.txt \
+ third_party/webgl/src/sdk/demos/google/san-angeles/glut/license-BSD.txt \
+ third_party/webgl/src/sdk/demos/google/san-angeles/glut/license-LGPL.txt \
+ third_party/webgl/src/sdk/demos/google/san-angeles/glut/license.txt \
+ third_party/webgl/src/sdk/demos/google/san-angeles/license.txt \
+ third_party/webgl/src/sdk/demos/intel/fluid/LICENSE \
+ third_party/webgl/src/sdk/tests/closure-library/LICENSE \
+ third_party/webgl/src/sdk/tests/deqp/LICENSE \
+ third_party/webgl/src/sdk/tests/py/lint/LICENSE \
+ third_party/webrtc/common_audio/third_party/fft4g/LICENSE \
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor/LICENSE \
+ third_party/webrtc/examples/androidapp/third_party/autobanh/LICENSE \
+ third_party/webrtc/examples/androidapp/third_party/autobanh/LICENSE.md \
+ third_party/webrtc/examples/objc/AppRTCMobile/third_party/SocketRocket/LICENSE \
+ third_party/webrtc/LICENSE \
+ third_party/webrtc/license_template.txt \
+ third_party/webrtc/modules/third_party/fft/LICENSE \
+ third_party/webrtc/modules/third_party/g711/LICENSE \
+ third_party/webrtc/modules/third_party/g722/LICENSE \
+ third_party/webrtc/modules/third_party/portaudio/LICENSE \
+ third_party/webrtc/rtc_base/third_party/base64/LICENSE \
+ third_party/webrtc/rtc_base/third_party/sigslot/LICENSE \
+ third_party/webxr_test_pages/LICENSE \
+ third_party/webxr_test_pages/webxr-samples/js/cottontail/LICENSE.md \
+ third_party/webxr_test_pages/webxr-samples/js/third-party/dat.gui/LICENSE \
+ third_party/webxr_test_pages/webxr-samples/js/third-party/gl-matrix/LICENSE \
+ third_party/webxr_test_pages/webxr-samples/LICENSE.md \
+ third_party/widevine/LICENSE \
+ third_party/woff2/LICENSE \
+ third_party/xdg-utils/LICENSE \
+ third_party/xstream/LICENSE \
+ third_party/yasm/source/patched-yasm/COPYING \
+ third_party/yasm/source/patched-yasm/GNU_GPL-2.0 \
+ third_party/yasm/source/patched-yasm/GNU_LGPL-2.0 \
+ third_party/zlib/LICENSE \
+ tools/gn/base/third_party/icu/LICENSE \
+ tools/gn/LICENSE \
+ tools/origin_trials/third_party/ed25519/LICENSE \
+ tools/page_cycler/acid3/LICENSE \
+ tools/swarming_client/LICENSE \
+ tools/swarming_client/third_party/chromium/LICENSE \
+ tools/swarming_client/third_party/colorama/LICENSE.txt \
+ tools/swarming_client/third_party/depot_tools/LICENSE \
+ tools/swarming_client/third_party/infra_libs/LICENSE \
+ tools/swarming_client/third_party/oauth2client/LICENSE \
+ tools/swarming_client/third_party/pyasn1/LICENSE \
+ tools/swarming_client/third_party/rsa/LICENSE \
+ tools/swarming_client/third_party/six/LICENSE \
+ tools/symsrc/COPYING-pefile \
+ tools/win/ChromeDebug/ChromeDebug/LICENSE \
+ url/third_party/mozilla/LICENSE.txt \
+ v8/LICENSE \
+ v8/LICENSE.fdlibm \
+ v8/LICENSE.strongtalk \
+ v8/LICENSE.v8 \
+ v8/LICENSE.valgrind \
+ v8/src/third_party/siphash/LICENSE \
+ v8/src/third_party/utf8-decoder/LICENSE \
+ v8/src/third_party/valgrind/LICENSE \
+ v8/src/third_party/vtune/LICENSE \
+ v8/third_party/colorama/LICENSE \
+ v8/third_party/inspector_protocol/LICENSE \
+ v8/third_party/v8/builtins/LICENSE \
+ v8/third_party/wasm-api/LICENSE \
+
diff --git a/package/libcef/libcef.mk b/package/libcef/libcef.mk
new file mode 100644
index 0000000000..4eb9c557c6
--- /dev/null
+++ b/package/libcef/libcef.mk
@@ -0,0 +1,401 @@
+################################################################################
+#
+# libcef
+#
+################################################################################
+
+# Run $(LIBCEF_PKGDIR)/scripts/version.sh to generate these values.
+# Don't bother trying to update these by hand, LIBCEF_CEF_VERSION is too
+# dependant on git to assemble ourselves.
+LIBCEF_VERSION = 4907ec52f3fe52eea2c5b759f6bbf7c99a295afe
+LIBCEF_CEF_COMMIT_NUMBER = 2075
+LIBCEF_CEF_VERSION = 78.2.9+g4907ec5+chromium-78.0.3904.70
+LIBCEF_CEF_VERSION_MAJOR = 3
+LIBCEF_CEF_VERSION_MINOR = 2
+LIBCEF_CEF_VERSION_PATCH = 9
+LIBCEF_CHROMIUM_VERSION_MAJOR = 78
+LIBCEF_CHROMIUM_VERSION_MINOR = 0
+LIBCEF_CHROMIUM_VERSION_BUILD = 3904
+LIBCEF_CHROMIUM_VERSION_PATCH = 70
+# End version.sh generated values
+
+LIBCEF_SOURCE = $(LIBCEF_VERSION).tar.bz2
+LIBCEF_SITE = https://bitbucket.org/chromiumembedded/cef/get
+
+LIBCEF_INSTALL_STAGING = YES
+
+LIBCEF_LICENSE = GPL-2.0 or LGPL-3.0 or GPL-3.0 or GPL-3.0 with exception
+include package/libcef/libcef.license-files.inc
+
+# The Chromium source is fetched from a release tarball.
+LIBCEF_CHROMIUM_VERSION = $(LIBCEF_CHROMIUM_VERSION_MAJOR).$(LIBCEF_CHROMIUM_VERSION_MINOR).$(LIBCEF_CHROMIUM_VERSION_BUILD).$(LIBCEF_CHROMIUM_VERSION_PATCH)
+LIBCEF_EXTRA_DOWNLOADS = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$(LIBCEF_CHROMIUM_VERSION).tar.xz
+
+LIBCEF_DEPENDENCIES = \
+ alsa-lib \
+ at-spi2-atk \
+ at-spi2-core \
+ atk \
+ cairo \
+ compiler-rt \
+ dbus \
+ ffmpeg \
+ flac \
+ fontconfig \
+ freetype \
+ harfbuzz \
+ host-clang \
+ host-jpeg-turbo \
+ host-lld \
+ host-llvm \
+ host-libkrb5 \
+ host-libnss \
+ host-libxml2 \
+ host-ninja \
+ host-nodejs \
+ host-pkgconf \
+ host-python \
+ host-webp \
+ jpeg-turbo \
+ libdrm \
+ libglib2 \
+ libgtk3 \
+ libkrb5 \
+ libnss \
+ libxml2 \
+ libxslt \
+ pango \
+ webp \
+ xlib_libXcomposite \
+ xlib_libXcursor \
+ xlib_libXrandr \
+ xlib_libXScrnSaver
+
+LIBCEF_GN_DEFINES = \
+ audio_processing_in_audio_service_supported=false \
+ cef_use_gtk=false \
+ clang_base_path=\"$(HOST_DIR)\" \
+ clang_version=\"9.0.0\" \
+ clang_use_chrome_plugins=false \
+ closure_compile=false \
+ custom_toolchain=\"//build/toolchain/linux/unbundle:default\" \
+ enable_basic_print_dialog=false \
+ enable_linux_installer=false \
+ enable_nacl=false \
+ enable_remoting=false \
+ enable_reporting=false \
+ enable_service_discovery=false \
+ enable_vr=false \
+ forbid_non_component_debug_builds=false \
+ host_pkg_config=\"$(PKG_CONFIG_HOST_BINARY_HOST)\" \
+ host_toolchain=\"//build/toolchain/linux/unbundle:host\" \
+ is_unsafe_developer_build=false \
+ link_pulseaudio=false \
+ linux_use_bundled_binutils=false \
+ pkg_config=\"$(PKG_CONFIG_HOST_BINARY)\" \
+ rtc_use_pipewire=false \
+ target_cpu=\"$(BR2_PACKAGE_LIBCEF_TARGET_ARCH)\" \
+ target_sysroot=\"$(STAGING_DIR)\" \
+ treat_warnings_as_errors=false \
+ use_bundled_fontconfig=false \
+ use_gnome_keyring=false \
+ use_gtk=false \
+ use_jumbo_build=true \
+ use_sysroot=true \
+ use_system_freetype=true \
+ use_system_harfbuzz=true \
+ use_system_libjpeg=true \
+ use_viz_devtools=false
+
+# Use Buildroot system libraries instead of Chromium third_party libraries
+LIBCEF_SYSTEM_LIBS = \
+ ffmpeg \
+ flac \
+ fontconfig \
+ freetype \
+ harfbuzz-ng \
+ libjpeg \
+ libwebp \
+ libxml \
+ libxslt \
+ openh264 \
+ yasm
+
+LIBCEF_BUILD_TARGETS = libcef.so chrome_sandbox
+
+# We need to set our own flags in addition to the standard Buildroot ones.
+# Chromium may set warning flags that the LLVM toolchain in Buildroot
+# doesn't know about yet, because they use a bleeding edge toolchain.
+LIBCEF_HOST_FLAGS_GENERIC = -Wno-unknown-warning-option
+LIBCEF_HOST_FLAGS_GENERIC += --target=$(GNU_HOST_NAME)
+
+LIBCEF_HOST_CFLAGS = $(HOST_CFLAGS) $(LIBCEF_HOST_FLAGS_GENERIC)
+LIBCEF_HOST_CXXFLAGS = $(HOST_CXXFLAGS) $(LIBCEF_HOST_FLAGS_GENERIC)
+LIBCEF_HOST_ASMFLAGS = $(LIBCEF_HOST_FLAGS_GENERIC)
+# Use the LLVM linker from our host dir. This means we don't rely
+# on system lld, and we can link against the host libraries that
+# buildroot installs to $(HOST_DIR)/lib.
+LIBCEF_HOST_LDFLAGS = $(HOST_LDFLAGS) $(LIBCEF_HOST_FLAGS_GENERIC) \
+ -fuse-ld=$(HOST_DIR)/bin/ld.lld
+
+# Similar for the target.
+LIBCEF_TARGET_FLAGS_GENERIC = -Wno-unknown-warning-option
+LIBCEF_TARGET_FLAGS_GENERIC += --target=$(TARGET_CROSS_TRIPLE)
+
+LIBCEF_TARGET_CFLAGS = $(TARGET_CFLAGS) $(LIBCEF_TARGET_FLAGS_GENERIC)
+LIBCEF_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS) $(LIBCEF_TARGET_FLAGS_GENERIC)
+LIBCEF_TARGET_LDFLAGS = $(TARGET_LDFLAGS) $(LIBCEF_TARGET_FLAGS_GENERIC)
+
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+# Tell clang where the external toolchain is and to use it because
+# it may not be on $PATH.
+LIBCEF_TARGET_CFLAGS += --gcc-toolchain=$(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
+LIBCEF_TARGET_CXXFLAGS += --gcc-toolchain=$(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
+LIBCEF_TARGET_LDFLAGS += --gcc-toolchain=$(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
+endif
+
+ifeq ($(BR2_i386)$(BR2_x86_64),y)
+LIBCEF_SYSTEM_LIBS += yasm
+LIBCEF_DEPENDENCIES += host-yasm
+endif
+
+ifeq ($(BR2_ENABLE_DEBUG),y)
+# The `is_official_build` options has nothing to do with branding, it
+# enables an additional level of optimization above `is_debug=false`.
+LIBCEF_BUILD_OUTPUT_DIR = out/Debug
+LIBCEF_GN_DEFINES += \
+ is_debug=true \
+ is_official_build=false
+else
+LIBCEF_BUILD_OUTPUT_DIR = out/Release
+LIBCEF_GN_DEFINES += \
+ is_debug=false \
+ is_official_build=true
+endif
+
+# We have two build directories. One for building the libcef.so shared
+# library, and one for building libcef_dll_wrapper.a, that dependant
+# projects statically link against.
+LIBCEF_BUILD_OUTPUT_DIR_LIBCEF_DLL_WRAPPER = \
+ $(LIBCEF_BUILD_OUTPUT_DIR)_libcef_dll_wrapper
+
+# tcmalloc has portability issues
+LIBCEF_GN_DEFINES += use_allocator=\"none\"
+
+ifeq ($(BR2_CCACHE),y)
+LIBCEF_GN_DEFINES += cc_wrapper=\"$(CCACHE)\"
+endif
+
+# LLD is unsupported on i386, and fails during linking
+ifeq ($(BR2_i386)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y)
+LIBCEF_GN_DEFINES += use_lld=false
+# Disable gold as well, to force usage of our toolchain's ld.bfd
+LIBCEF_GN_DEFINES += use_gold=false
+endif
+
+ifeq ($(BR2_PACKAGE_CUPS),y)
+LIBCEF_DEPENDENCIES += cups
+LIBCEF_GN_DEFINES += use_cups=true
+else
+LIBCEF_GN_DEFINES += use_cups=false
+endif
+
+ifeq ($(BR2_PACKAGE_PCIUTILS),y)
+LIBCEF_DEPENDENCIES += pciutils
+LIBCEF_GN_DEFINES += use_libpci=true
+else
+LIBCEF_GN_DEFINES += use_libpci=false
+endif
+
+ifeq ($(BR2_PACKAGE_PULSEAUDIO),y)
+LIBCEF_DEPENDENCIES += pulseaudio
+LIBCEF_GN_DEFINES += use_pulseaudio=true
+else
+LIBCEF_GN_DEFINES += use_pulseaudio=false
+endif
+
+# To build libcef, the CEF project source must be extracted in a
+# `cef` directory inside the Chromium source tree. We override
+# the buildroot default extract commands to get the desired source
+# tree layout.
+define LIBCEF_EXTRACT_CMDS
+ # Extract Chromium source code
+ tar -C $(@D) \
+ --strip-components=1 \
+ -xf $(LIBCEF_DL_DIR)/chromium-$(LIBCEF_CHROMIUM_VERSION).tar.xz
+
+ # Extract CEF to cef dir inside Chromium source code
+ mkdir $(@D)/cef
+ tar -C $(@D)/cef \
+ --strip-components=1 \
+ -xf $(LIBCEF_DL_DIR)/$(LIBCEF_VERSION).tar.bz2
+endef
+
+# Patch the Chromium source with the CEF patches
+define LIBCEF_APPLY_CEF_PATCHES
+ ( cd $(@D); \
+ for cef_patch in cef/patch/patches/*.patch; do \
+ patch -p0 -u -i "$$cef_patch"; \
+ done; \
+ )
+endef
+LIBCEF_PRE_PATCH_HOOKS += LIBCEF_APPLY_CEF_PATCHES
+
+LIBCEF_TARGET_CONFIGURE_ENV = \
+ $(TARGET_MAKE_ENV) \
+ BUILD_CC="clang" \
+ BUILD_CXX="clang++" \
+ BUILD_AR="$(HOSTAR)" \
+ BUILD_NM="$(HOSTNM)" \
+ BUILD_CFLAGS="$(LIBCEF_HOST_CFLAGS)" \
+ BUILD_CXXFLAGS="$(LIBCEF_HOST_CXXFLAGS)" \
+ BUILD_ASMFLAGS="$(LIBCEF_HOST_ASMFLAGS)" \
+ BUILD_LDFLAGS="$(LIBCEF_HOST_LDFLAGS)" \
+ CC="clang" \
+ CXX="clang++" \
+ AR="ar" \
+ NM="nm" \
+ CFLAGS="$(LIBCEF_TARGET_CFLAGS)" \
+ CXXFLAGS="$(LIBCEF_TARGET_CXXFLAGS)" \
+ LDFLAGS="$(LIBCEF_TARGET_LDFLAGS)"
+
+define LIBCEF_CONFIGURE_CMDS
+ # Override the unbundle BUILD.gn
+ cp $(LIBCEF_PKGDIR)/build/toolchain/linux/unbundle/BUILD.gn \
+ $(@D)/build/toolchain/linux/unbundle/BUILD.gn
+
+ # Create include/cef_version.h
+ sed -e "s/{{ cef_version }}/$(LIBCEF_CEF_VERSION)/; \
+ s/{{ cef_version_major }}/$(LIBCEF_CEF_VERSION_MAJOR)/; \
+ s/{{ cef_version_minor }}/$(LIBCEF_CEF_VERSION_MINOR)/; \
+ s/{{ cef_version_patch }}/$(LIBCEF_CEF_VERSION_PATCH)/; \
+ s/{{ cef_commit_number }}/$(LIBCEF_CEF_COMMIT_NUMBER)/; \
+ s/{{ cef_commit_hash }}/$(LIBCEF_VERSION)/; \
+ s/{{ year }}/$$(date +%Y)/; \
+ s/{{ chrome_version_major }}/$(LIBCEF_CHROMIUM_VERSION_MAJOR)/; \
+ s/{{ chrome_version_minor }}/$(LIBCEF_CHROMIUM_VERSION_MINOR)/; \
+ s/{{ chrome_version_build }}/$(LIBCEF_CHROMIUM_VERSION_BUILD)/; \
+ s/{{ chrome_version_patch }}/$(LIBCEF_CHROMIUM_VERSION_PATCH)/;" \
+ $(LIBCEF_PKGDIR)/templates/cef_version.h > \
+ $(@D)/cef/include/cef_version.h
+
+ # Update the CEF API in case someone has patched it
+ ( cd $(@D)/cef/tools; $(TARGET_MAKE_ENV) ./translator.sh )
+
+ # Shim headers allow us to link to unbundled system libraries. Normally
+ # this isn't allowed in "official"/release builds.
+ # Disable the build time error for official builds with system libs.
+ ( cd $(@D); \
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py \
+ )
+
+ mkdir -p $(@D)/third_party/node/linux/node-linux-x64/bin
+ ln -sf $(HOST_DIR)/bin/node $(@D)/third_party/node/linux/node-linux-x64/bin/
+
+ ( cd $(@D); \
+ $(TARGET_MAKE_ENV) \
+ build/linux/unbundle/replace_gn_files.py \
+ --system-libraries $(LIBCEF_SYSTEM_LIBS) \
+ )
+
+ # Generate-ninja config which uses the bundled LLVM C++ library.
+ # This is where the main CEF build will take place
+ ( cd $(@D); \
+ $(LIBCEF_TARGET_CONFIGURE_ENV) \
+ buildtools/linux64/gn gen $(LIBCEF_BUILD_OUTPUT_DIR) \
+ --args="$(LIBCEF_GN_DEFINES) use_custom_libcxx=true" \
+ )
+
+ # This is where we build libcef_dll_wrapper.a, which is linked
+ # into client applications to talk to libcef.so.
+ # Since this archive is built to be statically linked into client
+ # applications it needs to be configured to be compatible with
+ # the buildroot toolchain, rather than the LLVM toolchain that
+ # we have used to build libcef.so.
+ # As such, we configure the build to use the buildroot standard
+ # C++ library, and disable link time optimisation, which causes
+ # object files to contain LLVM bitcode. We also disable the CFI
+ # feature which is dependant on LTO.
+ ( cd $(@D); \
+ $(LIBCEF_TARGET_CONFIGURE_ENV) \
+ buildtools/linux64/gn gen \
+ $(LIBCEF_BUILD_OUTPUT_DIR_LIBCEF_DLL_WRAPPER) \
+ --args="$(LIBCEF_GN_DEFINES) \
+ use_custom_libcxx=false \
+ use_thin_lto=false \
+ is_cfi=false" \
+ )
+
+ # Create include/cef_config.h
+ $(HOST_DIR)/usr/bin/python $(@D)/cef/tools/make_config_header.py \
+ --header=$(@D)/cef/include/cef_config.h \
+ --cef_gn_config=$(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/args.gn
+endef
+
+define LIBCEF_BUILD_CMDS
+ ( cd $(@D); \
+ $(TARGET_MAKE_ENV) \
+ ninja -j$(PARALLEL_JOBS) \
+ -C $(LIBCEF_BUILD_OUTPUT_DIR) \
+ $(LIBCEF_BUILD_TARGETS) \
+ )
+ ( cd $(@D); \
+ $(TARGET_MAKE_ENV) \
+ ninja -j$(PARALLEL_JOBS) \
+ -C $(LIBCEF_BUILD_OUTPUT_DIR_LIBCEF_DLL_WRAPPER) \
+ libcef_dll_wrapper \
+ )
+endef
+
+LIBCEF_INSTALL_STAGING_INCLUDE_PATH=$(STAGING_DIR)/usr/include/cef
+LIBCEF_INSTALL_STAGING_LIBRARY_PATH=$(STAGING_DIR)/usr/lib/cef
+
+define LIBCEF_INSTALL_STAGING_CMDS
+ mkdir -p $(LIBCEF_INSTALL_STAGING_LIBRARY_PATH)
+ ( cd $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR_LIBCEF_DLL_WRAPPER)/obj/cef; \
+ cp -r libcef_dll_wrapper.a libcef_dll_wrapper \
+ $(LIBCEF_INSTALL_STAGING_LIBRARY_PATH) \
+ )
+
+ mkdir -p $(LIBCEF_INSTALL_STAGING_INCLUDE_PATH)
+ cp -a $(@D)/cef/include $(LIBCEF_INSTALL_STAGING_INCLUDE_PATH)
+
+ # CEF file cef_net_error_list.sh includes the Chromium file
+ # net_error_list.h but expects to be distributed with the correct file
+ # in place.
+ cp $(@D)/net/base/net_error_list.h \
+ $(LIBCEF_INSTALL_STAGING_INCLUDE_PATH)/include/base/internal/cef_net_error_list.h
+
+ $(INSTALL) -m 0644 -D -t $(STAGING_DIR)/usr/lib \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/libcef.so
+endef
+
+define LIBCEF_INSTALL_TARGET_CMDS
+ $(INSTALL) -m 0644 -D -t $(TARGET_DIR)/usr/lib \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/libcef.so
+
+ # chrome_sandbox gets renamed
+ $(INSTALL) -m 4755 \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/chrome_sandbox \
+ $(TARGET_DIR)/usr/lib/chrome-sandbox
+
+ $(INSTALL) -m 0644 -D -t $(TARGET_DIR)/usr/lib \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/cef.pak \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/cef_100_percent.pak \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/cef_200_percent.pak \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/cef_extensions.pak \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/devtools_resources.pak \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/icudtl.dat \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/libEGL.so \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/libGLESv2.so
+
+ $(INSTALL) -m 0644 -D -t $(TARGET_DIR)/usr/lib/swiftshader \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/swiftshader/libEGL.so \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/swiftshader/libGLESv2.so
+
+ $(INSTALL) -m 0644 -D -t $(TARGET_DIR)/usr/lib/locales \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/locales/*.pak
+endef
+
+$(eval $(generic-package))
diff --git a/package/libcef/scripts/gather-license-files.sh b/package/libcef/scripts/gather-license-files.sh
new file mode 100755
index 0000000000..9c7114d7b9
--- /dev/null
+++ b/package/libcef/scripts/gather-license-files.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+# Print licence files for libcef package
+# You can run it like this:
+#
+# package/libcef/scripts/gather-license-files.sh \
+# output/build/libcef-VERSION/ \
+# > package/libcef/libcef.license-files.inc
+
+usage()
+{
+ echo "usage: $0 DIR"
+ echo "DIR must be a buildroot output/build/libcef-<version> directory"
+}
+
+generate_license_file_list()
+{
+ declare -r path="$1"
+
+ echo 'LIBCEF_LICENSE_FILES = \'
+
+ find "$path" -type f -iname "*LICENSE*" -printf "%P\n" -o \
+ -type f -iname "*COPYING*" -printf "%P\n" -o \
+ -type f -iname "*GPL*" -printf "%P\n" | \
+ sed -e '/\.asm$/d' \
+ -e '/\.h$/d' \
+ -e '/\.c$/d' \
+ -e '/\.cc$/d' \
+ -e '/\.cpp$/d' \
+ -e '/\.pyc\?$/d' \
+ -e '/\.pl$/d' \
+ -e '/\.sha1$/d' \
+ -e '/\.patch$/d' \
+ -e '/\.html$/d' \
+ -e '/\.java$/d' \
+ -e '/\.css$/d' \
+ -e '/\.js$/d' \
+ -e '/\.tmpl$/d' \
+ -e '/licensecheck/d' \
+ -e '/wrongplace/d' \
+ -e '/ClangPlugins/d' \
+ -e '/fts5bigpl/d' \
+ -e '/^out\//d' \
+ -e 's,^,\t,' \
+ -e 's,$, \\,' | \
+ sort
+ echo ''
+}
+
+if [ $# -lt 1 ]; then
+ usage
+ exit 1
+fi
+generate_license_file_list "$1"
diff --git a/package/libcef/scripts/version.sh b/package/libcef/scripts/version.sh
new file mode 100755
index 0000000000..19689bec82
--- /dev/null
+++ b/package/libcef/scripts/version.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+# Print version information for the buildroot libcef package
+# Run this when updating the libcef package to quickly populate the versions
+
+usage()
+{
+ echo "usage: $0 chromium_src"
+ echo "$0 expects \$chromium_src/cef/.git to exist"
+}
+
+pr_cef_version()
+{
+ declare cef_version_major cef_version_minor cef_version_patch
+ declare cef_commit_number cef_commit_hash
+ declare cef_version_str
+ declare -r src_cef="$1/cef"
+
+ cef_commit_number=$(git -C "$src_cef" rev-list --count HEAD)
+ cef_commit_hash=$(git -C "$src_cef" rev-parse HEAD)
+
+ cef_version_str=$(python2 "$src_cef/tools/cef_version.py" current)
+ cef_version_major=$(awk -F= '/CEF_MAJOR/ { print $2 }' \
+ "$src_cef/VERSION.in")
+ cef_version_minor=$(echo "$cef_version_str" | cut -d. -f2)
+ cef_version_patch=$(echo "$cef_version_str" | cut -d+ -f1 | cut -d. -f3)
+
+ echo "LIBCEF_VERSION = $cef_commit_hash"
+ echo "LIBCEF_CEF_COMMIT_NUMBER = $cef_commit_number"
+
+ echo "LIBCEF_CEF_VERSION = $cef_version_str"
+ echo "LIBCEF_CEF_VERSION_MAJOR = $cef_version_major"
+ echo "LIBCEF_CEF_VERSION_MINOR = $cef_version_minor"
+ echo "LIBCEF_CEF_VERSION_PATCH = $cef_version_patch"
+}
+
+pr_chromium_version()
+{
+ declare -r src_chrome="$1/chrome"
+ awk -F= '{ print "LIBCEF_CHROMIUM_VERSION_"$1,"=",$2 }' \
+ "$src_chrome/VERSION"
+}
+
+if [ $# -lt 1 ]; then
+ usage
+ exit 1
+fi
+pr_cef_version "$1"
+pr_chromium_version "$1"
diff --git a/package/libcef/templates/cef_version.h b/package/libcef/templates/cef_version.h
new file mode 100644
index 0000000000..5d6c4685ac
--- /dev/null
+++ b/package/libcef/templates/cef_version.h
@@ -0,0 +1,70 @@
+// Copyright (c) {{ year }} Marshall A. Greenblatt. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the name Chromium Embedded
+// Framework nor the names of its contributors may be used to endorse
+// or promote products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// ---------------------------------------------------------------------------
+//
+// This file is generated by the make_version_header.py tool.
+//
+#ifndef CEF_INCLUDE_CEF_VERSION_H_
+#define CEF_INCLUDE_CEF_VERSION_H_
+#define CEF_VERSION "{{ cef_version }}"
+#define CEF_VERSION_MAJOR {{ cef_version_major }}
+#define CEF_VERSION_MINOR {{ cef_version_minor }}
+#define CEF_VERSION_PATCH {{ cef_version_patch }}
+#define CEF_COMMIT_NUMBER {{ cef_commit_number }}
+#define CEF_COMMIT_HASH "{{ cef_commit_hash }}"
+#define COPYRIGHT_YEAR {{ year }}
+#define CHROME_VERSION_MAJOR {{ chrome_version_major }}
+#define CHROME_VERSION_MINOR {{ chrome_version_minor }}
+#define CHROME_VERSION_BUILD {{ chrome_version_build }}
+#define CHROME_VERSION_PATCH {{ chrome_version_patch }}
+#define DO_MAKE_STRING(p) #p
+#define MAKE_STRING(p) DO_MAKE_STRING(p)
+#ifndef APSTUDIO_HIDDEN_SYMBOLS
+#include "include/internal/cef_export.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+// Returns CEF version information for the libcef library. The |entry|
+// parameter describes which version component will be returned:
+// 0 - CEF_VERSION_MAJOR
+// 1 - CEF_VERSION_MINOR
+// 2 - CEF_VERSION_PATCH
+// 3 - CEF_COMMIT_NUMBER
+// 4 - CHROME_VERSION_MAJOR
+// 5 - CHROME_VERSION_MINOR
+// 6 - CHROME_VERSION_BUILD
+// 7 - CHROME_VERSION_PATCH
+///
+CEF_EXPORT int cef_version_info(int entry);
+#ifdef __cplusplus
+}
+#endif
+#endif // APSTUDIO_HIDDEN_SYMBOLS
+#endif // CEF_INCLUDE_CEF_VERSION_H_
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 11/30] package/libcef: Add option to build cefsimple.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (9 preceding siblings ...)
2019-12-05 17:14 ` [Buildroot] [PATCH v1 10/30] package/libcef: New package Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2019-12-05 17:14 ` [Buildroot] [PATCH v1 12/30] package/libcef: Add option to enable VA-API HW acceleration Michael Drake
` (19 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
From: Thomas Preston <thomas.preston@codethink.co.uk>
This primitive browser is an example application which uses libcef.
Cc: Patrick Glaser <pglaser@tesla.com>
Cc: Jon duSaint <jdusaint@tesla.com>
Cc: Enis Lavery <elavery@tesla.com>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/libcef/Config.in | 9 +++++++++
package/libcef/libcef.mk | 9 +++++++++
2 files changed, 18 insertions(+)
diff --git a/package/libcef/Config.in b/package/libcef/Config.in
index e0d8929bce..e74ed961f6 100644
--- a/package/libcef/Config.in
+++ b/package/libcef/Config.in
@@ -86,3 +86,12 @@ config BR2_PACKAGE_LIBCEF
Google Chromium web browser.
https://bitbucket.org/chromiumembedded/cef
+
+if BR2_PACKAGE_LIBCEF
+
+config BR2_PACKAGE_LIBCEF_CEFSIMPLE
+ bool "Enable libcef example application cefsimple."
+ help
+ Enables libcef example application cefsimple.
+
+endif
diff --git a/package/libcef/libcef.mk b/package/libcef/libcef.mk
index 4eb9c557c6..c555f0d85b 100644
--- a/package/libcef/libcef.mk
+++ b/package/libcef/libcef.mk
@@ -214,6 +214,15 @@ else
LIBCEF_GN_DEFINES += use_pulseaudio=false
endif
+ifeq ($(BR2_PACKAGE_LIBCEF_CEFSIMPLE),y)
+LIBCEF_BUILD_TARGETS += cefsimple
+define LIBCEF_INSTALL_CEFSIMPLE
+ $(INSTALL) -m 0755 -D -t $(TARGET_DIR)/usr/lib \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/cefsimple
+endef
+LIBCEF_POST_INSTALL_TARGET_HOOKS += LIBCEF_INSTALL_CEFSIMPLE
+endif
+
# To build libcef, the CEF project source must be extracted in a
# `cef` directory inside the Chromium source tree. We override
# the buildroot default extract commands to get the desired source
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 12/30] package/libcef: Add option to enable VA-API HW acceleration.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (10 preceding siblings ...)
2019-12-05 17:14 ` [Buildroot] [PATCH v1 11/30] package/libcef: Add option to build cefsimple Michael Drake
@ 2019-12-05 17:14 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 13/30] package/libcef: Add proprietary codecs build option Michael Drake
` (18 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:14 UTC (permalink / raw)
To: buildroot
Cc: Patrick Glaser <pglaser@tesla.com>
Cc: Jon duSaint <jdusaint@tesla.com>
Cc: Enis Lavery <elavery@tesla.com>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/libcef/Config.in | 7 +++++++
package/libcef/libcef.mk | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/package/libcef/Config.in b/package/libcef/Config.in
index e74ed961f6..b4f76e1dbe 100644
--- a/package/libcef/Config.in
+++ b/package/libcef/Config.in
@@ -94,4 +94,11 @@ config BR2_PACKAGE_LIBCEF_CEFSIMPLE
help
Enables libcef example application cefsimple.
+config BR2_PACKAGE_LIBCEF_VAAPI
+ bool "Enable va-api support in libcef."
+ depends on BR2_x86_64
+ select BR2_PACKAGE_LIBVA
+ help
+ Enables VA-API-based hardware acceleration.
+
endif
diff --git a/package/libcef/libcef.mk b/package/libcef/libcef.mk
index c555f0d85b..bc616b6923 100644
--- a/package/libcef/libcef.mk
+++ b/package/libcef/libcef.mk
@@ -214,6 +214,13 @@ else
LIBCEF_GN_DEFINES += use_pulseaudio=false
endif
+ifeq ($(BR2_PACKAGE_LIBCEF_VAAPI),y)
+LIBCEF_GN_DEFINES += use_vaapi=true
+LIBCEF_DEPENDENCIES += libva
+else
+LIBCEF_GN_DEFINES += use_vaapi=false
+endif
+
ifeq ($(BR2_PACKAGE_LIBCEF_CEFSIMPLE),y)
LIBCEF_BUILD_TARGETS += cefsimple
define LIBCEF_INSTALL_CEFSIMPLE
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 13/30] package/libcef: Add proprietary codecs build option.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (11 preceding siblings ...)
2019-12-05 17:14 ` [Buildroot] [PATCH v1 12/30] package/libcef: Add option to enable VA-API HW acceleration Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 14/30] package/widevine: Add package for the widevine CDM library Michael Drake
` (17 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
This uses the Chromium bundled ffmpeg.
Cc: Patrick Glaser <pglaser@tesla.com>
Cc: Jon duSaint <jdusaint@tesla.com>
Cc: Enis Lavery <elavery@tesla.com>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/libcef/Config.in | 10 +++++++++-
package/libcef/libcef.mk | 12 +++++++++---
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/package/libcef/Config.in b/package/libcef/Config.in
index b4f76e1dbe..67113dacd0 100644
--- a/package/libcef/Config.in
+++ b/package/libcef/Config.in
@@ -53,7 +53,7 @@ config BR2_PACKAGE_LIBCEF
select BR2_PACKAGE_ALSA_LIB
select BR2_PACKAGE_COMPILER_RT
select BR2_PACKAGE_DBUS
- select BR2_PACKAGE_FFMPEG
+ select BR2_PACKAGE_FFMPEG if !BR2_PACKAGE_LIBCEF_PROPRIETARY_CODECS
select BR2_PACKAGE_FLAC
select BR2_PACKAGE_FREETYPE
select BR2_PACKAGE_HARFBUZZ
@@ -66,6 +66,7 @@ config BR2_PACKAGE_LIBCEF
select BR2_PACKAGE_LIBGTK3_X11
select BR2_PACKAGE_LIBKRB5
select BR2_PACKAGE_LIBNSS
+ select BR2_PACKAGE_LIBOPENH264 if BR2_PACKAGE_LIBCEF_PROPRIETARY_CODECS
select BR2_PACKAGE_LIBPNG
select BR2_PACKAGE_LIBXML2
select BR2_PACKAGE_LIBXSLT
@@ -101,4 +102,11 @@ config BR2_PACKAGE_LIBCEF_VAAPI
help
Enables VA-API-based hardware acceleration.
+config BR2_PACKAGE_LIBCEF_PROPRIETARY_CODECS
+ bool "Enable proprietary codecs in libcef"
+ help
+ Enable proprietary codecs in libcef. This uses
+ the ffmpeg bundled in Chromium, rather than the
+ ffmpeg buildroot package.
+
endif
diff --git a/package/libcef/libcef.mk b/package/libcef/libcef.mk
index bc616b6923..5508d34d13 100644
--- a/package/libcef/libcef.mk
+++ b/package/libcef/libcef.mk
@@ -39,7 +39,6 @@ LIBCEF_DEPENDENCIES = \
cairo \
compiler-rt \
dbus \
- ffmpeg \
flac \
fontconfig \
freetype \
@@ -109,7 +108,6 @@ LIBCEF_GN_DEFINES = \
# Use Buildroot system libraries instead of Chromium third_party libraries
LIBCEF_SYSTEM_LIBS = \
- ffmpeg \
flac \
fontconfig \
freetype \
@@ -118,11 +116,19 @@ LIBCEF_SYSTEM_LIBS = \
libwebp \
libxml \
libxslt \
- openh264 \
yasm
LIBCEF_BUILD_TARGETS = libcef.so chrome_sandbox
+ifeq ($(BR2_PACKAGE_LIBCEF_PROPRIETARY_CODECS),y)
+LIBCEF_GN_DEFINES += \
+ ffmpeg_branding=\"Chrome\" \
+ proprietary_codecs=true
+else
+LIBCEF_DEPENDENCIES += ffmpeg
+LIBCEF_SYSTEM_LIBS += ffmpeg
+endif
+
# We need to set our own flags in addition to the standard Buildroot ones.
# Chromium may set warning flags that the LLVM toolchain in Buildroot
# doesn't know about yet, because they use a bleeding edge toolchain.
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 14/30] package/widevine: Add package for the widevine CDM library.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (12 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 13/30] package/libcef: Add proprietary codecs build option Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 15/30] package/libcef: Widevine support depends on widevine package Michael Drake
` (16 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Cc: Patrick Glaser <pglaser@tesla.com>
Cc: Jon duSaint <jdusaint@tesla.com>
Cc: Enis Lavery <elavery@tesla.com>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/Config.in | 1 +
package/widevine/Config.in | 6 ++++++
package/widevine/widevine.mk | 38 ++++++++++++++++++++++++++++++++++++
3 files changed, 45 insertions(+)
create mode 100644 package/widevine/Config.in
create mode 100644 package/widevine/widevine.mk
diff --git a/package/Config.in b/package/Config.in
index c6940d6694..fbd780785b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1697,6 +1697,7 @@ menu "Networking"
source "package/usbredir/Config.in"
source "package/wampcc/Config.in"
source "package/websocketpp/Config.in"
+ source "package/widevine/Config.in"
source "package/zeromq/Config.in"
source "package/zmqpp/Config.in"
source "package/zyre/Config.in"
diff --git a/package/widevine/Config.in b/package/widevine/Config.in
new file mode 100644
index 0000000000..d730e6f9bd
--- /dev/null
+++ b/package/widevine/Config.in
@@ -0,0 +1,6 @@
+menuconfig BR2_PACKAGE_WIDEVINE
+ bool "widevine"
+ depends on BR2_i386 || BR2_x86_64
+ help
+ Proprietary content decryption module (CDM) for the digital
+ rights management (DRM) of internet content.
diff --git a/package/widevine/widevine.mk b/package/widevine/widevine.mk
new file mode 100644
index 0000000000..a6e96ae99b
--- /dev/null
+++ b/package/widevine/widevine.mk
@@ -0,0 +1,38 @@
+################################################################################
+#
+# Widevine
+#
+################################################################################
+
+# Get latest version number from: https://dl.google.com/widevine-cdm/versions.txt
+WIDEVINE_VERSION = 4.10.1440.19
+
+ifeq ($(BR2_i386),y)
+WIDEVINE_ARCH = ia32
+else ifeq ($(BR2_x86_64),y)
+WIDEVINE_ARCH = x64
+endif
+
+WIDEVINE_SOURCE = $(WIDEVINE_VERSION)-linux-$(WIDEVINE_ARCH).zip
+WIDEVINE_SITE = https://dl.google.com/widevine-cdm
+WIDEVINE_LICENSE = Proprietary
+WIDEVINE_LICENSE_FILES = LICENSE.txt
+WIDEVINE_INSTALL_STAGING = YES
+
+define WIDEVINE_EXTRACT_CMDS
+ $(UNZIP) $(WIDEVINE_DL_DIR)/$(WIDEVINE_SOURCE) -d $(@D)
+endef
+
+define WIDEVINE_INSTALL_STAGING_CMDS
+ $(INSTALL) -D -m 0755 -t $(STAGING_DIR)/usr/lib \
+ $(@D)/libwidevinecdm.so \
+ $(@D)/manifest.json
+endef
+
+define WIDEVINE_INSTALL_TARGET_CMDS
+ $(INSTALL) -D -m 0755 -t $(TARGET_DIR)/usr/lib \
+ $(@D)/libwidevinecdm.so \
+ $(@D)/manifest.json
+endef
+
+$(eval $(generic-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 15/30] package/libcef: Widevine support depends on widevine package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (13 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 14/30] package/widevine: Add package for the widevine CDM library Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 16/30] package/alsa-lib/alsa-lib: Add host package Michael Drake
` (15 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Cc: Patrick Glaser <pglaser@tesla.com>
Cc: Jon duSaint <jdusaint@tesla.com>
Cc: Enis Lavery <elavery@tesla.com>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
.../libcef/0003-stop-widevine-assert.patch | 24 +++++++++++++++++++
package/libcef/Config.in | 6 +++++
package/libcef/libcef.mk | 7 ++++++
3 files changed, 37 insertions(+)
create mode 100644 package/libcef/0003-stop-widevine-assert.patch
diff --git a/package/libcef/0003-stop-widevine-assert.patch b/package/libcef/0003-stop-widevine-assert.patch
new file mode 100644
index 0000000000..da511d8c01
--- /dev/null
+++ b/package/libcef/0003-stop-widevine-assert.patch
@@ -0,0 +1,24 @@
+From: Michael Drake <michael.drake@codethink.co.uk>
+Date: Thu, 31 Oct 2019 17:14:20 +0000
+Subject: [PATCH] CEF: Don't enforce Widevine.
+
+Allow the library to be built without Widevine support.
+
+Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
+Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
+
+diff --git a/BUILD.gn b/BUILD.gn
+index f5dd5cad..b37080cb 100644
+--- a/cef/BUILD.gn
++++ b/cef/BUILD.gn
+@@ -246,9 +246,6 @@ assert(enable_basic_printing)
+ assert(enable_print_preview)
+ assert(!enable_service_discovery)
+
+-# Enable support for Widevine CDM.
+-assert(enable_widevine)
+-
+ if (is_clang) {
+ # Don't use the chrome style plugin.
+ assert(!clang_use_chrome_plugins)
+
diff --git a/package/libcef/Config.in b/package/libcef/Config.in
index 67113dacd0..bab584df30 100644
--- a/package/libcef/Config.in
+++ b/package/libcef/Config.in
@@ -95,6 +95,12 @@ config BR2_PACKAGE_LIBCEF_CEFSIMPLE
help
Enables libcef example application cefsimple.
+config BR2_PACKAGE_LIBCEF_WIDEVINE
+ bool "Enable Widevine support in libcef."
+ select BR2_PACKAGE_WIDEVINE
+ help
+ Enables Widevine key system support.
+
config BR2_PACKAGE_LIBCEF_VAAPI
bool "Enable va-api support in libcef."
depends on BR2_x86_64
diff --git a/package/libcef/libcef.mk b/package/libcef/libcef.mk
index 5508d34d13..9d3b305451 100644
--- a/package/libcef/libcef.mk
+++ b/package/libcef/libcef.mk
@@ -220,6 +220,13 @@ else
LIBCEF_GN_DEFINES += use_pulseaudio=false
endif
+ifeq ($(BR2_PACKAGE_LIBCEF_WIDEVINE),y)
+LIBCEF_GN_DEFINES += enable_widevine=true
+LIBCEF_DEPENDENCIES += widevine
+else
+LIBCEF_GN_DEFINES += enable_widevine=false
+endif
+
ifeq ($(BR2_PACKAGE_LIBCEF_VAAPI),y)
LIBCEF_GN_DEFINES += use_vaapi=true
LIBCEF_DEPENDENCIES += libva
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 16/30] package/alsa-lib/alsa-lib: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (14 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 15/30] package/libcef: Widevine support depends on widevine package Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 17/30] package/ffmpeg: " Michael Drake
` (14 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/alsa-lib/alsa-lib.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/package/alsa-lib/alsa-lib.mk b/package/alsa-lib/alsa-lib.mk
index 72e6c34282..026f0be07c 100644
--- a/package/alsa-lib/alsa-lib.mk
+++ b/package/alsa-lib/alsa-lib.mk
@@ -67,3 +67,4 @@ ALSA_LIB_CONF_ENV = \
LDFLAGS="$(TARGET_LDFLAGS) -lm"
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 17/30] package/ffmpeg: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (15 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 16/30] package/alsa-lib/alsa-lib: Add host package Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 18/30] package/libvpx: " Michael Drake
` (13 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/ffmpeg/ffmpeg.mk | 61 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/package/ffmpeg/ffmpeg.mk b/package/ffmpeg/ffmpeg.mk
index 3dd2e3ef76..d20209d72b 100644
--- a/package/ffmpeg/ffmpeg.mk
+++ b/package/ffmpeg/ffmpeg.mk
@@ -56,6 +56,46 @@ FFMPEG_CONF_OPTS = \
--disable-symver \
--disable-doc
+HOST_FFMPEG_CONF_OPTS = \
+ --enable-avfilter \
+ --disable-version3 \
+ --enable-logging \
+ --enable-optimizations \
+ --disable-extra-warnings \
+ --enable-avdevice \
+ --enable-avcodec \
+ --enable-avformat \
+ --enable-network \
+ --disable-gray \
+ --enable-swscale-alpha \
+ --disable-small \
+ --enable-dct \
+ --enable-fft \
+ --enable-mdct \
+ --enable-rdft \
+ --disable-crystalhd \
+ --disable-dxva2 \
+ --enable-runtime-cpudetect \
+ --disable-hardcoded-tables \
+ --disable-mipsdsp \
+ --disable-mipsdspr2 \
+ --disable-msa \
+ --enable-hwaccels \
+ --disable-cuda \
+ --disable-cuvid \
+ --disable-nvenc \
+ --disable-avisynth \
+ --disable-frei0r \
+ --disable-libopencore-amrnb \
+ --disable-libopencore-amrwb \
+ --disable-libdc1394 \
+ --disable-libgsm \
+ --disable-libilbc \
+ --disable-libvo-amrwbenc \
+ --disable-libxcb \
+ --disable-symver \
+ --disable-doc
+
FFMPEG_DEPENDENCIES += host-pkgconf
ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y)
@@ -413,9 +453,12 @@ endif
ifeq ($(BR2_X86_CPU_HAS_MMX),y)
FFMPEG_CONF_OPTS += --enable-x86asm
FFMPEG_DEPENDENCIES += host-nasm
+HOST_FFMPEG_DEPENDENCIES += host-nasm
else
FFMPEG_CONF_OPTS += --disable-x86asm
FFMPEG_CONF_OPTS += --disable-mmx
+HOST_FFMPEG_CONF_OPTS += --disable-x86asm
+HOST_FFMPEG_CONF_OPTS += --disable-mmx
endif
ifeq ($(BR2_X86_CPU_HAS_SSE),y)
@@ -560,9 +603,27 @@ define FFMPEG_CONFIGURE_CMDS
)
endef
+HOST_FFMPEG_CONF_ENV += CFLAGS="$(HOST_FFMPEG_CFLAGS)"
+
+# Override HOST_FFMPEG_CONFIGURE_CMDS: FFmpeg does not support --target and others
+define HOST_FFMPEG_CONFIGURE_CMDS
+ (cd $(HOST_FFMPEG_SRCDIR) && rm -rf config.cache && \
+ $(HOST_CONFIGURE_OPTS) \
+ $(HOST_CONFIGURE_ARGS) \
+ $(HOST_FFMPEG_CONF_ENV) \
+ ./configure \
+ --prefix="$(HOST_DIR)" \
+ --enable-shared --disable-static \
+ --disable-doc \
+ --disable-debug \
+ $(HOST_FFMPEG_CONF_OPTS) \
+ )
+endef
+
define FFMPEG_REMOVE_EXAMPLE_SRC_FILES
rm -rf $(TARGET_DIR)/usr/share/ffmpeg/examples
endef
FFMPEG_POST_INSTALL_TARGET_HOOKS += FFMPEG_REMOVE_EXAMPLE_SRC_FILES
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 18/30] package/libvpx: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (16 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 17/30] package/ffmpeg: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 19/30] package/x11r7/xcb-util: " Michael Drake
` (12 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/libvpx/libvpx.mk | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/package/libvpx/libvpx.mk b/package/libvpx/libvpx.mk
index aaef708416..c8debf27d5 100644
--- a/package/libvpx/libvpx.mk
+++ b/package/libvpx/libvpx.mk
@@ -15,11 +15,16 @@ LIBVPX_CONF_ENV = \
LD="$(TARGET_CC)" \
CROSS=$(GNU_TARGET_NAME)
+HOST_LIBVPX_CONF_ENV = \
+ LD="$(HOST_CC)"
+
LIBVPX_CONF_OPTS = \
--disable-examples \
--disable-docs \
--disable-unit-tests
+HOST_LIBVPX_CONF_OPTS = $(LIBVPX_CONF_OPTS)
+
# This is not a true autotools package. It is based on the ffmpeg build system
define LIBVPX_CONFIGURE_CMDS
(cd $(LIBVPX_SRCDIR) && rm -rf config.cache && \
@@ -35,10 +40,29 @@ define LIBVPX_CONFIGURE_CMDS
)
endef
+define HOST_LIBVPX_CONFIGURE_CMDS
+ (cd $(HOST_LIBVPX_SRCDIR) && rm -rf config.cache && \
+ $(HOST_CONFIGURE_OPTS) \
+ $(HOST_CONFIGURE_ARGS) \
+ $(HOST_LIBVPX_CONF_ENV) \
+ ./configure \
+ --target=generic-gnu \
+ --enable-pic \
+ --prefix="$(HOST_DIR)" \
+ --enable-shared --disable-static \
+ --disable-debug \
+ $(HOST_LIBVPX_CONF_OPTS) \
+ )
+endef
+
define LIBVPX_BUILD_CMDS
$(TARGET_MAKE_ENV) $(LIBVPX_MAKE_ENV) $(MAKE) -C $(@D) all
endef
+define HOST_LIBVPX_BUILD_CMDS
+ $(HOST_MAKE_ENV) $(HOST_LIBVPX_MAKE_ENV) $(MAKE) -C $(@D) all
+endef
+
define LIBVPX_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(LIBVPX_MAKE_ENV) $(MAKE) DESTDIR="$(STAGING_DIR)" -C $(@D) install
endef
@@ -47,4 +71,9 @@ define LIBVPX_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(LIBVPX_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install
endef
+define HOST_LIBVPX_INSTALL_CMDS
+ $(HOST_MAKE_ENV) $(HOST_LIBVPX_MAKE_ENV) $(MAKE) -C $(@D) install
+endef
+
$(eval $(generic-package))
+$(eval $(host-generic-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 19/30] package/x11r7/xcb-util: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (17 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 18/30] package/libvpx: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 20/30] package/x11r7/xlib_libXScrnSaver: " Michael Drake
` (11 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/x11r7/xcb-util/xcb-util.mk | 2 ++
1 file changed, 2 insertions(+)
diff --git a/package/x11r7/xcb-util/xcb-util.mk b/package/x11r7/xcb-util/xcb-util.mk
index bb73530f94..9a4f927364 100644
--- a/package/x11r7/xcb-util/xcb-util.mk
+++ b/package/x11r7/xcb-util/xcb-util.mk
@@ -11,5 +11,7 @@ XCB_UTIL_LICENSE = MIT
XCB_UTIL_LICENSE_FILES = COPYING
XCB_UTIL_INSTALL_STAGING = YES
XCB_UTIL_DEPENDENCIES = libxcb
+HOST_XCB_UTIL_DEPENDENCIES = host-libxcb
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 20/30] package/x11r7/xlib_libXScrnSaver: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (18 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 19/30] package/x11r7/xcb-util: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 21/30] package/x11r7/xlib_libXcomposite: " Michael Drake
` (10 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.mk | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.mk b/package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.mk
index 92abb902eb..0e37c49338 100644
--- a/package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.mk
+++ b/package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.mk
@@ -11,6 +11,11 @@ XLIB_LIBXSCRNSAVER_LICENSE = MIT
XLIB_LIBXSCRNSAVER_LICENSE_FILES = COPYING
XLIB_LIBXSCRNSAVER_INSTALL_STAGING = YES
XLIB_LIBXSCRNSAVER_DEPENDENCIES = xlib_libX11 xlib_libXext xorgproto
+HOST_XLIB_LIBXSCRNSAVER_DEPENDENCIES = \
+ host-xlib_libX11 \
+ host-xlib_libXext \
+ host-xorgproto
XLIB_LIBXSCRNSAVER_CONF_OPTS = --disable-malloc0returnsnull
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 21/30] package/x11r7/xlib_libXcomposite: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (19 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 20/30] package/x11r7/xlib_libXScrnSaver: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 22/30] package/xlib_libXdamage: " Michael Drake
` (9 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/x11r7/xlib_libXcomposite/xlib_libXcomposite.mk | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/package/x11r7/xlib_libXcomposite/xlib_libXcomposite.mk b/package/x11r7/xlib_libXcomposite/xlib_libXcomposite.mk
index 80e94fe37c..f790d6fd3a 100644
--- a/package/x11r7/xlib_libXcomposite/xlib_libXcomposite.mk
+++ b/package/x11r7/xlib_libXcomposite/xlib_libXcomposite.mk
@@ -11,5 +11,11 @@ XLIB_LIBXCOMPOSITE_LICENSE = MIT
XLIB_LIBXCOMPOSITE_LICENSE_FILES = COPYING
XLIB_LIBXCOMPOSITE_INSTALL_STAGING = YES
XLIB_LIBXCOMPOSITE_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXfixes xorgproto
+HOST_XLIB_LIBXCOMPOSITE_DEPENDENCIES = \
+ host-xlib_libX11 \
+ host-xlib_libXext \
+ host-xlib_libXfixes \
+ host-xorgproto
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 22/30] package/xlib_libXdamage: Add host package
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (20 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 21/30] package/x11r7/xlib_libXcomposite: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 23/30] package/x11r7/xlib_libXext: " Michael Drake
` (8 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
From: Thomas Preston <thomas.preston@codethink.co.uk>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/x11r7/xlib_libXdamage/xlib_libXdamage.mk | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/package/x11r7/xlib_libXdamage/xlib_libXdamage.mk b/package/x11r7/xlib_libXdamage/xlib_libXdamage.mk
index cc5493ff6c..c98c28412a 100644
--- a/package/x11r7/xlib_libXdamage/xlib_libXdamage.mk
+++ b/package/x11r7/xlib_libXdamage/xlib_libXdamage.mk
@@ -11,5 +11,10 @@ XLIB_LIBXDAMAGE_LICENSE = MIT
XLIB_LIBXDAMAGE_LICENSE_FILES = COPYING
XLIB_LIBXDAMAGE_INSTALL_STAGING = YES
XLIB_LIBXDAMAGE_DEPENDENCIES = xlib_libX11 xlib_libXfixes xorgproto
+HOST_XLIB_LIBXDAMAGE_DEPENDENCIES = \
+ host-xlib_libX11 \
+ host-xlib_libXfixes \
+ host-xorgproto
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 23/30] package/x11r7/xlib_libXext: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (21 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 22/30] package/xlib_libXdamage: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 24/30] package/x11r7/xlib_libXi: " Michael Drake
` (7 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/x11r7/xlib_libXext/xlib_libXext.mk | 2 ++
1 file changed, 2 insertions(+)
diff --git a/package/x11r7/xlib_libXext/xlib_libXext.mk b/package/x11r7/xlib_libXext/xlib_libXext.mk
index c63a3b23cc..90f6357e80 100644
--- a/package/x11r7/xlib_libXext/xlib_libXext.mk
+++ b/package/x11r7/xlib_libXext/xlib_libXext.mk
@@ -11,6 +11,8 @@ XLIB_LIBXEXT_LICENSE = MIT
XLIB_LIBXEXT_LICENSE_FILES = COPYING
XLIB_LIBXEXT_INSTALL_STAGING = YES
XLIB_LIBXEXT_DEPENDENCIES = xlib_libX11 xorgproto
+HOST_XLIB_LIBXEXT_DEPENDENCIES = host-xlib_libX11 host-xorgproto
XLIB_LIBXEXT_CONF_OPTS = --disable-malloc0returnsnull
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 24/30] package/x11r7/xlib_libXi: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (22 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 23/30] package/x11r7/xlib_libXext: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 25/30] package/x11r7/xlib_libXrandr: " Michael Drake
` (6 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/x11r7/xlib_libXi/xlib_libXi.mk | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/package/x11r7/xlib_libXi/xlib_libXi.mk b/package/x11r7/xlib_libXi/xlib_libXi.mk
index de7f3a7d3c..96c4487a7f 100644
--- a/package/x11r7/xlib_libXi/xlib_libXi.mk
+++ b/package/x11r7/xlib_libXi/xlib_libXi.mk
@@ -16,7 +16,14 @@ XLIB_LIBXI_DEPENDENCIES = \
xlib_libXext \
xlib_libXfixes \
xorgproto
+HOST_XLIB_LIBXI_DEPENDENCIES = \
+ host-pkgconf \
+ host-xlib_libX11 \
+ host-xlib_libXext \
+ host-xlib_libXfixes \
+ host-xorgproto
XLIB_LIBXI_CONF_OPTS = --disable-malloc0returnsnull
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 25/30] package/x11r7/xlib_libXrandr: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (23 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 24/30] package/x11r7/xlib_libXi: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 26/30] package/x11r7/xlib_libXtst: " Michael Drake
` (5 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/x11r7/xlib_libXrandr/xlib_libXrandr.mk | 2 ++
1 file changed, 2 insertions(+)
diff --git a/package/x11r7/xlib_libXrandr/xlib_libXrandr.mk b/package/x11r7/xlib_libXrandr/xlib_libXrandr.mk
index 23a0d974d0..a8080904af 100644
--- a/package/x11r7/xlib_libXrandr/xlib_libXrandr.mk
+++ b/package/x11r7/xlib_libXrandr/xlib_libXrandr.mk
@@ -11,6 +11,8 @@ XLIB_LIBXRANDR_LICENSE = MIT
XLIB_LIBXRANDR_LICENSE_FILES = COPYING
XLIB_LIBXRANDR_INSTALL_STAGING = YES
XLIB_LIBXRANDR_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXrender xorgproto
+HOST_XLIB_LIBXRANDR_DEPENDENCIES = host-xlib_libX11 host-xlib_libXext host-xlib_libXrender host-xorgproto
XLIB_LIBXRANDR_CONF_OPTS = --disable-malloc0returnsnull
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 26/30] package/x11r7/xlib_libXtst: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (24 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 25/30] package/x11r7/xlib_libXrandr: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 27/30] package/pciutils: Enable " Michael Drake
` (4 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/x11r7/xlib_libXtst/xlib_libXtst.mk | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/package/x11r7/xlib_libXtst/xlib_libXtst.mk b/package/x11r7/xlib_libXtst/xlib_libXtst.mk
index e0d7e8217c..38878b0e0e 100644
--- a/package/x11r7/xlib_libXtst/xlib_libXtst.mk
+++ b/package/x11r7/xlib_libXtst/xlib_libXtst.mk
@@ -17,4 +17,11 @@ XLIB_LIBXTST_DEPENDENCIES = \
xlib_libXi \
xorgproto
+HOST_XLIB_LIBXTST_DEPENDENCIES = \
+ host-xlib_libX11 \
+ host-xlib_libXext \
+ host-xlib_libXi \
+ host-xorgproto
+
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 27/30] package/pciutils: Enable host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (25 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 26/30] package/x11r7/xlib_libXtst: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 28/30] package/libdrm: Add " Michael Drake
` (3 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/pciutils/pciutils.mk | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/package/pciutils/pciutils.mk b/package/pciutils/pciutils.mk
index 30d429e75a..b4bdbceefb 100644
--- a/package/pciutils/pciutils.mk
+++ b/package/pciutils/pciutils.mk
@@ -19,6 +19,8 @@ PCIUTILS_MAKE_OPTS = \
AR=$(TARGET_AR) \
DNS=no
+HOST_PCIUTILS_MAKE_OPTS = HWDB=no ZLIB=no SHARED=no
+
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
PCIUTILS_DEPENDENCIES += udev
PCIUTILS_MAKE_OPTS += HWDB=yes
@@ -71,4 +73,21 @@ define PCIUTILS_INSTALL_STAGING_CMDS
install install-lib install-pcilib
endef
+define HOST_PCIUTILS_CONFIGURE_CMDS
+ $(SED) 's/wget --no-timestamping/wget/' $(PCIUTILS_DIR)/update-pciids.sh
+ $(SED) 's/^STRIP/#STRIP/' $(PCIUTILS_DIR)/Makefile
+endef
+
+define HOST_PCIUTILS_BUILD_CMDS
+ $(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_PCIUTILS_MAKE_OPTS) \
+ PREFIX=""
+endef
+
+define HOST_PCIUTILS_INSTALL_CMDS
+ $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) $(HOST_PCIUTILS_MAKE_OPTS) \
+ PREFIX=$(HOST_DIR) SBINDIR=$(HOST_DIR)/bin \
+ install install-lib install-pcilib
+endef
+
$(eval $(generic-package))
+$(eval $(host-generic-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 28/30] package/libdrm: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (26 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 27/30] package/pciutils: Enable " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 29/30] package/mesa3d: " Michael Drake
` (2 subsequent siblings)
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/libdrm/libdrm.mk | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/package/libdrm/libdrm.mk b/package/libdrm/libdrm.mk
index f7c9205744..c97dfbb083 100644
--- a/package/libdrm/libdrm.mk
+++ b/package/libdrm/libdrm.mk
@@ -18,6 +18,11 @@ LIBDRM_CONF_OPTS = \
-Dcairo-tests=false \
-Dmanpages=false
+HOST_LIBDRM_CONF_OPTS = \
+ -Dcairo-tests=false \
+ -Dmanpages=false \
+ -Dintel=false
+
ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y)
LIBDRM_DEPENDENCIES += libatomic_ops
ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y)
@@ -114,3 +119,4 @@ endif
endif
$(eval $(meson-package))
+$(eval $(host-meson-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 29/30] package/mesa3d: Add host package.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (27 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 28/30] package/libdrm: Add " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2019-12-05 17:15 ` [Buildroot] [PATCH v1 30/30] package/libcef: Add v8 Snapshot option Michael Drake
2022-01-07 21:31 ` [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Yann E. MORIN
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/mesa3d/mesa3d.mk | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index fff498e777..1c0c592f61 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -13,6 +13,23 @@ MESA3D_LICENSE_FILES = docs/license.html
MESA3D_INSTALL_STAGING = YES
+HOST_MESA3D_DEPENDENCIES += \
+ host-libdrm \
+ host-libxcb \
+ host-xlib_libX11 \
+ host-xlib_libXext \
+ host-xlib_libXfixes \
+ host-xlib_libXrandr \
+ host-xorgproto
+
+HOST_MESA3D_CONF_OPTS = \
+ -Dplatforms=x11 \
+ -Dgles2=true \
+ -Dglx=xlib \
+ -Dgallium-drivers= \
+ -Dvulkan-drivers= \
+ -Ddri-drivers=
+
MESA3D_PROVIDES =
MESA3D_DEPENDENCIES = \
@@ -242,3 +259,4 @@ MESA3D_CONF_OPTS += -Dlmsensors=false
endif
$(eval $(meson-package))
+$(eval $(host-meson-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* [Buildroot] [PATCH v1 30/30] package/libcef: Add v8 Snapshot option.
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (28 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 29/30] package/mesa3d: " Michael Drake
@ 2019-12-05 17:15 ` Michael Drake
2022-01-07 21:31 ` [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Yann E. MORIN
30 siblings, 0 replies; 35+ messages in thread
From: Michael Drake @ 2019-12-05 17:15 UTC (permalink / raw)
To: buildroot
This is an optimisation for JavaScript context creation
(e.g. opening new tabs).
Coauthored-by: Thomas Preston <thomas.preston@codethink.co.uk>
Cc: Patrick Glaser <pglaser@tesla.com>
Cc: Jon duSaint <jdusaint@tesla.com>
Cc: Enis Lavery <elavery@tesla.com>
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
package/libcef/Config.in | 31 +++++++++++++++++++++++++++++++
package/libcef/libcef.mk | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 66 insertions(+)
diff --git a/package/libcef/Config.in b/package/libcef/Config.in
index bab584df30..0dedd062e9 100644
--- a/package/libcef/Config.in
+++ b/package/libcef/Config.in
@@ -95,6 +95,37 @@ config BR2_PACKAGE_LIBCEF_CEFSIMPLE
help
Enables libcef example application cefsimple.
+comment "libcef v8 snapshots depends on a 64-bit target arch"
+ depends on !BR2_aarch64 && !BR2_x86_64
+
+config BR2_PACKAGE_LIBCEF_V8_SNAPSHOTS
+ bool "Enable v8 snapshots in libcef"
+ depends on BR2_aarch64 || BR2_x86_64
+ select BR2_PACKAGE_HOST_DBUS
+ select BR2_PACKAGE_HOST_FFMPEG
+ select BR2_PACKAGE_HOST_LIBXCB
+ select BR2_PACKAGE_HOST_PCIUTILS
+ select BR2_PACKAGE_HOST_XCB_UTIL
+ select BR2_PACKAGE_HOST_XLIB_LIBXTST
+ help
+ Enables V8 snapshots. This is an optimisation for
+ JavaScript context creation (e.g. opening new tabs).
+ It avoids needing to execute a whole load of JavaScript
+ code that gets run on context initialisation.
+ It works by building a browser for the host, creating
+ a JavaScript context, and saving the JavaScript heap
+ to file. The target browser can then load the recorded
+ JavaScript heap from file, instead of executing the
+ JavaScript code.
+
+ Note that since this requires building a browser for
+ the host, it requires a lot of extra host packages
+ to be built. These host library packages need to have
+ the same memory architecture (32 vs. 64 bit) as the
+ target, because for the captured heap snapshot to be
+ valid for the target, it must be captured with a binary
+ which shares the same memory architecture.
+
config BR2_PACKAGE_LIBCEF_WIDEVINE
bool "Enable Widevine support in libcef."
select BR2_PACKAGE_WIDEVINE
diff --git a/package/libcef/libcef.mk b/package/libcef/libcef.mk
index 9d3b305451..e5a60e74ee 100644
--- a/package/libcef/libcef.mk
+++ b/package/libcef/libcef.mk
@@ -220,6 +220,30 @@ else
LIBCEF_GN_DEFINES += use_pulseaudio=false
endif
+ifeq ($(BR2_PACKAGE_LIBCEF_V8_SNAPSHOTS),y)
+LIBCEF_GN_DEFINES += \
+ v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\" \
+ v8_use_snapshot=true
+LIBCEF_DEPENDENCIES += \
+ host-alsa-lib \
+ host-dbus \
+ host-ffmpeg \
+ host-libxcb \
+ host-mesa3d \
+ host-pciutils \
+ host-xcb-util \
+ host-xlib_libXcomposite \
+ host-xlib_libXcursor \
+ host-xlib_libXdamage \
+ host-xlib_libXrandr \
+ host-xlib_libXScrnSaver \
+ host-xlib_libXtst
+else
+LIBCEF_GN_DEFINES += \
+ v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\" \
+ v8_use_snapshot=false
+endif
+
ifeq ($(BR2_PACKAGE_LIBCEF_WIDEVINE),y)
LIBCEF_GN_DEFINES += enable_widevine=true
LIBCEF_DEPENDENCIES += widevine
@@ -243,6 +267,17 @@ endef
LIBCEF_POST_INSTALL_TARGET_HOOKS += LIBCEF_INSTALL_CEFSIMPLE
endif
+ifeq ($(BR2_PACKAGE_LIBCEF_V8_SNAPSHOTS),y)
+define LIBCEF_INSTALL_V8_SNAPSHOT_BINARIES
+ # v8 snapshot binaries
+ $(INSTALL) -m 0644 -D -t $(TARGET_DIR)/usr/lib \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/natives_blob.bin \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/snapshot_blob.bin \
+ $(@D)/$(LIBCEF_BUILD_OUTPUT_DIR)/v8_context_snapshot.bin
+endef
+LIBCEF_POST_INSTALL_TARGET_HOOKS += LIBCEF_INSTALL_V8_SNAPSHOT_BINARIES
+endif
+
# To build libcef, the CEF project source must be extracted in a
# `cef` directory inside the Chromium source tree. We override
# the buildroot default extract commands to get the desired source
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread* Re: [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library
2019-12-05 17:14 [Buildroot] [PATCH v1 00/30] Add Chromium Embedded Framework library Michael Drake
` (29 preceding siblings ...)
2019-12-05 17:15 ` [Buildroot] [PATCH v1 30/30] package/libcef: Add v8 Snapshot option Michael Drake
@ 2022-01-07 21:31 ` Yann E. MORIN
30 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2022-01-07 21:31 UTC (permalink / raw)
To: Michael Drake, Thomas Preston; +Cc: buildroot
Michael, Thomas, All,
On 2019-12-05 17:14 +0000, Michael Drake spake thusly:
> This patch series adds the Chromium Embedded Framework library to
> Buildroot.
We've discussed this series with the other maintainers today, and all
we can say is that we are very sorry that we could not address it
earlier.
You are more than aware that this is a huge series, with a lot of
complicated packages. I did not have the guts to delve into it
initially, and as more time passed, I dreaded even more going back
and look at it. The other maintainers also felt similarly...
On the other hand, except for Romain who dared two comments, no one
else ever replied or even pushed forward on that series; no one ever
even sent a reply stating it was tested and worked for them..
It would have been nice to have chromium in the tree, I agree, but
this is so big a stack that it is very hard to grasp and understand
all that is going on in there...
As a consequence, we have marked this series as rejected in patchwork...
Thank you for contribution.
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 35+ messages in thread