Reorganize gyp for Android

BUG=1120
TEST=trybot, local test on xoom and nexus

Message:
It turned out the last CL can only build neon code that
caused problem on Xoom.

Description:
In order to support audo-cpu-detection, I split files into two gypi files, one
contains non-neon code, antoher one ONLY contains neon specific code, so I can
apply different flags to them. Also created two build targets for each of them

We build for linux as before.

Tested on xoom and nexus S.
Review URL: https://webrtc-codereview.appspot.com/930024

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3141 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
leozwang@webrtc.org 2012-11-21 04:10:16 +00:00
parent 3263a7a616
commit 5835adfef0
7 changed files with 587 additions and 181 deletions

View File

@ -44,9 +44,80 @@
}, },
'conditions': [ 'conditions': [
['OS == "android"', {
'targets': [
{
'target_name': 'libvpx_arm_neon',
'type': 'static_library',
'dependencies': [
'gen_asm_offsets',
],
'includes': [
'libvpx_asm_conversion.gypi',
'libvpx_src_neon.gypi',
],
'cflags': [
# We need to explicitly tell the GCC assembler to look for
# .include directive files from the place where they're
# generated to.
'-Wa,-I,<!(pwd)/source/config/<(OS_CATEGORY)/<(target_arch_full)',
'-Wa,-I,<(shared_generated_dir)',
'-mfpu=neon',
],
'cflags!': [
'-mfpu=vfpv3-d16',
],
'conditions': [
[ 'chromeos == 1', {
# ChromeOS needs these files for animated WebM avatars.
'sources': [
'<(libvpx_src_dir)/libmkv/EbmlIDs.h',
'<(libvpx_src_dir)/libmkv/EbmlWriter.c',
'<(libvpx_src_dir)/libmkv/EbmlWriter.h',
],
}],
],
}, # libvpx_arm_neon
{
'target_name': 'libvpx',
'type': 'static_library',
'dependencies': [
'libvpx_arm_neon',
'gen_asm_offsets',
],
'includes': [
'libvpx_asm_conversion.gypi',
'libvpx_src_c.gypi',
'libvpx_src_armv5te.gypi',
'libvpx_src_armv6.gypi',
],
'cflags': [
# We need to explicitly tell the GCC assembler to look for
# .include directive files from the place where they're
# generated to.
'-Wa,-I,<!(pwd)/source/config/<(OS_CATEGORY)/<(target_arch_full)',
'-Wa,-I,<(shared_generated_dir)',
# Extra flags
'-mfpu=vfpv3-d16',
'-I<(android_ndk_root)/sources/android/cpufeatures',
],
'conditions': [
[ 'chromeos == 1', {
# ChromeOS needs these files for animated WebM avatars.
'sources': [
'<(libvpx_src_dir)/libmkv/EbmlIDs.h',
'<(libvpx_src_dir)/libmkv/EbmlWriter.c',
'<(libvpx_src_dir)/libmkv/EbmlWriter.h',
],
}],
],
}, # target libvpx
],
}, {
# TODO(andrew): Hack to ensure we pass -msse2 to gcc on Linux for files # TODO(andrew): Hack to ensure we pass -msse2 to gcc on Linux for files
# containing SSE intrinsics. This should be handled in the gyp generator # containing SSE intrinsics. This should be handled in the gyp generator
# scripts somehow. Clang (default on Mac) doesn't require this. # scripts somehow. Clang (default on Mac) doesn't require this.
'conditions': [
['target_arch=="ia32" or target_arch=="x64"', { ['target_arch=="ia32" or target_arch=="x64"', {
'targets' : [ 'targets' : [
{ {
@ -83,7 +154,8 @@
'target_name': 'libvpx', 'target_name': 'libvpx',
'type': 'static_library', 'type': 'static_library',
'variables': { 'variables': {
'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx', 'yasm_output_path':
'<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
'OS_CATEGORY%': '<(OS_CATEGORY)', 'OS_CATEGORY%': '<(OS_CATEGORY)',
'yasm_flags': [ 'yasm_flags': [
'-D', 'CHROMIUM', '-D', 'CHROMIUM',
@ -167,6 +239,8 @@
'gen_asm_offsets', 'gen_asm_offsets',
], ],
# TODO(leozwang): Replace the following ads2gas block with
# libvpx_asm_conversion.gypi.
# Copy the script to the output folder so that we can use it with # Copy the script to the output folder so that we can use it with
# absolute path. # absolute path.
'copies': [{ 'copies': [{
@ -188,17 +262,21 @@
'action': [ 'action': [
'bash', 'bash',
'-c', '-c',
'cat <(RULE_INPUT_PATH) | perl <(shared_generated_dir)/<(ads2gas_script) > <(shared_generated_dir)/<(RULE_INPUT_ROOT).S', 'cat <(RULE_INPUT_PATH) | '
'perl <(shared_generated_dir)/<(ads2gas_script) >'
' <(shared_generated_dir)/<(RULE_INPUT_ROOT).S',
], ],
'process_outputs_as_sources': 1, 'process_outputs_as_sources': 1,
'message': 'Convert libvpx asm file for ARM <(RULE_INPUT_PATH).', 'message':
'Convert libvpx asm file for ARM <(RULE_INPUT_PATH).',
}, },
], ],
'variables': { 'variables': {
# Location of the assembly conversion script. # Location of the assembly conversion script.
'ads2gas_script': 'ads2gas.pl', 'ads2gas_script': 'ads2gas.pl',
'ads2gas_script_path': '<(libvpx_src_dir)/build/make/<(ads2gas_script)', 'ads2gas_script_path':
'<(libvpx_src_dir)/build/make/<(ads2gas_script)',
}, },
'cflags': [ 'cflags': [
# We need to explicitly tell the GCC assembler to look for # We need to explicitly tell the GCC assembler to look for
@ -224,21 +302,10 @@
], ],
}], }],
# Libvpx optimizations for ARMv7 with NEON. # Libvpx optimizations for ARMv7 with NEON.
['arm_neon==1 or OS == "android"', { ['arm_neon==1', {
'includes': [ 'includes': [
'libvpx_srcs_arm_neon.gypi', 'libvpx_srcs_arm_neon.gypi',
], ],
'cflags!': [
'-mfpu=vfpv3-d16',
],
'cflags': [
'-mfpu=neon',
],
}],
['OS == "android"', {
'cflags': [
'-I<(android_ndk_root)/sources/android/cpufeatures',
],
}], }],
[ 'chromeos == 1', { [ 'chromeos == 1', {
# ChromeOS needs these files for animated WebM avatars. # ChromeOS needs these files for animated WebM avatars.
@ -253,6 +320,8 @@
], ],
}], }],
], ],
}],
],
'targets': [ 'targets': [
{ {
# A tool that runs on host to tract integers from object file. # A tool that runs on host to tract integers from object file.

View File

@ -0,0 +1,55 @@
# Copyright (c) 2012 The WebRTC 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.
# This script is called from libvpx.gypi. It generates .S files from
# .asm. Converts from ARM syntax used in the RealView Compiler Tools
# (RVCT) to Gnu Assembler Syntax (GAS).
{
# Copy the script to the output folder so that we can use it with
# absolute path.
'copies': [{
'destination': '<(shared_generated_dir)',
'files': [
'<(ads2gas_script_path)',
],
}],
# Rule to convert .asm files to .S files.
'rules': [{
'rule_name': 'convert_asm',
'extension': 'asm',
'inputs': [ '<(shared_generated_dir)/<(ads2gas_script)', ],
'outputs': [
'<(shared_generated_dir)/<(RULE_INPUT_ROOT).S',
],
'action': [
'bash',
'-c',
'cat <(RULE_INPUT_PATH) |'
'perl <(shared_generated_dir)/<(ads2gas_script) >'
'<(shared_generated_dir)/<(RULE_INPUT_ROOT).S',
],
'process_outputs_as_sources': 1,
'message': 'Convert libvpx asm file for ARM <(RULE_INPUT_PATH).',
}],
'variables': {
# Location of the assembly conversion script.
'ads2gas_script': 'ads2gas.pl',
'ads2gas_script_path':
'<(libvpx_src_dir)/build/make/<(ads2gas_script)',
},
'include_dirs': [
'source/config/<(OS_CATEGORY)/<(target_arch_full)',
'<(libvpx_src_dir)',
],
'direct_dependent_settings': {
'include_dirs': [
'<(libvpx_src_dir)',
],
},
}

View File

@ -0,0 +1,13 @@
# This file is generated. Do not edit.
# 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.
{
'sources': [
'<(libvpx_src_dir)/vp8/encoder/arm/armv5te/boolhuff_armv5te.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/armv5te/vp8_packtokens_armv5.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/armv5te/vp8_packtokens_mbrow_armv5.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/armv5te/vp8_packtokens_partitions_armv5.asm',
],
}

View File

@ -0,0 +1,35 @@
# This file is generated. Do not edit.
# 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.
{
'sources': [
'<(libvpx_src_dir)/vp8/common/arm/armv6/bilinearfilter_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/copymem16x16_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/copymem8x4_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/copymem8x8_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/dc_only_idct_add_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/dequant_idct_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/dequantize_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/filter_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/idct_blk_v6.c',
'<(libvpx_src_dir)/vp8/common/arm/armv6/idct_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/intra4x4_predict_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/iwalsh_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/loopfilter_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/simpleloopfilter_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/sixtappredict8x4_v6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/vp8_sad16x16_armv6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/vp8_variance16x16_armv6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/vp8_variance8x8_armv6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6.asm',
'<(libvpx_src_dir)/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/armv6/vp8_fast_quantize_b_armv6.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/armv6/vp8_mse16x16_armv6.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/armv6/vp8_short_fdct4x4_armv6.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/armv6/vp8_subtract_armv6.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/armv6/walsh_v6.asm',
],
}

176
third_party/libvpx/libvpx_src_c.gypi vendored Normal file
View File

@ -0,0 +1,176 @@
# This file is generated. Do not edit.
# 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.
{
'sources': [
'<(libvpx_src_dir)/vp8/common/alloccommon.c',
'<(libvpx_src_dir)/vp8/common/alloccommon.h',
'<(libvpx_src_dir)/vp8/common/arm/dequantize_arm.c',
'<(libvpx_src_dir)/vp8/common/arm/filter_arm.c',
'<(libvpx_src_dir)/vp8/common/arm/loopfilter_arm.c',
'<(libvpx_src_dir)/vp8/common/arm/reconintra_arm.c',
'<(libvpx_src_dir)/vp8/common/arm/variance_arm.c',
'<(libvpx_src_dir)/vp8/common/blockd.c',
'<(libvpx_src_dir)/vp8/common/blockd.h',
'<(libvpx_src_dir)/vp8/common/coefupdateprobs.h',
'<(libvpx_src_dir)/vp8/common/common.h',
'<(libvpx_src_dir)/vp8/common/debugmodes.c',
'<(libvpx_src_dir)/vp8/common/default_coef_probs.h',
'<(libvpx_src_dir)/vp8/common/dequantize.c',
'<(libvpx_src_dir)/vp8/common/entropy.c',
'<(libvpx_src_dir)/vp8/common/entropy.h',
'<(libvpx_src_dir)/vp8/common/entropymode.c',
'<(libvpx_src_dir)/vp8/common/entropymode.h',
'<(libvpx_src_dir)/vp8/common/entropymv.c',
'<(libvpx_src_dir)/vp8/common/entropymv.h',
'<(libvpx_src_dir)/vp8/common/extend.c',
'<(libvpx_src_dir)/vp8/common/extend.h',
'<(libvpx_src_dir)/vp8/common/filter.c',
'<(libvpx_src_dir)/vp8/common/filter.h',
'<(libvpx_src_dir)/vp8/common/findnearmv.c',
'<(libvpx_src_dir)/vp8/common/findnearmv.h',
'<(libvpx_src_dir)/vp8/common/generic/systemdependent.c',
'<(libvpx_src_dir)/vp8/common/header.h',
'<(libvpx_src_dir)/vp8/common/idct_blk.c',
'<(libvpx_src_dir)/vp8/common/idctllm.c',
'<(libvpx_src_dir)/vp8/common/invtrans.h',
'<(libvpx_src_dir)/vp8/common/loopfilter.c',
'<(libvpx_src_dir)/vp8/common/loopfilter_filters.c',
'<(libvpx_src_dir)/vp8/common/loopfilter.h',
'<(libvpx_src_dir)/vp8/common/mbpitch.c',
'<(libvpx_src_dir)/vp8/common/mfqe.c',
'<(libvpx_src_dir)/vp8/common/modecont.c',
'<(libvpx_src_dir)/vp8/common/modecont.h',
'<(libvpx_src_dir)/vp8/common/mv.h',
'<(libvpx_src_dir)/vp8/common/onyxc_int.h',
'<(libvpx_src_dir)/vp8/common/onyxd.h',
'<(libvpx_src_dir)/vp8/common/onyx.h',
'<(libvpx_src_dir)/vp8/common/postproc.c',
'<(libvpx_src_dir)/vp8/common/postproc.h',
'<(libvpx_src_dir)/vp8/common/ppflags.h',
'<(libvpx_src_dir)/vp8/common/pragmas.h',
'<(libvpx_src_dir)/vp8/common/quant_common.c',
'<(libvpx_src_dir)/vp8/common/quant_common.h',
'<(libvpx_src_dir)/vp8/common/reconinter.c',
'<(libvpx_src_dir)/vp8/common/reconinter.h',
'<(libvpx_src_dir)/vp8/common/reconintra4x4.c',
'<(libvpx_src_dir)/vp8/common/reconintra4x4.h',
'<(libvpx_src_dir)/vp8/common/reconintra.c',
'<(libvpx_src_dir)/vp8/common/rtcd.c',
'<(libvpx_src_dir)/vp8/common/sad_c.c',
'<(libvpx_src_dir)/vp8/common/setupintrarecon.c',
'<(libvpx_src_dir)/vp8/common/setupintrarecon.h',
'<(libvpx_src_dir)/vp8/common/swapyv12buffer.c',
'<(libvpx_src_dir)/vp8/common/swapyv12buffer.h',
'<(libvpx_src_dir)/vp8/common/systemdependent.h',
'<(libvpx_src_dir)/vp8/common/threading.h',
'<(libvpx_src_dir)/vp8/common/treecoder.c',
'<(libvpx_src_dir)/vp8/common/treecoder.h',
'<(libvpx_src_dir)/vp8/common/variance_c.c',
'<(libvpx_src_dir)/vp8/common/variance.h',
'<(libvpx_src_dir)/vp8/common/vp8_entropymodedata.h',
'<(libvpx_src_dir)/vp8/decoder/dboolhuff.c',
'<(libvpx_src_dir)/vp8/decoder/dboolhuff.h',
'<(libvpx_src_dir)/vp8/decoder/decodemv.c',
'<(libvpx_src_dir)/vp8/decoder/decodemv.h',
'<(libvpx_src_dir)/vp8/decoder/decoderthreading.h',
'<(libvpx_src_dir)/vp8/decoder/decodframe.c',
'<(libvpx_src_dir)/vp8/decoder/detokenize.c',
'<(libvpx_src_dir)/vp8/decoder/detokenize.h',
'<(libvpx_src_dir)/vp8/decoder/ec_types.h',
'<(libvpx_src_dir)/vp8/decoder/error_concealment.c',
'<(libvpx_src_dir)/vp8/decoder/error_concealment.h',
'<(libvpx_src_dir)/vp8/decoder/onyxd_if.c',
'<(libvpx_src_dir)/vp8/decoder/onyxd_int.h',
'<(libvpx_src_dir)/vp8/decoder/threading.c',
'<(libvpx_src_dir)/vp8/decoder/treereader.h',
'<(libvpx_src_dir)/vp8/encoder/arm/boolhuff_arm.c',
'<(libvpx_src_dir)/vp8/encoder/arm/dct_arm.c',
'<(libvpx_src_dir)/vp8/encoder/arm/quantize_arm.c',
'<(libvpx_src_dir)/vp8/encoder/bitstream.c',
'<(libvpx_src_dir)/vp8/encoder/bitstream.h',
'<(libvpx_src_dir)/vp8/encoder/block.h',
'<(libvpx_src_dir)/vp8/encoder/boolhuff.h',
'<(libvpx_src_dir)/vp8/encoder/dct.c',
'<(libvpx_src_dir)/vp8/encoder/dct_value_cost.h',
'<(libvpx_src_dir)/vp8/encoder/dct_value_tokens.h',
'<(libvpx_src_dir)/vp8/encoder/defaultcoefcounts.h',
'<(libvpx_src_dir)/vp8/encoder/denoising.c',
'<(libvpx_src_dir)/vp8/encoder/denoising.h',
'<(libvpx_src_dir)/vp8/encoder/encodeframe.c',
'<(libvpx_src_dir)/vp8/encoder/encodeframe.h',
'<(libvpx_src_dir)/vp8/encoder/encodeintra.c',
'<(libvpx_src_dir)/vp8/encoder/encodeintra.h',
'<(libvpx_src_dir)/vp8/encoder/encodemb.c',
'<(libvpx_src_dir)/vp8/encoder/encodemb.h',
'<(libvpx_src_dir)/vp8/encoder/encodemv.c',
'<(libvpx_src_dir)/vp8/encoder/encodemv.h',
'<(libvpx_src_dir)/vp8/encoder/ethreading.c',
'<(libvpx_src_dir)/vp8/encoder/firstpass.h',
'<(libvpx_src_dir)/vp8/encoder/lookahead.c',
'<(libvpx_src_dir)/vp8/encoder/lookahead.h',
'<(libvpx_src_dir)/vp8/encoder/mcomp.c',
'<(libvpx_src_dir)/vp8/encoder/mcomp.h',
'<(libvpx_src_dir)/vp8/encoder/modecosts.c',
'<(libvpx_src_dir)/vp8/encoder/modecosts.h',
'<(libvpx_src_dir)/vp8/encoder/mr_dissim.c',
'<(libvpx_src_dir)/vp8/encoder/mr_dissim.h',
'<(libvpx_src_dir)/vp8/encoder/onyx_if.c',
'<(libvpx_src_dir)/vp8/encoder/onyx_int.h',
'<(libvpx_src_dir)/vp8/encoder/pickinter.c',
'<(libvpx_src_dir)/vp8/encoder/pickinter.h',
'<(libvpx_src_dir)/vp8/encoder/picklpf.c',
'<(libvpx_src_dir)/vp8/encoder/psnr.c',
'<(libvpx_src_dir)/vp8/encoder/psnr.h',
'<(libvpx_src_dir)/vp8/encoder/quantize.c',
'<(libvpx_src_dir)/vp8/encoder/quantize.h',
'<(libvpx_src_dir)/vp8/encoder/ratectrl.c',
'<(libvpx_src_dir)/vp8/encoder/ratectrl.h',
'<(libvpx_src_dir)/vp8/encoder/rdopt.c',
'<(libvpx_src_dir)/vp8/encoder/rdopt.h',
'<(libvpx_src_dir)/vp8/encoder/segmentation.c',
'<(libvpx_src_dir)/vp8/encoder/segmentation.h',
'<(libvpx_src_dir)/vp8/encoder/tokenize.c',
'<(libvpx_src_dir)/vp8/encoder/tokenize.h',
'<(libvpx_src_dir)/vp8/encoder/treewriter.c',
'<(libvpx_src_dir)/vp8/encoder/treewriter.h',
'<(libvpx_src_dir)/vp8/vp8_cx_iface.c',
'<(libvpx_src_dir)/vp8/vp8_dx_iface.c',
'<(libvpx_src_dir)/vpx/internal/vpx_codec_internal.h',
'<(libvpx_src_dir)/vpx_mem/include/vpx_mem_intrnl.h',
'<(libvpx_src_dir)/vpx_mem/vpx_mem.c',
'<(libvpx_src_dir)/vpx_mem/vpx_mem.h',
'<(libvpx_src_dir)/vpx_ports/arm_cpudetect.c',
'<(libvpx_src_dir)/vpx_ports/arm.h',
'<(libvpx_src_dir)/vpx_ports/asm_offsets.h',
'<(libvpx_src_dir)/vpx_ports/mem.h',
'<(libvpx_src_dir)/vpx_ports/vpx_timer.h',
'<(libvpx_src_dir)/vpx_scale/generic/gen_scalers.c',
'<(libvpx_src_dir)/vpx_scale/generic/vpxscale.c',
'<(libvpx_src_dir)/vpx_scale/generic/yv12config.c',
'<(libvpx_src_dir)/vpx_scale/generic/yv12extend.c',
'<(libvpx_src_dir)/vpx_scale/generic/yv12extend_generic.h',
'<(libvpx_src_dir)/vpx_scale/scale_mode.h',
'<(libvpx_src_dir)/vpx_scale/vpxscale.h',
'<(libvpx_src_dir)/vpx_scale/yv12config.h',
'<(libvpx_src_dir)/vpx/src/vpx_codec.c',
'<(libvpx_src_dir)/vpx/src/vpx_decoder.c',
'<(libvpx_src_dir)/vpx/src/vpx_encoder.c',
'<(libvpx_src_dir)/vpx/src/vpx_image.c',
'<(libvpx_src_dir)/vpx/vp8cx.h',
'<(libvpx_src_dir)/vpx/vp8dx.h',
'<(libvpx_src_dir)/vpx/vp8.h',
'<(libvpx_src_dir)/vpx/vpx_codec.h',
'<(libvpx_src_dir)/vpx/vpx_codec_impl_bottom.h',
'<(libvpx_src_dir)/vpx/vpx_codec_impl_top.h',
'<(libvpx_src_dir)/vpx/vpx_decoder.h',
'<(libvpx_src_dir)/vpx/vpx_encoder.h',
'<(libvpx_src_dir)/vpx/vpx_image.h',
'<(libvpx_src_dir)/vpx/vpx_integer.h',
'<(libvpx_src_dir)/vp8/common/arm/bilinearfilter_arm.c',
'<(libvpx_src_dir)/vp8/common/arm/bilinearfilter_arm.h',
'<(libvpx_src_dir)/vpx_scale/arm/neon/yv12extend_arm.c',
],
}

51
third_party/libvpx/libvpx_src_neon.gypi vendored Normal file
View File

@ -0,0 +1,51 @@
# This file is generated. Do not edit.
# 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.
{
'sources': [
'<(libvpx_src_dir)/vp8/common/arm/neon/bilinearpredict16x16_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/bilinearpredict4x4_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/bilinearpredict8x4_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/bilinearpredict8x8_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/buildintrapredictorsmby_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/copymem16x16_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/copymem8x4_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/copymem8x8_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/dc_only_idct_add_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/dequant_idct_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/dequantizeb_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/idct_blk_neon.c',
'<(libvpx_src_dir)/vp8/common/arm/neon/idct_dequant_0_2x_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/idct_dequant_full_2x_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/iwalsh_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/loopfilter_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/mbloopfilter_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/sad16_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/sad8_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/save_reg_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/shortidct4x4llm_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/sixtappredict16x16_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/sixtappredict4x4_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/sixtappredict8x4_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/sixtappredict8x8_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/variance_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/vp8_subpixelvariance16x16_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/vp8_subpixelvariance16x16s_neon.asm',
'<(libvpx_src_dir)/vp8/common/arm/neon/vp8_subpixelvariance8x8_neon.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/neon/fastquantizeb_neon.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/neon/picklpf_arm.c',
'<(libvpx_src_dir)/vp8/encoder/arm/neon/shortfdct_neon.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/neon/subtract_neon.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/neon/vp8_memcpy_neon.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/neon/vp8_mse16x16_neon.asm',
'<(libvpx_src_dir)/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.asm',
'<(libvpx_src_dir)/vpx_scale/arm/neon/vp8_vpxyv12_copyframe_func_neon.asm',
'<(libvpx_src_dir)/vpx_scale/arm/neon/vp8_vpxyv12_copysrcframe_func_neon.asm',
'<(libvpx_src_dir)/vpx_scale/arm/neon/vp8_vpxyv12_copy_y_neon.asm',
'<(libvpx_src_dir)/vpx_scale/arm/neon/vp8_vpxyv12_extendframeborders_neon.asm',
],
}

View File

@ -269,6 +269,12 @@ LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/third_party/libvpx/libvpx.a $(MY_LIBS_PATH)/third_party/libvpx/libvpx.a
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvpx_arm_neon
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/third_party/libvpx/libvpx_arm_neon.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := libpaced_sender LOCAL_MODULE := libpaced_sender
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
@ -339,6 +345,7 @@ LOCAL_STATIC_LIBRARIES := \
libaudioproc_debug_proto \ libaudioproc_debug_proto \
libprotobuf_lite \ libprotobuf_lite \
libvpx \ libvpx \
libvpx_arm_neon \
libpaced_sender \ libpaced_sender \
$(MY_SUPPLEMENTAL_LIBS) $(MY_SUPPLEMENTAL_LIBS)