cc: Refactor RecordingSource
[chromium-blink-merge.git] / remoting / remoting_android.gypi
blob744b302ae197abfe5aa758814194ca001b9e825a
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   'conditions': [
7     ['OS=="android"', {
8       'targets': [
9         {
10           'target_name': 'remoting_jni_headers',
11           'type': 'none',
12           'sources': [
13             'android/java/src/org/chromium/chromoting/jni/JniInterface.java',
14           ],
15           'variables': {
16             'jni_gen_package': 'remoting',
17           },
18           'includes': [ '../build/jni_generator.gypi' ],
19         },  # end of target 'remoting_jni_headers'
20         {
21           'target_name': 'remoting_client_jni',
22           'type': 'shared_library',
23           'dependencies': [
24             'remoting_base',
25             'remoting_client',
26             'remoting_jni_headers',
27             'remoting_protocol',
28             '../google_apis/google_apis.gyp:google_apis',
29             '../ui/gfx/gfx.gyp:gfx',
30           ],
31           'sources': [
32             'client/jni/android_keymap.cc',
33             'client/jni/android_keymap.h',
34             'client/jni/chromoting_jni_instance.cc',
35             'client/jni/chromoting_jni_instance.h',
36             'client/jni/chromoting_jni_onload.cc',
37             'client/jni/chromoting_jni_runtime.cc',
38             'client/jni/chromoting_jni_runtime.h',
39             'client/jni/jni_frame_consumer.cc',
40             'client/jni/jni_frame_consumer.h',
41           ],
42         },  # end of target 'remoting_client_jni'
43         {
44           'target_name': 'remoting_android_resources',
45           'type': 'none',
46           'copies': [
47             {
48               'destination': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/drawable',
49               'files': [
50                 'resources/chromoting128.png',
51                 'resources/icon_host.png',
52               ],
53             },
54           ],
55         },  # end of target 'remoting_android_resources'
56         {
57           'target_name': 'remoting_apk_manifest',
58           'type': 'none',
59           'conditions': [
60             ['enable_cast==1', {
61               'sources': [
62                 'android/cast/AndroidManifest.xml.jinja2'
63               ],
64             }, { # 'enable_cast != 1'
65               'sources': [
66                 'android/java/AndroidManifest.xml.jinja2',
67               ],
68             }],
69           ],
70           'rules': [{
71             'rule_name': 'generate_manifest',
72             'extension': 'jinja2',
73             'inputs': [
74               '<(remoting_localize_path)',
75               '<(branding_path)',
76             ],
77             'outputs': [
78               '<(SHARED_INTERMEDIATE_DIR)/remoting/android/<(RULE_INPUT_ROOT)',
79             ],
80             'action': [
81               'python', '<(remoting_localize_path)',
82               '--variables', '<(branding_path)',
83               '--template', '<(RULE_INPUT_PATH)',
84               '--locale_output', '<@(_outputs)',
85               'en',
86             ],
87           }],
88         },  # end of target 'remoting_apk_manifest'
89         {
90           'target_name': 'remoting_android_client_java',
91           'type': 'none',
92           'variables': {
93             'java_in_dir': 'android/java',
94             'has_java_resources': 1,
95             'R_package': 'org.chromium.chromoting',
96             'R_package_relpath': 'org/chromium/chromoting',
97             'res_extra_dirs': [ '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res' ],
98             'res_extra_files': [
99               '<!@pymod_do_main(grit_info <@(grit_defines) --outputs "<(SHARED_INTERMEDIATE_DIR)" resources/remoting_strings.grd)',
100               '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/drawable/chromoting128.png',
101               '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/drawable/icon_host.png',
102             ],
103           },
104           'dependencies': [
105             '../base/base.gyp:base_java',
106             '../ui/android/ui_android.gyp:ui_java',
107             'remoting_android_resources',
108             '../third_party/android_tools/android_tools.gyp:android_support_v7_appcompat_javalib',
109             '../third_party/android_tools/android_tools.gyp:android_support_v7_mediarouter_javalib',
110             '../third_party/android_tools/android_tools.gyp:android_support_v13_javalib',
111           ],
112           'includes': [ '../build/java.gypi' ],
113           'conditions' : [
114             ['enable_cast==1', {
115               'variables': {
116                 'additional_src_dirs': [
117                   'android/cast',
118                 ],
119               },
120               'dependencies': [
121                 'google_play_services_javalib',
122               ],
123             }],
124           ],
125         },
126         {
127           'target_name': 'remoting_apk',
128           'type': 'none',
129           'dependencies': [
130             'remoting_apk_manifest',
131             'remoting_client_jni',
132             'remoting_android_client_java',
133           ],
134           'variables': {
135             'apk_name': '<!(python <(version_py_path) -f <(branding_path) -t "@APK_FILE_NAME@")',
136             'android_app_version_name': '<(version_full)',
137             'android_app_version_code': '<!(python tools/android_version.py <(android_app_version_name))',
138             'android_manifest_path': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/AndroidManifest.xml',
139             'java_in_dir': 'android/apk',
140             'native_lib_target': 'libremoting_client_jni',
141           },
142           'includes': [ '../build/java_apk.gypi' ],
143         },  # end of target 'remoting_apk'
144         {
145           'target_name': 'remoting_test_apk',
146           'type': 'none',
147           'dependencies': [
148             '../base/base.gyp:base_java_test_support',
149             'remoting_android_client_java',
150           ],
151           'variables': {
152             'apk_name': 'ChromotingTest',
153             'java_in_dir': 'android/javatests',
154             'is_test_apk': 1,
155           },
156           'includes': [ '../build/java_apk.gypi' ],
157         },  # end of target 'remoting_test_apk'
158       ], # end of 'targets'
159       'conditions': [
160         ['enable_cast==1', {
161             'targets': [
162               {
163                 # This jar contains the Google Play services library without the
164                 # resources needed for the library to work. See crbug.com/274697 or
165                 # ../third_party/android_tools/android_tools.gyp for more info.
166                 # This target will fail to build unless you have a local version
167                 # of the Google Play services jar.
168                 'target_name': 'google_play_services_javalib_no_res',
169                 'type': 'none',
170                 'variables': {
171                   'jar_path': 'android/google-play-services_lib/libs/google-play-services.jar',
172                 },
173                 'includes': ['../build/java_prebuilt.gypi'],
175               }, # end of target 'google_play_services_javalib_no_res'
176               {
177                 # This target contains the Google Play services library with the
178                 # resources needed. It will fail to build unless you have a local
179                 # version of the Google Play services libary project.
180                 # TODO(aiguha): Solve issue of needing to use local version. Also,
181                 # watch crbug.com/274697.
182                 'target_name': 'google_play_services_javalib',
183                 'type': 'none',
184                 'variables': {
185                   'java_in_dir': 'android/google-play-services_lib/',
186                   'R_package': ['com.google.android.gms'],
187                   'R_package_relpath': ['com/google/android/gms'],
188                   'has_java_resources': 1,
189                   'res_v14_verify_only': 1,
190                 },
191                 'dependencies': [
192                   'google_play_services_javalib_no_res',
193                 ],
194                 'includes': ['../build/java.gypi'],
195               }, # end of target 'google_play_services_javalib'
196             ], # end of targets
197         }],
198       ],
199     }],  # 'OS=="android"'
201     ['OS=="android"', {
202       'targets': [
203         {
204           'target_name': 'remoting_unittests_apk',
205           'type': 'none',
206           'dependencies': [
207             'remoting_unittests',
208           ],
209           'variables': {
210             'test_suite_name': 'remoting_unittests',
211           },
212           'includes': [ '../build/apk_test.gypi' ],
213         },
214       ],
215     }],  # 'OS=="android"
216   ],  # end of 'conditions'