In a component build, the individual Chromium components are contained in
separate shared objects. This is useful when building on a system with
8 GB RAM or less (since the linker needs at least that much for link
time optimization otherwise if a non-component build is done), and during
development and testing of Chromium internals.
Signed-off-by: Carlos Rafael Giani <[email protected]>
---
recipes-browser/chromium/chromium/component-build.gypi | 5 +++++
recipes-browser/chromium/chromium/google-chrome | 2 ++
recipes-browser/chromium/chromium_35.0.1883.0.bb | 11 +++++++++--
3 files changed, 16 insertions(+), 2 deletions(-)
create mode 100644 recipes-browser/chromium/chromium/component-build.gypi
diff --git a/recipes-browser/chromium/chromium/component-build.gypi
b/recipes-browser/chromium/chromium/component-build.gypi
new file mode 100644
index 0000000..e58b4ca
--- /dev/null
+++ b/recipes-browser/chromium/chromium/component-build.gypi
@@ -0,0 +1,5 @@
+{
+ 'variables': {
+ 'component' : 'shared_library'
+ },
+}
diff --git a/recipes-browser/chromium/chromium/google-chrome
b/recipes-browser/chromium/chromium/google-chrome
index 2f6ad2e..8ce400b 100644
--- a/recipes-browser/chromium/chromium/google-chrome
+++ b/recipes-browser/chromium/chromium/google-chrome
@@ -1,6 +1,8 @@
#!/bin/sh
export CHROME_DEVEL_SANDBOX=/usr/sbin/chrome-devel-sandbox
+export LD_LIBRARY_PATH=/usr/lib/chrome
+
if [ "${USER}" = "root" ] ; then
/usr/bin/chrome/chrome --user-data-dir=${HOME}/.chromium/ $@
else
diff --git a/recipes-browser/chromium/chromium_35.0.1883.0.bb
b/recipes-browser/chromium/chromium_35.0.1883.0.bb
index 2497f10..203474d 100644
--- a/recipes-browser/chromium/chromium_35.0.1883.0.bb
+++ b/recipes-browser/chromium/chromium_35.0.1883.0.bb
@@ -6,6 +6,7 @@ SRC_URI = "\
http://gsdview.appspot.com/chromium-browser-official/${P}.tar.xz \
file://include.gypi \
file://oe-defaults.gypi \
+ ${@bb.utils.contains('PACKAGECONFIG', 'component-build',
'file://component-build.gypi', '', d)} \
file://unistd-2.patch \
file://google-chrome \
file://google-chrome.desktop \
@@ -27,6 +28,7 @@ EXTRA_OEGYP = " \
${@base_contains('DISTRO_FEATURES', 'ld-is-gold', '',
'-Dlinux_use_gold_flags=0', d)} \
-I ${WORKDIR}/oe-defaults.gypi \
-I ${WORKDIR}/include.gypi \
+ ${@bb.utils.contains('PACKAGECONFIG', 'component-build', '-I
${WORKDIR}/component-build.gypi', '', d)} \
-f ninja \
"
ARMFPABI_armv7a = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard',
'arm_float_abi=hard', 'arm_float_abi=softfp', d)}"
@@ -65,6 +67,11 @@ do_install() {
install -m 0644 ${S}/out/Release/product_logo_48.png
${D}${bindir}/chrome/
install -m 0755 ${S}/out/Release/libffmpegsumo.so ${D}${bindir}/chrome/
+ install -d ${D}${libdir}/chrome/