diff options
author | Venture Research <tech@ventureresearch.com> | 2013-01-24 02:47:00 -0600 |
---|---|---|
committer | Eric Bénard <eric@eukrea.com> | 2013-02-05 13:49:55 +0100 |
commit | 5a1ddeda142e871acdcc69342b9593a3595024c8 (patch) | |
tree | 9a3964fe5b2ce78ad2d92eced8ffc440f1c30c28 | |
parent | 242ad3ce45df0e359e705639f1771925c5c3fe80 (diff) |
chromium: adding updated version 24.0.1312.52; refactor build
The chromium build now requires ninja-native to build, as it builds faster than make.
Refactor EXTRA_OEGYP so that it is passed via include.gypi and oe-defaults.gypi files.
This allows for custom per-platform builds. Add support for qemux86 target, as well as
existing armv7a (tested) and armv6 (not tested.)
Signed-off-by: Venture Research <tech@ventureresearch.com>
Signed-off-by: Eric Bénard <eric@eukrea.com>
10 files changed, 213 insertions, 0 deletions
diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/armv6/include.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/armv6/include.gypi new file mode 100644 index 0000000..2c88271 --- /dev/null +++ b/recipes-browser/chromium/chromium-24.0.1312.52/armv6/include.gypi @@ -0,0 +1,8 @@ +{ + 'variables': { + # Configure for armv6 compilation + 'target_arch': 'arm', + 'armv7': 0, + 'arm_neon': 0, + } +} diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/armv6/oe-defaults.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/armv6/oe-defaults.gypi new file mode 100644 index 0000000..27e1cfe --- /dev/null +++ b/recipes-browser/chromium/chromium-24.0.1312.52/armv6/oe-defaults.gypi @@ -0,0 +1,15 @@ +{ + 'variables': { + 'use_system_bzip2': 1, + 'disable_nacl': 1, + 'proprietary_codecs': 1, + 'v8_use_snapshot': 1, + 'use_system_ffmpeg': 0, + 'linux_use_tcmalloc': 0, + 'linux_link_kerberos': 0, + 'use_kerberos': 0, + 'use_cups': 0, + 'use_gnome_keyring': 0, + 'linux_link_gnome_keyring': 0 + }, +} diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/include.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/include.gypi new file mode 100644 index 0000000..316cf48 --- /dev/null +++ b/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/include.gypi @@ -0,0 +1,9 @@ +{ + 'variables': { + # Configure for armv7 compilation + 'target_arch': 'arm', + 'armv7': 1, + 'arm_thumb': 1, + 'arm_neon': 1, + }, +} diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/oe-defaults.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/oe-defaults.gypi new file mode 100644 index 0000000..27e1cfe --- /dev/null +++ b/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/oe-defaults.gypi @@ -0,0 +1,15 @@ +{ + 'variables': { + 'use_system_bzip2': 1, + 'disable_nacl': 1, + 'proprietary_codecs': 1, + 'v8_use_snapshot': 1, + 'use_system_ffmpeg': 0, + 'linux_use_tcmalloc': 0, + 'linux_link_kerberos': 0, + 'use_kerberos': 0, + 'use_cups': 0, + 'use_gnome_keyring': 0, + 'linux_link_gnome_keyring': 0 + }, +} diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/glib-2.16-use-siginfo_t.patch b/recipes-browser/chromium/chromium-24.0.1312.52/glib-2.16-use-siginfo_t.patch new file mode 100644 index 0000000..f4ee9fb --- /dev/null +++ b/recipes-browser/chromium/chromium-24.0.1312.52/glib-2.16-use-siginfo_t.patch @@ -0,0 +1,35 @@ +diff -upr chromium-20.0.1132.57.orig/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h chromium-20.0.1132.57/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h +--- chromium-20.0.1132.57.orig/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h 2012-07-10 10:48:31.000000000 +0300 ++++ chromium-20.0.1132.57/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h 2012-07-11 23:44:11.000000000 +0300 +@@ -243,14 +243,13 @@ struct kernel_rusage { + long ru_nivcsw; + }; + +-struct siginfo; + #if defined(__i386__) || defined(__arm__) || defined(__PPC__) + + /* include/asm-{arm,i386,mips,ppc}/signal.h */ + struct kernel_old_sigaction { + union { + void (*sa_handler_)(int); +- void (*sa_sigaction_)(int, struct siginfo *, void *); ++ void (*sa_sigaction_)(int, siginfo_t *, void *); + }; + unsigned long sa_mask; + unsigned long sa_flags; +@@ -287,13 +286,13 @@ struct kernel_sigaction { + unsigned long sa_flags; + union { + void (*sa_handler_)(int); +- void (*sa_sigaction_)(int, struct siginfo *, void *); ++ void (*sa_sigaction_)(int, siginfo_t *, void *); + }; + struct kernel_sigset_t sa_mask; + #else + union { + void (*sa_handler_)(int); +- void (*sa_sigaction_)(int, struct siginfo *, void *); ++ void (*sa_sigaction_)(int, siginfo_t *, void *); + }; + unsigned long sa_flags; + void (*sa_restorer)(void); diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/i586/include.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/i586/include.gypi new file mode 100644 index 0000000..69f3a08 --- /dev/null +++ b/recipes-browser/chromium/chromium-24.0.1312.52/i586/include.gypi @@ -0,0 +1,5 @@ +{ + 'variables': { + 'target_arch': 'ia32', + } +} diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/i586/oe-defaults.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/i586/oe-defaults.gypi new file mode 100644 index 0000000..0a6e8e8 --- /dev/null +++ b/recipes-browser/chromium/chromium-24.0.1312.52/i586/oe-defaults.gypi @@ -0,0 +1,15 @@ +{ + 'variables': { + 'use_system_bzip2': 1, + 'disable_nacl': 1, + 'proprietary_codecs': 0, + 'v8_use_snapshot': 1, + 'use_system_ffmpeg': 0, + 'linux_use_tcmalloc': 1, + 'linux_link_kerberos': 0, + 'use_kerberos': 0, + 'use_cups': 0, + 'use_gnome_keyring': 0, + 'linux_link_gnome_keyring': 0, + }, +} diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/ui-gl-no-narrowing.patch b/recipes-browser/chromium/chromium-24.0.1312.52/ui-gl-no-narrowing.patch new file mode 100644 index 0000000..d48befb --- /dev/null +++ b/recipes-browser/chromium/chromium-24.0.1312.52/ui-gl-no-narrowing.patch @@ -0,0 +1,20 @@ +diff --git a/ui/gl/gl.gyp b/ui/gl/gl.gyp +index 3d0ffb8..d38e87a 100644 +--- a/ui/gl/gl.gyp ++++ b/ui/gl/gl.gyp +@@ -36,6 +36,15 @@ + '<(gl_binding_output_dir)', + ], + }, ++ # Disable narrowing-conversion-in-initialization-list warnings in that we ++ # do not want to fix ++ # ../../ui/gl/gl_image_glx.cc: In member function 'virtual bool gfx::GLImageGLX::Initialize()' ++ # ../../ui/gl/gl_image_glx.cc:90:3: error: narrowing conversion of ++ # 'visinfo.scoped_ptr_malloc<C, FreeProc>::operator-><XVisualInfo, ++ # gfx::{anonymous}::ScopedPtrXFree>()->XVisualInfo::visualid' ++ # from 'VisualID {aka long unsigned int}' to 'int' inside { } is ill-formed in C++11 [-Werror=narrowing] ++ 'cflags+': ['-Wno-narrowing'], ++ 'cflags_cc+': ['-Wno-narrowing'], + 'sources': [ + 'gl_bindings.h', + 'gl_bindings_skia_in_process.cc', diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/unistd-2.patch b/recipes-browser/chromium/chromium-24.0.1312.52/unistd-2.patch new file mode 100644 index 0000000..6b5018b --- /dev/null +++ b/recipes-browser/chromium/chromium-24.0.1312.52/unistd-2.patch @@ -0,0 +1,27 @@ +diff --git a/chrome/browser/memory_details_linux.cc b/chrome/browser/memory_details_linux.cc +index bee24ce..299f237 100644 +--- a/chrome/browser/memory_details_linux.cc ++++ b/chrome/browser/memory_details_linux.cc +@@ -7,6 +7,10 @@ + #include <map> + #include <set> + ++#if defined(OS_POSIX) ++#include <unistd.h> ++#endif ++ + #include "base/bind.h" + #include "base/process_util.h" + #include "base/string_util.h" +diff --git a/ipc/ipc_channel.h b/ipc/ipc_channel.h +index 14c375b..345f9eb 100644 +--- a/ipc/ipc_channel.h ++++ b/ipc/ipc_channel.h +@@ -10,6 +10,7 @@ + + #if defined(OS_POSIX) + #include <sys/types.h> ++#include <unistd.h> + #endif + + #include "base/compiler_specific.h" diff --git a/recipes-browser/chromium/chromium_24.0.1312.52.bb b/recipes-browser/chromium/chromium_24.0.1312.52.bb new file mode 100644 index 0000000..85d4173 --- /dev/null +++ b/recipes-browser/chromium/chromium_24.0.1312.52.bb @@ -0,0 +1,64 @@ +DESCRIPTION = "Chromium browser" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0750f191c9bbf46869b70508e7eb455b" +DEPENDS = "xextproto cairo nss gtk+-native zlib-native libav libxi libgnome-keyring libxss cups ninja-native" + +SRC_URI = "http://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.bz2 \ + file://include.gypi \ + file://oe-defaults.gypi \ + file://unistd-2.patch \ + file://glib-2.16-use-siginfo_t.patch \ + file://ui-gl-no-narrowing.patch \ +" + +# include.gypi exists only for armv6 and armv7a and there isn't something like COMPATIBLE_ARCH afaik +COMPATIBLE_MACHINE = "(-)" +COMPATIBLE_MACHINE_i586 = "(.*)" +COMPATIBLE_MACHINE_armv6 = "(.*)" +COMPATIBLE_MACHINE_armv7a = "(.*)" + +SRC_URI[md5sum] = "ed027b16b20e673af6dcf1831a6d8652" +SRC_URI[sha256sum] = "f30df8b0f4c999185bb11d873f0caa5d8bc581eb4f37ce0fe85fb7900a01d711" + +inherit gettext + +EXTRA_OEGYP = " \ + ${@base_contains('DISTRO_FEATURES', 'ld-is-gold', '', '-Dlinux_use_gold_binary=0', d)} \ + ${@base_contains('DISTRO_FEATURES', 'ld-is-gold', '', '-Dlinux_use_gold_flags=0', d)} \ + -I ${WORKDIR}/oe-defaults.gypi \ + -I ${WORKDIR}/include.gypi \ + -f ninja \ +" + +do_configure() { + cd ${S} + # replace LD with CXX, to workaround a possible gyp issue? + LD="${CXX}" export LD + CC="${CC}" export CC + CXX="${CXX}" export CXX + CC_host="gcc" export CC_host + CXX_host="g++" export CXX_host + build/gyp_chromium --depth=. ${EXTRA_OEGYP} +} + +do_compile() { + # build with ninja + ninja -C ${S}/out/Release chrome +} + +do_install() { + install -d ${D}${bindir} + install -d ${D}${bindir}/chrome/ + install -m 0755 ${S}/out/Release/chrome ${D}${bindir}/chrome/chrome + install -m 0644 ${S}/out/Release/chrome.pak ${D}${bindir}/chrome/ + install -m 0644 ${S}/out/Release/resources.pak ${D}${bindir}/chrome/ + install -m 0644 ${S}/out/Release/chrome_100_percent.pak ${D}${bindir}/chrome/ + 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}${bindir}/chrome/locales/ + install -m 0644 ${S}/out/Release/locales/en-US.pak ${D}${bindir}/chrome/locales +} + +FILES_${PN} = "${bindir}/chrome/" +FILES_${PN}-dbg = "${bindir}/chrome/.debug/" |