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 | 13 +++++++++++-- 3 files changed, 18 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..96d3344 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,13 @@ 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/ + # Always adding this libdir (not just with component builds), because the + # LD_LIBRARY_PATH line in the google-chromium script refers to it + install -d ${D}${libdir}/chrome/ + if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'component-build', 'component-build', '', d)}" ]; then + install -m 0755 ${S}/out/Release/lib/*.so ${D}${libdir}/chrome/ + fi + install -d ${D}${sbindir} install -m 4755 ${S}/out/Release/chrome_sandbox ${D}${sbindir}/chrome-devel-sandbox @@ -72,8 +81,8 @@ do_install() { install -m 0644 ${S}/out/Release/locales/en-US.pak ${D}${bindir}/chrome/locales } -FILES_${PN} = "${bindir}/chrome/ ${bindir}/google-chrome ${datadir}/applications ${sbindir}/" -FILES_${PN}-dbg += "${bindir}/chrome/.debug/" +FILES_${PN} = "${bindir}/chrome/ ${bindir}/google-chrome ${datadir}/applications ${sbindir}/ ${libdir}/chrome/" +FILES_${PN}-dbg += "${bindir}/chrome/.debug/ ${libdir}/chrome/.debug/" PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src" -- 1.8.3.2 -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
