| Index: third_party/libvpx_new/libvpx.gyp
|
| diff --git a/third_party/libvpx_new/libvpx.gyp b/third_party/libvpx_new/libvpx.gyp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..16751610847133f3ae06943160887a51f6106cad
|
| --- /dev/null
|
| +++ b/third_party/libvpx_new/libvpx.gyp
|
| @@ -0,0 +1,291 @@
|
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +{
|
| + 'variables': {
|
| + 'libvpx_build_vp9%': 1,
|
| + 'libvpx_source%': 'source/libvpx',
|
| + # Disable LTO for neon targets
|
| + # crbug.com/408997
|
| + 'use_lto%': 0,
|
| + 'conditions': [
|
| + ['os_posix==1', {
|
| + 'asm_obj_extension': 'o',
|
| + }],
|
| + ['OS=="win"', {
|
| + 'asm_obj_extension': 'obj',
|
| + }],
|
| +
|
| + ['msan==1', {
|
| + 'target_arch_full': 'generic',
|
| + }, {
|
| + 'conditions': [
|
| + ['(target_arch=="arm" or target_arch=="armv7") and arm_neon==1', {
|
| + 'target_arch_full': 'arm-neon',
|
| + }, {
|
| + 'conditions': [
|
| + ['OS=="android" and ((target_arch=="arm" or target_arch=="armv7") and arm_neon==0)', {
|
| + 'target_arch_full': 'arm-neon-cpu-detect',
|
| + }, {
|
| + 'target_arch_full': '<(target_arch)',
|
| + }],
|
| + ],
|
| + }],
|
| + ['target_arch=="arm64"', {
|
| + 'target_arch_full': 'arm64',
|
| + }],
|
| + ],
|
| + }],
|
| +
|
| + ['os_posix == 1 and OS != "mac"', {
|
| + 'OS_CATEGORY%': 'linux',
|
| + }, {
|
| + 'OS_CATEGORY%': '<(OS)',
|
| + }],
|
| + ],
|
| +
|
| + # Location of the intermediate output.
|
| + 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
|
| + },
|
| + 'target_defaults': {
|
| + 'target_conditions': [
|
| + ['<(libvpx_build_vp9)==0', {
|
| + 'sources/': [ ['exclude', '(^|/)vp9/'], ],
|
| + }],
|
| + ],
|
| + 'variables': {
|
| + 'conditions': [
|
| + ['OS=="win" and buildtype=="Official"', {
|
| + # Do not set to 'size', as it results in an error on win64.
|
| + 'optimize' :'speed',
|
| + }],
|
| + ],
|
| + 'clang_warning_flags': [
|
| + # libvpx heavily relies on implicit enum casting.
|
| + '-Wno-conversion',
|
| + # libvpx does `if ((a == b))` in some places.
|
| + '-Wno-parentheses-equality',
|
| + # libvpx has many static functions in header, which trigger this warning
|
| + '-Wno-unused-function',
|
| + ],
|
| + 'clang_warning_flags_unset': [
|
| + # libvpx does assert(!"foo"); in some places.
|
| + '-Wstring-conversion',
|
| + ],
|
| + },
|
| + },
|
| + 'conditions': [
|
| + ['target_arch=="ia32"', {
|
| + 'includes': ['libvpx_srcs_x86_intrinsics.gypi', ],
|
| + }],
|
| + ['target_arch=="x64" and msan==0', {
|
| + 'includes': ['libvpx_srcs_x86_64_intrinsics.gypi', ],
|
| + }],
|
| + [ '(target_arch=="arm" or target_arch=="armv7") and arm_neon==0 and OS=="android"', {
|
| + # When building for targets which may not have NEON (but may!), include
|
| + # support for neon and hide it behind Android cpu-features.
|
| + 'includes': ['libvpx_srcs_arm_neon_cpu_detect_intrinsics.gypi', ],
|
| + }],
|
| + [ '(target_arch != "arm" and target_arch != "armv7") and \
|
| + (target_arch != "mipsel" and target_arch != "mips64el")', {
|
| + 'targets': [
|
| + {
|
| + # This libvpx target contains both encoder and decoder.
|
| + # Encoder is configured to be realtime only.
|
| + 'target_name': 'libvpx_new',
|
| + 'type': 'static_library',
|
| + 'variables': {
|
| + 'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
|
| + 'OS_CATEGORY%': '<(OS_CATEGORY)',
|
| + 'yasm_flags': [
|
| + '-D', 'CHROMIUM',
|
| + '-I', 'source/config/<(OS_CATEGORY)/<(target_arch_full)',
|
| + '-I', 'source/config',
|
| + '-I', '<(libvpx_source)',
|
| + ],
|
| + # yasm only gets the flags we define. It doesn't inherit any of the
|
| + # really useful defines that come with a gcc invocation. In this
|
| + # case, we rely on __ANDROID__ to set 'rand' to 'lrand48'.
|
| + # Previously we used the builtin _rand but that's gone away.
|
| + 'conditions': [
|
| + ['OS=="android"', {
|
| + 'yasm_flags': [
|
| + '-D', '__ANDROID__',
|
| + ],
|
| + }],
|
| + ],
|
| + },
|
| + 'includes': [
|
| + '../yasm/yasm_compile.gypi'
|
| + ],
|
| + 'include_dirs': [
|
| + 'source/config/<(OS_CATEGORY)/<(target_arch_full)',
|
| + 'source/config',
|
| + '<(libvpx_source)',
|
| + '<(libvpx_source)/vp8/common',
|
| + '<(libvpx_source)/vp8/decoder',
|
| + '<(libvpx_source)/vp8/encoder',
|
| + '<(shared_generated_dir)', # Provides vpx_rtcd.h.
|
| + ],
|
| + 'direct_dependent_settings': {
|
| + 'include_dirs': [
|
| + '<(libvpx_source)',
|
| + ],
|
| + },
|
| + # VS2010 does not correctly incrementally link obj files generated
|
| + # from asm files. This flag disables UseLibraryDependencyInputs to
|
| + # avoid this problem.
|
| + 'msvs_2010_disable_uldi_when_referenced': 1,
|
| + 'conditions': [
|
| + ['target_arch=="ia32"', {
|
| + 'includes': [
|
| + 'libvpx_srcs_x86.gypi',
|
| + ],
|
| + 'dependencies': [
|
| + 'libvpx_intrinsics_mmx',
|
| + 'libvpx_intrinsics_sse2',
|
| + # Currently no sse3 intrinsic functions
|
| + #'libvpx_intrinsics_sse3',
|
| + 'libvpx_intrinsics_ssse3',
|
| + 'libvpx_intrinsics_sse4_1',
|
| + # Currently no avx intrinsic functions
|
| + #'libvpx_intrinsics_avx',
|
| + 'libvpx_intrinsics_avx2',
|
| + ],
|
| + }],
|
| + ['target_arch=="arm64"', {
|
| + 'includes': [ 'libvpx_srcs_arm64.gypi', ],
|
| + }],
|
| + ['target_arch=="x64"', {
|
| + 'conditions': [
|
| + ['msan==1', {
|
| + 'includes': [ 'libvpx_srcs_generic.gypi', ],
|
| + }, {
|
| + 'includes': [
|
| + 'libvpx_srcs_x86_64.gypi',
|
| + ],
|
| + 'dependencies': [
|
| + 'libvpx_intrinsics_mmx',
|
| + 'libvpx_intrinsics_sse2',
|
| + # Currently no sse3 intrinsic functions
|
| + #'libvpx_intrinsics_sse3',
|
| + 'libvpx_intrinsics_ssse3',
|
| + 'libvpx_intrinsics_sse4_1',
|
| + # Currently no avx intrinsic functions
|
| + #'libvpx_intrinsics_avx',
|
| + 'libvpx_intrinsics_avx2',
|
| + ],
|
| + }],
|
| + ],
|
| + }],
|
| + ],
|
| + },
|
| + ],
|
| + },
|
| + ],
|
| + # 'libvpx' target for mipsel and mips64el builds.
|
| + [ 'target_arch=="mipsel" or target_arch=="mips64el"', {
|
| + 'targets': [
|
| + {
|
| + # This libvpx target contains both encoder and decoder.
|
| + # Encoder is configured to be realtime only.
|
| + 'target_name': 'libvpx_new',
|
| + 'type': 'static_library',
|
| + 'variables': {
|
| + 'shared_generated_dir':
|
| + '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
|
| + },
|
| + 'includes': [
|
| + 'libvpx_srcs_mips.gypi',
|
| + ],
|
| + 'include_dirs': [
|
| + 'source/config/<(OS_CATEGORY)/<(target_arch_full)',
|
| + 'source/config',
|
| + '<(libvpx_source)',
|
| + '<(libvpx_source)/vp8/common',
|
| + '<(libvpx_source)/vp8/decoder',
|
| + '<(libvpx_source)/vp8/encoder',
|
| + ],
|
| + 'direct_dependent_settings': {
|
| + 'include_dirs': [
|
| + '<(libvpx_source)',
|
| + ],
|
| + },
|
| + 'sources': [
|
| + 'source/config/<(OS_CATEGORY)/<(target_arch_full)/vpx_config.c',
|
| + ],
|
| + },
|
| + ],
|
| + },
|
| + ],
|
| + # 'libvpx' target for ARM builds.
|
| + [ '(target_arch=="arm" or target_arch=="armv7") ', {
|
| + 'targets': [
|
| + {
|
| + # This libvpx target contains both encoder and decoder.
|
| + # Encoder is configured to be realtime only.
|
| + 'target_name': 'libvpx_new',
|
| + 'type': 'static_library',
|
| +
|
| + 'includes': [ 'ads2gas.gypi', ],
|
| +
|
| + 'xcode_settings': {
|
| + 'OTHER_CFLAGS': [
|
| + '-I<!(pwd)/source/config/<(OS_CATEGORY)/<(target_arch_full)',
|
| + '-I<!(pwd)/source/config',
|
| + '-I<(shared_generated_dir)',
|
| + ],
|
| + },
|
| + 'include_dirs': [
|
| + 'source/config/<(OS_CATEGORY)/<(target_arch_full)',
|
| + 'source/config',
|
| + '<(libvpx_source)',
|
| + ],
|
| + 'direct_dependent_settings': {
|
| + 'include_dirs': [
|
| + '<(libvpx_source)',
|
| + ],
|
| + },
|
| + 'conditions': [
|
| + # Libvpx optimizations for ARMv6 or ARMv7 without NEON.
|
| + ['arm_neon==0', {
|
| + 'conditions': [
|
| + ['OS=="android"', {
|
| + 'includes': [
|
| + 'libvpx_srcs_arm_neon_cpu_detect.gypi',
|
| + ],
|
| + 'dependencies': [
|
| + 'libvpx_intrinsics_neon',
|
| + ],
|
| + }, {
|
| + 'includes': [
|
| + 'libvpx_srcs_arm.gypi',
|
| + ],
|
| + }],
|
| + ],
|
| + }],
|
| + # Libvpx optimizations for ARMv7 with NEON.
|
| + ['arm_neon==1', {
|
| + 'includes': [
|
| + 'libvpx_srcs_arm_neon.gypi',
|
| + ],
|
| + }],
|
| + ['OS == "android"', {
|
| + 'dependencies': [
|
| + '../../build/android/ndk.gyp:cpu_features',
|
| + ],
|
| + }],
|
| + ['OS == "ios"', {
|
| + 'xcode_settings': {
|
| + 'OTHER_CFLAGS!': [
|
| + # Breaks at least boolhuff_armv5te:token_high_bit_not_set_ev.
|
| + '-fstack-protector-all', # Implies -fstack-protector
|
| + ],
|
| + },
|
| + }],
|
| + ],
|
| + },
|
| + ],
|
| + }],
|
| + ],
|
| +}
|
|
|