aboutsummaryrefslogtreecommitdiff
path: root/files/libyuv.gyp
diff options
context:
space:
mode:
Diffstat (limited to 'files/libyuv.gyp')
-rw-r--r--files/libyuv.gyp165
1 files changed, 110 insertions, 55 deletions
diff --git a/files/libyuv.gyp b/files/libyuv.gyp
index 18137538..db4b5490 100644
--- a/files/libyuv.gyp
+++ b/files/libyuv.gyp
@@ -3,34 +3,116 @@
# 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
+# 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,
+ '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,
+ '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',
- # 'type': 'shared_library',
+ 'variables': {
+ 'optimize': 'max', # enable O2 and ltcg.
+ },
+ # Allows libyuv.a redistributable library without external dependencies.
+ 'standalone_static_library': 1,
'conditions': [
- ['use_system_libjpeg==0', {
- 'dependencies': [
- '<(DEPTH)/third_party/libjpeg_turbo/libjpeg.gyp:libjpeg',
+ # 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
+ ],
+ '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
+ ],
+ }],
],
- }, {
- 'link_settings': {
- 'libraries': [
- '-ljpeg',
- ],
- },
}],
- ],
+ ['OS != "ios" and libyuv_disable_jpeg != 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': [
- 'HAVE_JPEG',
- # 'LIBYUV_BUILDING_SHARED_LIBRARY',
+ # Enable the following 3 macros to turn off assembly for specified CPU.
+ # 'LIBYUV_DISABLE_X86',
+ # 'LIBYUV_DISABLE_NEON',
+ # 'LIBYUV_DISABLE_MIPS',
+ # 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',
@@ -41,48 +123,21 @@
'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': [
- # includes.
- 'include/libyuv.h',
- 'include/libyuv/basic_types.h',
- 'include/libyuv/compare.h',
- 'include/libyuv/convert.h',
- 'include/libyuv/convert_argb.h',
- 'include/libyuv/convert_from.h',
- 'include/libyuv/cpu_id.h',
- 'include/libyuv/format_conversion.h',
- 'include/libyuv/mjpeg_decoder.h',
- 'include/libyuv/planar_functions.h',
- 'include/libyuv/rotate.h',
- 'include/libyuv/rotate_argb.h',
- 'include/libyuv/row.h',
- 'include/libyuv/scale.h',
- 'include/libyuv/scale_argb.h',
- 'include/libyuv/version.h',
- 'include/libyuv/video_common.h',
-
- # sources.
- 'source/compare.cc',
- 'source/compare_neon.cc',
- 'source/convert.cc',
- 'source/convert_argb.cc',
- 'source/convert_from.cc',
- 'source/cpu_id.cc',
- 'source/format_conversion.cc',
- 'source/mjpeg_decoder.cc',
- 'source/planar_functions.cc',
- 'source/rotate.cc',
- 'source/rotate_argb.cc',
- 'source/rotate_neon.cc',
- 'source/row_common.cc',
- 'source/row_neon.cc',
- 'source/row_posix.cc',
- 'source/row_win.cc',
- 'source/scale.cc',
- 'source/scale_neon.cc',
- 'source/scale_argb.cc',
- 'source/video_common.cc',
+ '<@(libyuv_sources)',
],
},
], # targets.