summaryrefslogtreecommitdiffstats
path: root/media/libyuv/libyuv.gyp
diff options
context:
space:
mode:
Diffstat (limited to 'media/libyuv/libyuv.gyp')
-rw-r--r--media/libyuv/libyuv.gyp183
1 files changed, 183 insertions, 0 deletions
diff --git a/media/libyuv/libyuv.gyp b/media/libyuv/libyuv.gyp
new file mode 100644
index 000000000..27a37b8d3
--- /dev/null
+++ b/media/libyuv/libyuv.gyp
@@ -0,0 +1,183 @@
+# Copyright 2011 The LibYuv Project Authors. All rights reserved.
+#
+# Use of this source code is governed by a BSD-style license
+# that can be found in the LICENSE file in the root of the source
+# tree. An additional intellectual property rights grant can be found
+# in the file PATENTS. All contributing project authors may
+# be found in the AUTHORS file in the root of the source tree.
+
+{
+ 'includes': [
+ 'libyuv.gypi',
+ ],
+ # Make sure that if we are being compiled to an xcodeproj, nothing tries to
+ # include a .pch.
+ 'xcode_settings': {
+ 'GCC_PREFIX_HEADER': '',
+ 'GCC_PRECOMPILE_PREFIX_HEADER': 'NO',
+ },
+ 'variables': {
+ 'use_system_libjpeg%': 0,
+ 'libyuv_disable_jpeg%': 0,
+ # 'chromium_code' treats libyuv as internal and increases warning level.
+ 'chromium_code': 1,
+ # clang compiler default variable usable by other apps that include libyuv.
+ 'clang%': 0,
+ # Link-Time Optimizations.
+ 'use_lto%': 0,
+ 'yuv_disable_asm%': 0,
+ 'yuv_disable_avx2%': 0,
+ 'build_neon': 0,
+ 'conditions': [
+ ['(target_arch == "armv7" or target_arch == "armv7s" or \
+ (target_arch == "arm" and arm_version >= 7) or target_arch == "arm64")\
+ and (arm_neon == 1 or arm_neon_optional == 1)',
+ {
+ 'build_neon': 1,
+ }],
+ ],
+ },
+
+ 'targets': [
+ {
+ 'target_name': 'libyuv',
+ # Change type to 'shared_library' to build .so or .dll files.
+ 'type': 'static_library',
+ 'variables': {
+ 'optimize': 'max', # enable O2 and ltcg.
+ },
+ # Allows libyuv.a redistributable library without external dependencies.
+ # 'standalone_static_library': 1,
+ 'conditions': [
+ # Disable -Wunused-parameter
+ ['clang == 1', {
+ 'cflags': [
+ '-Wno-unused-parameter',
+ ],
+ }],
+ ['build_neon != 0', {
+ 'defines': [
+ 'LIBYUV_NEON',
+ ],
+ 'cflags!': [
+ '-mfpu=vfp',
+ '-mfpu=vfpv3',
+ '-mfpu=vfpv3-d16',
+ # '-mthumb', # arm32 not thumb
+ ],
+ 'cflags_mozilla!': [
+ '-mfpu=vfp',
+ '-mfpu=vfpv3',
+ '-mfpu=vfpv3-d16',
+ ],
+ 'conditions': [
+ # Disable LTO in libyuv_neon target due to gcc 4.9 compiler bug.
+ ['clang == 0 and use_lto == 1', {
+ 'cflags!': [
+ '-flto',
+ '-ffat-lto-objects',
+ ],
+ }],
+ # arm64 does not need -mfpu=neon option as neon is not optional
+ ['target_arch != "arm64"', {
+ 'cflags': [
+ '-mfpu=neon',
+ # '-marm', # arm32 not thumb
+ ],
+ 'cflags_mozilla': [
+ '-mfpu=neon',
+ ],
+ }],
+ ],
+ }],
+ [ 'yuv_disable_asm != 0', {
+ 'defines': [
+ # Enable the following 3 macros to turn off assembly for specified CPU.
+ 'LIBYUV_DISABLE_X86',
+ 'LIBYUV_DISABLE_NEON',
+ 'LIBYUV_DISABLE_MIPS',
+ ],
+ }],
+ [ 'yuv_disable_avx2 == 1', {
+ 'defines': [
+ 'LIBYUV_DISABLE_AVX2',
+ ]
+ }],
+ ['build_with_mozilla == 1', {
+ 'defines': [
+ 'HAVE_JPEG'
+ ],
+ 'cflags_mozilla': [
+ '$(MOZ_JPEG_CFLAGS)',
+ ],
+ }],
+ ['OS != "ios" and libyuv_disable_jpeg != 1 and build_with_mozilla != 1', {
+ 'defines': [
+ 'HAVE_JPEG'
+ ],
+ 'conditions': [
+ # Caveat system jpeg support may not support motion jpeg
+ [ 'use_system_libjpeg == 1', {
+ 'dependencies': [
+ '<(DEPTH)/third_party/libjpeg/libjpeg.gyp:libjpeg',
+ ],
+ }, {
+ 'dependencies': [
+ '<(DEPTH)/third_party/libjpeg_turbo/libjpeg.gyp:libjpeg',
+ ],
+ }],
+ [ 'use_system_libjpeg == 1', {
+ 'link_settings': {
+ 'libraries': [
+ '-ljpeg',
+ ],
+ }
+ }],
+ ],
+ }],
+ ], #conditions
+ 'defines': [
+ # Enable the following 3 macros to turn off assembly for specified CPU.
+ # 'LIBYUV_DISABLE_X86',
+ # 'LIBYUV_DISABLE_NEON',
+ # 'LIBYUV_DISABLE_MIPS',
+ # This disables AVX2 (Haswell) support, overriding compiler checks
+ # 'LIBYUV_DISABLE_AVX2',
+ # Enable the following macro to build libyuv as a shared library (dll).
+ # 'LIBYUV_USING_SHARED_LIBRARY',
+ # TODO(fbarchard): Make these into gyp defines.
+ ],
+ 'include_dirs': [
+ 'include',
+ '.',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ 'include',
+ '.',
+ ],
+ 'conditions': [
+ ['OS == "android" and target_arch == "arm64"', {
+ 'ldflags': [
+ '-Wl,--dynamic-linker,/system/bin/linker64',
+ ],
+ }],
+ ['OS == "android" and target_arch != "arm64"', {
+ 'ldflags': [
+ '-Wl,--dynamic-linker,/system/bin/linker',
+ ],
+ }],
+ ], #conditions
+ },
+ 'sources': [
+ '<@(libyuv_sources)',
+ ],
+ },
+ ], # targets.
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2: