Correctly rebuild WebRTCDemo after jni/ source file changes

BUG=1980
TEST=Modify source file under jni/ and WebRTCDemo will rebuild
R=fischman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1831004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4377 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
yujie.mao@webrtc.org 2013-07-20 04:43:08 +00:00
parent dd02935d5d
commit 129afc29fb
4 changed files with 44 additions and 608 deletions

View File

@ -6,111 +6,62 @@
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
{
'variables': {
# NOTE: This laundry list of libs comes from jni/Android.mk and should be
# kept in sync with that location. Also note that the explicit library
# names must be used (in addition to the names of their gyp targets) because
# these are fed into the 'inputs' attribute of the action below, not to
# 'dependencies' because these need to be real (build-time) dependencies,
# not just order-only dependencies
# (https://code.google.com/p/webrtc/issues/detail?id=1980).
'android_mk_common_libs': [
'<(PRODUCT_DIR)/libvoice_engine.a',
'<(PRODUCT_DIR)/libvideo_engine_core.a',
'<(PRODUCT_DIR)/libvideo_processing.a',
'<(PRODUCT_DIR)/libwebrtc_video_coding.a',
'<(PRODUCT_DIR)/libvideo_render_module.a',
'<(PRODUCT_DIR)/libvideo_capture_module.a',
'<(PRODUCT_DIR)/libaudio_coding_module.a',
'<(PRODUCT_DIR)/libaudio_processing.a',
'<(PRODUCT_DIR)/libPCM16B.a',
'<(PRODUCT_DIR)/libCNG.a',
'<(PRODUCT_DIR)/libNetEq.a',
'<(PRODUCT_DIR)/libG722.a',
'<(PRODUCT_DIR)/libiSAC.a',
'<(PRODUCT_DIR)/libG711.a',
'<(PRODUCT_DIR)/libiLBC.a',
'<(PRODUCT_DIR)/libiSACFix.a',
'<(PRODUCT_DIR)/libwebrtc_opus.a',
'<(PRODUCT_DIR)/libopus.a',
'<(PRODUCT_DIR)/libcommon_audio.a',
'<(PRODUCT_DIR)/libbitrate_controller.a',
'<(PRODUCT_DIR)/libcommon_video.a',
'<(PRODUCT_DIR)/libcpu_features_android.a',
'<(PRODUCT_DIR)/libaudio_device.a',
'<(PRODUCT_DIR)/libremote_bitrate_estimator.a',
'<(PRODUCT_DIR)/librtp_rtcp.a',
'<(PRODUCT_DIR)/libmedia_file.a',
'<(PRODUCT_DIR)/libchannel_transport.a',
'<(PRODUCT_DIR)/libwebrtc_utility.a',
'<(PRODUCT_DIR)/libaudio_conference_mixer.a',
'<(PRODUCT_DIR)/libyuv.a',
'<(PRODUCT_DIR)/libwebrtc_i420.a',
'<(PRODUCT_DIR)/libwebrtc_vp8.a',
'<(PRODUCT_DIR)/libvideo_coding_utility.a',
'<(PRODUCT_DIR)/libsystem_wrappers.a',
'<(PRODUCT_DIR)/libjpeg_turbo.a',
'<(PRODUCT_DIR)/libaudioproc_debug_proto.a',
'<(PRODUCT_DIR)/libprotobuf_lite.a',
'<(PRODUCT_DIR)/libpaced_sender.a',
'<(PRODUCT_DIR)/libvpx.a',
],
'android_mk_x86_libs': [
'<(PRODUCT_DIR)/libvideo_processing_sse2.a',
'<(PRODUCT_DIR)/libaudio_processing_sse2.a',
'<(PRODUCT_DIR)/libcommon_audio_sse2.a',
'<(PRODUCT_DIR)/libvpx_intrinsics_mmx.a',
'<(PRODUCT_DIR)/libvpx_intrinsics_sse2.a',
'<(PRODUCT_DIR)/libvpx_intrinsics_ssse3.a',
],
'android_mk_arm_libs': [
'<(PRODUCT_DIR)/libaudio_processing_neon.a',
'<(PRODUCT_DIR)/libisac_neon.a',
'<(PRODUCT_DIR)/libcommon_audio_neon.a',
'<(PRODUCT_DIR)/libvpx_arm_neon.a',
],
'android_modules_java_jars': [
'<(PRODUCT_DIR)/lib.java/audio_device_module_java.jar',
'<(PRODUCT_DIR)/lib.java/video_capture_module_java.jar',
'<(PRODUCT_DIR)/lib.java/video_render_module_java.jar',
],
},
'targets': [
{
'target_name': 'video_demo_apk',
'type': 'none',
'conditions': [
['target_arch=="x86"', {
'inputs': [ '<@(android_mk_x86_libs)' ],
}, {
'inputs': [ '<@(android_mk_arm_libs)' ],
}],
],
'target_name': 'libwebrtc-video-demo-jni',
'type': 'loadable_module',
'dependencies': [
'<(webrtc_root)/modules/modules.gyp:*',
'<(modules_java_gyp_path):*',
'<(webrtc_root)/test/test.gyp:channel_transport',
'<(webrtc_root)/video_engine/video_engine.gyp:video_engine_core',
'<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine',
],
'sources': [
'jni/android_media_codec_decoder.cc',
'jni/vie_android_java_api.cc',
],
'link_settings': {
'libraries': [
'-llog',
'-lgcc',
'-lGLESv2',
'-lOpenSLES',
],
}
},
{
'target_name': 'WebRTCDemo',
'type': 'none',
'dependencies': [
'libwebrtc-video-demo-jni',
'<(modules_java_gyp_path):*',
],
'actions': [
{
# TODO(leozwang): Convert building of the demo to a proper GYP target
# so this action and the custom build script is not needed.
'action_name': 'build_video_demo_apk',
# TODO(yujie.mao): Convert building of the demo to a proper GYP target
# so this action is not needed once chromium's apk-building machinery
# can be used. (crbug.com/225101)
'action_name': 'build_webrtcdemo_apk',
'variables': {
'android_webrtc_demo_root': '<(webrtc_root)/video_engine/test/android',
},
'inputs' : [
'<(webrtc_root)/video_engine/test/android/src/org/webrtc/videoengine/ViEMediaCodecDecoder.java',
'<(webrtc_root)/video_engine/test/android/src/org/webrtc/videoengineapp/IViEAndroidCallback.java',
'<(webrtc_root)/video_engine/test/android/src/org/webrtc/videoengineapp/ViEAndroidJavaAPI.java',
'<(webrtc_root)/video_engine/test/android/src/org/webrtc/videoengineapp/WebRTCDemo.java',
'<@(android_mk_common_libs)',
'<@(android_modules_java_jars)',
'<(PRODUCT_DIR)/lib.java/audio_device_module_java.jar',
'<(PRODUCT_DIR)/lib.java/video_capture_module_java.jar',
'<(PRODUCT_DIR)/lib.java/video_render_module_java.jar',
'<(PRODUCT_DIR)/libwebrtc-video-demo-jni.so',
'<!@(find <(android_webrtc_demo_root)/src -name "*.java")',
],
'outputs': ['<(PRODUCT_DIR)/WebRTCDemo-debug.apk'],
'action': ['bash', '-ec',
'rm -f <(_outputs) && '
'mkdir -p <(android_webrtc_demo_root)/libs/<(android_app_abi) && '
'<(android_strip) -o <(android_webrtc_demo_root)/libs/<(android_app_abi)/libwebrtc-video-demo-jni.so <(PRODUCT_DIR)/libwebrtc-video-demo-jni.so && '
'cd <(android_webrtc_demo_root) && '
'ant debug && '
'cd - && '
'cp <(android_webrtc_demo_root)/bin/WebRTCDemo-debug.apk <(_outputs)'
],
'outputs': ['<(webrtc_root)'],
'action': ['python',
'<(webrtc_root)/video_engine/test/android/build_demo.py',
'--arch', '<(target_arch)'],
},
],
},

View File

@ -1,92 +0,0 @@
#!/usr/bin/env python
#
# Copyright (c) 2013 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.
"""Builds the WebRTC Video Demo for Android.
This script is designed as an annotation script to be run by a Chrome Buildbot.
PREREQUISITES: You must have built WebRTC with the right environment set (the
one you get when sourcing build/android/envsetup.sh) before building with this
script.
NOTICE: To build successfully, you have to have Ant installed and have your
.gclient file setup with the target_os = ["android"] variable appended to the
last line of your WebRTC solution, so it looks like this:
];target_os = ["android"]
Then run 'gclient sync' to sync out the required Android SDK and NDK files into
the third_party directory.
If you want to get additional platform-specific dependencies in the same
checkout, add them to the list too, e.g. target_os = ["android", "unix"].
"""
import optparse
import os
import subprocess
import sys
_CURRENT_DIR = os.path.abspath(os.path.dirname(__file__))
_ROOT_DIR = os.path.abspath(os.path.join(_CURRENT_DIR, '..', '..', '..', '..'))
_ANDROID_ENV_SCRIPT = os.path.join(_ROOT_DIR, 'build', 'android', 'envsetup.sh')
def main():
parser = optparse.OptionParser('usage: %prog -t <target> -a <arch>')
parser.add_option('-t', '--target', default='debug',
help='Compile target (debug/release). Default: %default')
parser.add_option('-a', '--arch', type='choice', choices=['arm', 'ia32'],
help='Compile arch (arm/ia32).')
# Build and factory properties are currently unused but are required to avoid
# errors when the script is executed by the buildbots.
parser.add_option('--build-properties', help='Build properties (unused)')
parser.add_option('--factory-properties', help='Factory properties (unused)')
options, _args = parser.parse_args()
if options.arch.lower() == 'ia32':
target_arch = 'x86'
app_abi = 'x86'
elif options.arch.lower() == 'arm':
target_arch = 'arm'
app_abi = 'armeabi-v7a'
else:
print 'Unsupported target platform'
raise
def RunInAndroidEnv(cmd):
return 'source %s --target-arch=%s && %s' % (_ANDROID_ENV_SCRIPT,
target_arch, cmd)
print '@@@BUILD_STEP ndk-build@@@'
cmd = RunInAndroidEnv('ndk-build APP_ABI=%s' % app_abi)
print cmd
try:
subprocess.check_call(cmd, cwd=_CURRENT_DIR, executable='/bin/bash',
shell=True)
except subprocess.CalledProcessError as e:
print 'NDK build failed: %s' % e
print '@@@STEP_FAILURE@@@'
return 1
print '@@@BUILD_STEP ant-build@@@'
cmd = RunInAndroidEnv('ant %s' % options.target.lower())
print cmd
try:
subprocess.check_call(cmd, cwd=_CURRENT_DIR, executable='/bin/bash',
shell=True)
except subprocess.CalledProcessError as e:
print 'Ant build failed: %s' % e
print '@@@STEP_FAILURE@@@'
return 2
print 'WebRTC Demo build completed.'
return 0
if __name__ == '__main__':
sys.exit(main())

View File

@ -1,412 +0,0 @@
# 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.
LOCAL_PATH := $(call my-dir)
include $(call all-makefiles-under, $(LOCAL_PATH))
# Specify BUILDTYPE=Release on the command line for a release build.
BUILDTYPE ?= Debug
MY_LIBS_PATH := ../../../../../out/$(BUILDTYPE)
include $(CLEAR_VARS)
LOCAL_MODULE := libvoice_engine
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvoice_engine.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvideo_engine_core
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvideo_engine_core.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvideo_processing
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvideo_processing.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libwebrtc_video_coding
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libwebrtc_video_coding.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvideo_render_module
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvideo_render_module.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvideo_capture_module
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvideo_capture_module.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libaudio_coding_module
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libaudio_coding_module.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libaudio_processing
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libaudio_processing.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libPCM16B
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libPCM16B.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libCNG
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libCNG.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libNetEq
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libNetEq.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libG722
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libG722.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libiSAC
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libiSAC.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libG711
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libG711.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libiLBC
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libiLBC.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libiSACFix
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libiSACFix.a
include $(PREBUILT_STATIC_LIBRARY)
# Remove the following file existense check when opus is always enabled.
ifneq ($(wildcard jni/$(MY_LIBS_PATH)/libopus.a),)
include $(CLEAR_VARS)
LOCAL_MODULE := libopus
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libopus.a
include $(PREBUILT_STATIC_LIBRARY)
endif
ifneq ($(wildcard jni/$(MY_LIBS_PATH)/libwebrtc_opus.a),)
include $(CLEAR_VARS)
LOCAL_MODULE := libwebrtc_opus
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libwebrtc_opus.a
include $(PREBUILT_STATIC_LIBRARY)
endif
include $(CLEAR_VARS)
LOCAL_MODULE := libcommon_audio
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libcommon_audio.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libbitrate_controller
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libbitrate_controller.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libcommon_video
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libcommon_video.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libsystem_wrappers
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libsystem_wrappers.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libcpu_features_android
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libcpu_features_android.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libaudio_device
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libaudio_device.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libremote_bitrate_estimator
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libremote_bitrate_estimator.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := librbe_components
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/librbe_components.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := librtp_rtcp
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/librtp_rtcp.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libmedia_file
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libmedia_file.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libchannel_transport
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libchannel_transport.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libwebrtc_utility
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libwebrtc_utility.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libaudio_conference_mixer
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libaudio_conference_mixer.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libyuv
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libyuv.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libwebrtc_i420
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libwebrtc_i420.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libwebrtc_vp8
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libwebrtc_vp8.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvideo_coding_utility
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvideo_coding_utility.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libjpeg_turbo
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libjpeg_turbo.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libaudioproc_debug_proto
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libaudioproc_debug_proto.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libprotobuf_lite
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libprotobuf_lite.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvpx
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvpx.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libpaced_sender
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libpaced_sender.a
include $(PREBUILT_STATIC_LIBRARY)
ifeq ($(APP_ABI), x86) # x86 Android specific
include $(CLEAR_VARS)
LOCAL_MODULE := libvideo_processing_sse2
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvideo_processing_sse2.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libaudio_processing_sse2
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libaudio_processing_sse2.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libcommon_audio_sse2
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libcommon_audio_sse2.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvpx_intrinsics_mmx
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvpx_intrinsics_mmx.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvpx_intrinsics_sse2
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvpx_intrinsics_sse2.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvpx_intrinsics_ssse3
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libvpx_intrinsics_ssse3.a
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PLATFORM_SPECIFIC_STATIC_LIBRARIES := \
libvideo_processing_sse2 \
libaudio_processing_sse2 \
libcommon_audio_sse2 \
libvpx_intrinsics_mmx \
libvpx_intrinsics_sse2 \
libvpx_intrinsics_ssse3
else # arm Android specific
include $(CLEAR_VARS)
LOCAL_MODULE := libaudio_processing_neon
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libaudio_processing_neon.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libisac_neon
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libisac_neon.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libcommon_audio_neon
LOCAL_SRC_FILES := \
$(MY_LIBS_PATH)/libcommon_audio_neon.a
include $(PREBUILT_STATIC_LIBRARY)
# TODO(leozwang): Upstream required Android changes to libvpx.gyp to enable
# this optimization.
#include $(CLEAR_VARS)
#LOCAL_MODULE := libvpx_arm_neon
#LOCAL_SRC_FILES := \
# $(MY_LIBS_PATH)/libvpx_arm_neon.a
#include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PLATFORM_SPECIFIC_STATIC_LIBRARIES := \
libaudio_processing_neon \
libisac_neon \
libcommon_audio_neon \
libvpx_arm_neon
endif
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests
LOCAL_MODULE := libwebrtc-video-demo-jni
LOCAL_CPP_EXTENSION := .cc
LOCAL_SRC_FILES := \
vie_android_java_api.cc \
android_media_codec_decoder.cc
LOCAL_CFLAGS := \
'-DWEBRTC_TARGET_PC' \
'-DWEBRTC_ANDROID'
LOCAL_C_INCLUDES := \
external/gtest/include \
$(LOCAL_PATH)/../../../.. \
$(LOCAL_PATH)/../../../../.. \
$(LOCAL_PATH)/../../../include \
$(LOCAL_PATH)/../../../../voice_engine/include
LOCAL_LDLIBS := \
-llog \
-lgcc \
-lGLESv2 \
-lOpenSLES \
# TODO(yujie.mao): Replace LOCAL_WHOLE_STATIC_LIBRARIES to
# LOCAL_STATIC_LIBRARIES after removing the circular dependencies between
# libvpx.a and libvpx_intrinsics_[mmx,sse2,ssse3].a
LOCAL_WHOLE_STATIC_LIBRARIES := \
libvoice_engine \
libvideo_engine_core \
libvideo_processing \
libwebrtc_video_coding \
libvideo_render_module \
libvideo_capture_module \
libaudio_coding_module \
libaudio_processing \
libPCM16B \
libCNG \
libNetEq \
libG722 \
libiSAC \
libG711 \
libiLBC \
libiSACFix \
libwebrtc_opus \
libopus \
libcommon_audio \
libbitrate_controller \
libcommon_video \
libcpu_features_android \
libaudio_device \
libremote_bitrate_estimator \
librbe_components \
librtp_rtcp \
libmedia_file \
libchannel_transport \
libwebrtc_utility \
libaudio_conference_mixer \
libyuv \
libwebrtc_i420 \
libwebrtc_vp8 \
libvideo_coding_utility \
libsystem_wrappers \
libjpeg_turbo \
libaudioproc_debug_proto \
libprotobuf_lite \
libpaced_sender \
libvpx \
$(LOCAL_PLATFORM_SPECIFIC_STATIC_LIBRARIES) \
$(MY_SUPPLEMENTAL_LIBS)
include $(BUILD_SHARED_LIBRARY)

View File

@ -1,11 +0,0 @@
# 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.
# Build both ARMv7-A and x86 machine code.
APP_ABI := armeabi-v7a x86
APP_STL := stlport_static