merge neon source files back into single libyuv library

previously the neon source code was broken into a separate
library built with -mfpu=neon for the neon assembly, while
the C code was built without neon.

In this change, the neon code is added to the main library
and all code built with neon.

TBR=harryjin@google.com
BUG=libyuv:371

Review URL: https://codereview.chromium.org/1392043003 .
This commit is contained in:
Frank Barchard 2015-10-07 21:16:51 -07:00
parent 76a599ec3b
commit 2d601aaf34
5 changed files with 35 additions and 60 deletions

View File

@ -14,6 +14,7 @@ set(ly_source_files
${ly_src_dir}/compare.cc ${ly_src_dir}/compare.cc
${ly_src_dir}/compare_common.cc ${ly_src_dir}/compare_common.cc
${ly_src_dir}/compare_neon.cc ${ly_src_dir}/compare_neon.cc
${ly_src_dir}/compare_neon64.cc
${ly_src_dir}/compare_gcc.cc ${ly_src_dir}/compare_gcc.cc
${ly_src_dir}/compare_win.cc ${ly_src_dir}/compare_win.cc
${ly_src_dir}/convert.cc ${ly_src_dir}/convert.cc
@ -33,12 +34,14 @@ set(ly_source_files
${ly_src_dir}/rotate_common.cc ${ly_src_dir}/rotate_common.cc
${ly_src_dir}/rotate_mips.cc ${ly_src_dir}/rotate_mips.cc
${ly_src_dir}/rotate_neon.cc ${ly_src_dir}/rotate_neon.cc
${ly_src_dir}/rotate_neon64.cc
${ly_src_dir}/rotate_gcc.cc ${ly_src_dir}/rotate_gcc.cc
${ly_src_dir}/rotate_win.cc ${ly_src_dir}/rotate_win.cc
${ly_src_dir}/row_any.cc ${ly_src_dir}/row_any.cc
${ly_src_dir}/row_common.cc ${ly_src_dir}/row_common.cc
${ly_src_dir}/row_mips.cc ${ly_src_dir}/row_mips.cc
${ly_src_dir}/row_neon.cc ${ly_src_dir}/row_neon.cc
${ly_src_dir}/row_neon64.cc
${ly_src_dir}/row_gcc.cc ${ly_src_dir}/row_gcc.cc
${ly_src_dir}/row_win.cc ${ly_src_dir}/row_win.cc
${ly_src_dir}/scale.cc ${ly_src_dir}/scale.cc
@ -47,6 +50,7 @@ set(ly_source_files
${ly_src_dir}/scale_common.cc ${ly_src_dir}/scale_common.cc
${ly_src_dir}/scale_mips.cc ${ly_src_dir}/scale_mips.cc
${ly_src_dir}/scale_neon.cc ${ly_src_dir}/scale_neon.cc
${ly_src_dir}/scale_neon64.cc
${ly_src_dir}/scale_gcc.cc ${ly_src_dir}/scale_gcc.cc
${ly_src_dir}/scale_win.cc ${ly_src_dir}/scale_win.cc
${ly_src_dir}/video_common.cc ${ly_src_dir}/video_common.cc

View File

@ -1,6 +1,6 @@
Name: libyuv Name: libyuv
URL: http://code.google.com/p/libyuv/ URL: http://code.google.com/p/libyuv/
Version: 1505 Version: 1506
License: BSD License: BSD
License File: LICENSE License File: LICENSE

View File

@ -11,6 +11,6 @@
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
#define INCLUDE_LIBYUV_VERSION_H_ #define INCLUDE_LIBYUV_VERSION_H_
#define LIBYUV_VERSION 1505 #define LIBYUV_VERSION 1506
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT

View File

@ -33,16 +33,22 @@
}], }],
], ],
}, },
'conditions': [
['build_neon != 0', { 'targets': [
'targets': [ {
# The NEON-specific components. 'target_name': 'libyuv',
{ # Change type to 'shared_library' to build .so or .dll files.
'target_name': 'libyuv_neon', 'type': 'static_library',
'type': 'static_library', 'variables': {
'standalone_static_library': 1, 'optimize': 'max', # enable O2 and ltcg.
# TODO(noahric): This should remove whatever mfpu is set, not },
# just vfpv3-d16. # Allows libyuv.a redistributable library without external dependencies.
'standalone_static_library': 1,
'conditions': [
['build_neon != 0', {
'defines': [
'LIBYUV_NEON',
],
'cflags!': [ 'cflags!': [
'-mfpu=vfp', '-mfpu=vfp',
'-mfpu=vfpv3', '-mfpu=vfpv3',
@ -63,42 +69,7 @@
], ],
}], }],
], ],
'include_dirs': [ }],
'include',
'.',
],
'direct_dependent_settings': {
'include_dirs': [
'include',
'.',
],
},
'sources': [
# sources.
'source/compare_neon.cc',
'source/compare_neon64.cc',
'source/rotate_neon.cc',
'source/rotate_neon64.cc',
'source/row_neon.cc',
'source/row_neon64.cc',
'source/scale_neon.cc',
'source/scale_neon64.cc',
],
},
],
}],
],
'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': [
['OS != "ios" and libyuv_disable_jpeg != 1', { ['OS != "ios" and libyuv_disable_jpeg != 1', {
'defines': [ 'defines': [
'HAVE_JPEG' 'HAVE_JPEG'
@ -123,14 +94,6 @@
}], }],
], ],
}], }],
['build_neon != 0', {
'dependencies': [
'libyuv_neon',
],
'defines': [
'LIBYUV_NEON',
],
}],
# MemorySanitizer does not support assembly code yet. # MemorySanitizer does not support assembly code yet.
# http://crbug.com/344505 # http://crbug.com/344505
[ 'msan == 1', { [ 'msan == 1', {

View File

@ -34,6 +34,8 @@
'source/compare.cc', 'source/compare.cc',
'source/compare_common.cc', 'source/compare_common.cc',
'source/compare_gcc.cc', 'source/compare_gcc.cc',
'source/compare_neon.cc',
'source/compare_neon64.cc',
'source/compare_win.cc', 'source/compare_win.cc',
'source/convert.cc', 'source/convert.cc',
'source/convert_argb.cc', 'source/convert_argb.cc',
@ -50,20 +52,26 @@
'source/rotate_any.cc', 'source/rotate_any.cc',
'source/rotate_argb.cc', 'source/rotate_argb.cc',
'source/rotate_common.cc', 'source/rotate_common.cc',
'source/rotate_mips.cc',
'source/rotate_gcc.cc', 'source/rotate_gcc.cc',
'source/rotate_mips.cc',
'source/rotate_neon.cc',
'source/rotate_neon64.cc',
'source/rotate_win.cc', 'source/rotate_win.cc',
'source/row_any.cc', 'source/row_any.cc',
'source/row_common.cc', 'source/row_common.cc',
'source/row_mips.cc',
'source/row_gcc.cc', 'source/row_gcc.cc',
'source/row_mips.cc',
'source/row_neon.cc',
'source/row_neon64.cc',
'source/row_win.cc', 'source/row_win.cc',
'source/scale.cc', 'source/scale.cc',
'source/scale_argb.cc',
'source/scale_any.cc', 'source/scale_any.cc',
'source/scale_argb.cc',
'source/scale_common.cc', 'source/scale_common.cc',
'source/scale_mips.cc',
'source/scale_gcc.cc', 'source/scale_gcc.cc',
'source/scale_mips.cc',
'source/scale_neon.cc',
'source/scale_neon64.cc',
'source/scale_win.cc', 'source/scale_win.cc',
'source/video_common.cc', 'source/video_common.cc',
], ],