From 128fabaf7b94966aa271fa3d3f13da64a74f5b55 Mon Sep 17 00:00:00 2001 From: "perkj@webrtc.org" Date: Thu, 11 Dec 2014 12:25:57 +0000 Subject: [PATCH] Revert "Revert 7826 "Change Android PeerConnectionUnittest to build usin..."" Original cl description: Change Android PeerConnectionUnittest to build using Chrome macros. The purpose is to be able to run the tests using Chromes buildbots. To run: CHECKOUT_SOURCE_ROOT=`pwd` build/android/test_runner.py instrumentation --test-apk=libjingle_peerconnection_android_unittest This also add a new build target to build java PeerConnection using Chromes build macros. BUG=4031 R=kjellander@webrtc.org Review URL: https://webrtc-codereview.appspot.com/26349004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7874 4adac7df-926f-26a2-2b94-8c16560cd09d --- talk/libjingle.gyp | 30 ++++++++++++++++++- talk/libjingle_examples.gyp | 4 +-- talk/libjingle_tests.gyp | 57 +++++++------------------------------ 3 files changed, 42 insertions(+), 49 deletions(-) diff --git a/talk/libjingle.gyp b/talk/libjingle.gyp index 2a987f69e..49c8d79ad 100755 --- a/talk/libjingle.gyp +++ b/talk/libjingle.gyp @@ -45,7 +45,7 @@ 'targets': [ { 'target_name': 'libjingle_peerconnection_so', - 'type': 'loadable_module', + 'type': 'shared_library', 'dependencies': [ 'libjingle_peerconnection', '<(DEPTH)/third_party/icu/icu.gyp:icuuc', @@ -159,6 +159,34 @@ }, ], }], + ['OS=="android"', { + 'targets': [ + { + # |libjingle_peerconnection_java| builds a jar file with name + # libjingle_peerconnection_java.jar using Chromes build system. + # It includes all Java files needed to setup a PeeerConnection call + # from Android. + # TODO(perkj): Consider replacing the use of + # libjingle_peerconnection_jar with this target everywhere. + 'target_name': 'libjingle_peerconnection_java', + 'type': 'none', + 'dependencies': [ + 'libjingle_peerconnection_so', + ], + 'variables': { + 'java_in_dir': 'app/webrtc/java', + 'webrtc_modules_dir': '<(webrtc_root)/modules', + 'additional_src_dirs' : [ + 'app/webrtc/java/android', + '<(webrtc_modules_dir)/audio_device/android/java/src', + '<(webrtc_modules_dir)/video_capture/android/java/src', + '<(webrtc_modules_dir)/video_render/android/java/src', + ], + }, + 'includes': ['../build/java.gypi'], + }, # libjingle_peerconnection_java + ] + }], ['OS=="ios" or (OS=="mac" and target_arch!="ia32" and mac_sdk>="10.7")', { # The >= 10.7 above is required for ARC. 'targets': [ diff --git a/talk/libjingle_examples.gyp b/talk/libjingle_examples.gyp index f2c122baf..75bc2f7ca 100755 --- a/talk/libjingle_examples.gyp +++ b/talk/libjingle_examples.gyp @@ -361,7 +361,7 @@ 'action_name': 'build_apprtcdemo_apk', 'inputs' : [ '<(PRODUCT_DIR)/libjingle_peerconnection.jar', - '<(PRODUCT_DIR)/libjingle_peerconnection_so.so', + '<(PRODUCT_DIR)/lib/libjingle_peerconnection_so.so', 'examples/android/AndroidManifest.xml', 'examples/android/README', 'examples/android/ant.properties', @@ -424,7 +424,7 @@ 'mkdir -p examples/android/libs/<(android_app_abi) && ' 'cp <(PRODUCT_DIR)/libjingle_peerconnection.jar examples/android/libs/ &&' 'cp examples/android/third_party/autobanh/autobanh.jar examples/android/libs/ &&' - '<(android_strip) -o examples/android/libs/<(android_app_abi)/libjingle_peerconnection_so.so <(PRODUCT_DIR)/libjingle_peerconnection_so.so &&' + '<(android_strip) -o examples/android/libs/<(android_app_abi)/libjingle_peerconnection_so.so <(PRODUCT_DIR)/lib/libjingle_peerconnection_so.so &&' 'cd examples/android && ' '{ ANDROID_SDK_ROOT=<(android_sdk_root) ' 'ant debug > <(ant_log) 2>&1 || ' diff --git a/talk/libjingle_tests.gyp b/talk/libjingle_tests.gyp index d853236da..341073778 100755 --- a/talk/libjingle_tests.gyp +++ b/talk/libjingle_tests.gyp @@ -320,53 +320,18 @@ 'target_name': 'libjingle_peerconnection_android_unittest', 'type': 'none', 'dependencies': [ - 'libjingle.gyp:libjingle_peerconnection_jar', + 'libjingle.gyp:libjingle_peerconnection_java', ], - 'actions': [ - { - # TODO(perkj): convert from a custom script to a standard gyp - # apk build once chromium's apk-building gyp machinery can be used - # (http://crbug.com/225101) - 'action_name': 'build_peerconnection_unittests_apk', - 'inputs' : [ - '<(PRODUCT_DIR)/libjingle_peerconnection.jar', - '<(PRODUCT_DIR)/libjingle_peerconnection_so.so', - 'app/webrtc/androidtests/AndroidManifest.xml', - 'app/webrtc/androidtests/ant.properties', - 'app/webrtc/androidtests/build.xml', - 'app/webrtc/androidtests/jni/Android.mk', - 'app/webrtc/androidtests/project.properties', - 'app/webrtc/androidtests/res/drawable-hdpi/ic_launcher.png', - 'app/webrtc/androidtests/res/drawable-ldpi/ic_launcher.png', - 'app/webrtc/androidtests/res/drawable-mdpi/ic_launcher.png', - 'app/webrtc/androidtests/res/drawable-xhdpi/ic_launcher.png', - 'app/webrtc/androidtests/res/values/strings.xml', - 'app/webrtc/androidtests/src/org/webrtc/PeerConnectionAndroidTest.java', - 'app/webrtc/java/testcommon/src/org/webrtc/PeerConnectionTest.java', - ], - 'outputs': [ - '<(PRODUCT_DIR)/libjingle_peerconnection_android_unittest.apk', - ], - 'variables': { - 'ant_log': '../../../<(INTERMEDIATE_DIR)/ant.log', # ../.. to compensate for the cd app/webrtc/androidtests below. - }, - 'action': [ - 'bash', '-ec', - 'rm -fr <(_outputs) app/webrtc/androidtests/{bin,libs} && ' - 'mkdir -p <(INTERMEDIATE_DIR) && ' # Must happen _before_ the cd below - 'mkdir -p app/webrtc/androidtests/libs/<(android_app_abi) && ' - 'cp <(PRODUCT_DIR)/libjingle_peerconnection.jar app/webrtc/androidtests/libs/ &&' - '<(android_strip) -o app/webrtc/androidtests/libs/<(android_app_abi)/libjingle_peerconnection_so.so <(PRODUCT_DIR)/libjingle_peerconnection_so.so &&' - 'cd app/webrtc/androidtests && ' - '{ ANDROID_SDK_ROOT=<(android_sdk_root) ' - 'ant debug > <(ant_log) 2>&1 || ' - ' { cat <(ant_log) ; exit 1; } } && ' - 'cd - > /dev/null && ' - 'cp app/webrtc/androidtests/bin/libjingle_peerconnection_android_unittest-debug.apk <(_outputs)' - ], - }, - ], - }, # target AppRTCDemo + 'variables': { + 'apk_name': 'libjingle_peerconnection_android_unittest', + 'java_in_dir': 'app/webrtc/androidtests', + 'resource_dir': 'app/webrtc/androidtests/res', + 'additional_src_dirs': ['app/webrtc/java/testcommon'], + 'native_lib_target': 'libjingle_peerconnection_so', + 'is_test_apk': 1, + }, + 'includes': [ '../build/java_apk.gypi' ], + }, ], # targets }], # OS=="android" ['OS=="ios" or (OS=="mac" and target_arch!="ia32" and mac_sdk>="10.7")', {