Convert AppRTCDemo and AppRTCDemoTest to proper GYP target.

Initial CL for converting AppRTCDemo and AppRTCDemoTest to
the Chromium style of APK targets. This would
make it possible to get rid of all the ugly
bash stuff we currently have.

CL will bump minimum SDK to v14, but this is the requirement to use Chrome tools.

Initial work was done by kjellander@
https://webrtc-codereview.appspot.com/44549005/

R=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8686}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8686 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/talk/libjingle_examples.gyp b/talk/libjingle_examples.gyp
index 9144c67..c3d2fe9 100755
--- a/talk/libjingle_examples.gyp
+++ b/talk/libjingle_examples.gyp
@@ -317,94 +317,22 @@
         {
           'target_name': 'AppRTCDemo',
           'type': 'none',
+          'variables': {
+            'apk_name': 'AppRTCDemo',
+            'java_in_dir': 'examples/android',
+            'resource_dir': 'examples/android/res',
+            'input_jars_paths': [
+              'examples/android/third_party/autobanh/autobanh.jar',
+             ],
+            'library_dexed_jars_paths': [
+              'examples/android/third_party/autobanh/autobanh.jar',
+             ],
+            'native_lib_target': 'libjingle_peerconnection_so',
+          },
           'dependencies': [
-            'libjingle.gyp:libjingle_peerconnection_jar',
+            'libjingle.gyp:libjingle_peerconnection_java',
           ],
-          'actions': [
-            {
-              # TODO(glaznev): 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_apprtcdemo_apk',
-              'inputs' : [
-                '<(PRODUCT_DIR)/libjingle_peerconnection.jar',
-                '<(PRODUCT_DIR)/lib/libjingle_peerconnection_so.so',
-                'examples/android/AndroidManifest.xml',
-                'examples/android/README',
-                'examples/android/ant.properties',
-                'examples/android/third_party/autobanh/autobanh.jar',
-                'examples/android/build.xml',
-                'examples/android/jni/Android.mk',
-                'examples/android/project.properties',
-                'examples/android/res/drawable-hdpi/disconnect.png',
-                'examples/android/res/drawable-hdpi/ic_action_full_screen.png',
-                'examples/android/res/drawable-hdpi/ic_action_return_from_full_screen.png',
-                'examples/android/res/drawable-hdpi/ic_loopback_call.png',
-                'examples/android/res/drawable-hdpi/ic_launcher.png',
-                'examples/android/res/drawable-ldpi/disconnect.png',
-                'examples/android/res/drawable-ldpi/ic_action_full_screen.png',
-                'examples/android/res/drawable-ldpi/ic_action_return_from_full_screen.png',
-                'examples/android/res/drawable-ldpi/ic_loopback_call.png',
-                'examples/android/res/drawable-ldpi/ic_launcher.png',
-                'examples/android/res/drawable-mdpi/disconnect.png',
-                'examples/android/res/drawable-mdpi/ic_action_full_screen.png',
-                'examples/android/res/drawable-mdpi/ic_action_return_from_full_screen.png',
-                'examples/android/res/drawable-mdpi/ic_loopback_call.png',
-                'examples/android/res/drawable-mdpi/ic_launcher.png',
-                'examples/android/res/drawable-xhdpi/disconnect.png',
-                'examples/android/res/drawable-xhdpi/ic_action_full_screen.png',
-                'examples/android/res/drawable-xhdpi/ic_action_return_from_full_screen.png',
-                'examples/android/res/drawable-xhdpi/ic_loopback_call.png',
-                'examples/android/res/drawable-xhdpi/ic_launcher.png',
-                'examples/android/res/layout/activity_call.xml',
-                'examples/android/res/layout/activity_connect.xml',
-                'examples/android/res/layout/fragment_call.xml',
-                'examples/android/res/menu/connect_menu.xml',
-                'examples/android/res/values/arrays.xml',
-                'examples/android/res/values/strings.xml',
-                'examples/android/res/xml/preferences.xml',
-                'examples/android/src/org/appspot/apprtc/AppRTCAudioManager.java',
-                'examples/android/src/org/appspot/apprtc/AppRTCClient.java',
-                'examples/android/src/org/appspot/apprtc/AppRTCProximitySensor.java',
-                'examples/android/src/org/appspot/apprtc/CallActivity.java',
-                'examples/android/src/org/appspot/apprtc/CallFragment.java',
-                'examples/android/src/org/appspot/apprtc/ConnectActivity.java',
-                'examples/android/src/org/appspot/apprtc/CpuMonitor.java',
-                'examples/android/src/org/appspot/apprtc/PeerConnectionClient.java',
-                'examples/android/src/org/appspot/apprtc/RoomParametersFetcher.java',
-                'examples/android/src/org/appspot/apprtc/SettingsActivity.java',
-                'examples/android/src/org/appspot/apprtc/SettingsFragment.java',
-                'examples/android/src/org/appspot/apprtc/UnhandledExceptionHandler.java',
-                'examples/android/src/org/appspot/apprtc/WebSocketChannelClient.java',
-                'examples/android/src/org/appspot/apprtc/WebSocketRTCClient.java',
-                'examples/android/src/org/appspot/apprtc/util/AppRTCUtils.java',
-                'examples/android/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java',
-                'examples/android/src/org/appspot/apprtc/util/LooperExecutor.java',
-              ],
-              'outputs': [
-                '<(PRODUCT_DIR)/AppRTCDemo-debug.apk',
-              ],
-              'variables': {
-                'apprtc_demo_root': 'examples/android',
-                'ant_log': '../../<(INTERMEDIATE_DIR)/ant.log', # ../.. to compensate for the cd examples/android below.
-              },
-              'action': [
-                'bash', '-ec',
-                'rm -fr <(_outputs) <(apprtc_demo_root)/{bin,libs,gen,obj} && '
-                'mkdir -p <(INTERMEDIATE_DIR) && ' # Must happen _before_ the cd below
-                'mkdir -p <(apprtc_demo_root)/libs/<(android_app_abi) && '
-                'cp <(PRODUCT_DIR)/libjingle_peerconnection.jar <(apprtc_demo_root)/libs/ &&'
-                'cp <(apprtc_demo_root)/third_party/autobanh/autobanh.jar <(apprtc_demo_root)/libs/ &&'
-                '<(android_strip) -o <(apprtc_demo_root)/libs/<(android_app_abi)/libjingle_peerconnection_so.so  <(PRODUCT_DIR)/lib/libjingle_peerconnection_so.so &&'
-                'cd <(apprtc_demo_root) && '
-                '{ ANDROID_SDK_ROOT=<(android_sdk_root) '
-                'ant debug > <(ant_log) 2>&1 || '
-                '  { cat <(ant_log) ; exit 1; } } && '
-                'cd - > /dev/null && '
-                'cp <(apprtc_demo_root)/bin/AppRTCDemo-debug.apk <(_outputs)'
-              ],
-            },
-          ],
+          'includes': [ '../build/java_apk.gypi' ],
         },  # target AppRTCDemo
       ],  # targets
     }],  # OS=="android"
@@ -417,41 +345,19 @@
           'dependencies': [
             'AppRTCDemo',
           ],
-          'actions': [
-            {
-              # TODO(glaznev): 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_apprtcdemotest_apk',
-              'inputs' : [
-                'examples/androidtests/AndroidManifest.xml',
-                'examples/androidtests/ant.properties',
-                'examples/androidtests/build.xml',
-                'examples/androidtests/project.properties',
-                'examples/androidtests/src/org/appspot/apprtc/test/LooperExecutorTest.java',
-                'examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java',
-              ],
-              'outputs': [
-                '<(PRODUCT_DIR)/AppRTCDemoTest-debug.apk',
-              ],
-              'variables': {
-                'android_webrtc_demo_test_root': 'examples/androidtests',
-                'ant_log': '../../<(INTERMEDIATE_DIR)/ant.log', # ../.. to compensate for the cd examples/androidtests below.
-              },
-              'action': [
-                'bash', '-ec',
-                'rm -fr <(_outputs) <(android_webrtc_demo_test_root)/{bin,libs,gen} && '
-                'mkdir -p <(INTERMEDIATE_DIR) && ' # Must happen _before_ the cd below
-                'cd <(android_webrtc_demo_test_root) && '
-                '{ ANDROID_SDK_ROOT=<(android_sdk_root) '
-                'ant debug > <(ant_log) 2>&1 || '
-                '  { cat <(ant_log) ; exit 1; } } && '
-                'cd - > /dev/null && '
-                'cp <(android_webrtc_demo_test_root)/bin/AppRTCDemoTest-debug.apk <(_outputs)'
-              ],
-            },
-          ],
-        },  # target AppRTCDemoTest
+          'variables': {
+            'apk_name': 'AppRTCDemoTest',
+            'java_in_dir': 'examples/androidtests',
+            'additional_src_dirs': [
+              'examples/android',
+            ],
+            'input_jars_paths': [
+              'examples/android/third_party/autobanh/autobanh.jar',
+             ],
+            'is_test_apk': 1,
+          },
+          'includes': [ '../build/java_apk.gypi' ],
+        },
       ],  # targets
     }],  # OS=="android"
   ],