Rename hosted to custom tabs
[chromium-blink-merge.git] / chrome / android / chrome_apk.gyp
blob896cf029807dd8108923a1127bb78958b1e5ad83
1 # Copyright 2015 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.
5   'includes': [
6     '../../chrome/chrome_android_paks.gypi', # Included for the list of pak resources.
7     '../../build/util/version.gypi'
8    ],
9   'variables': {
10     'chromium_code': 1,
11     'package_name': 'chrome_public_apk',
12     'manifest_package%': 'org.chromium.chrome',
13     'chrome_public_apk_manifest': '<(SHARED_INTERMEDIATE_DIR)/chrome_public_apk_manifest/AndroidManifest.xml',
14     'chrome_public_test_apk_manifest': '<(SHARED_INTERMEDIATE_DIR)/chrome_public_test_apk_manifest/AndroidManifest.xml',
15     'never_lint': 1,
16     'chrome_java_dir': 'java_staging',
17     'chrome_java_tests_dir': 'javatests',
18     'chrome_java_test_support_dir': '../test/android/javatests_staging',
19     'chrome_native_sources_dir': '../browser/android/',
20     # This list is shared with GN.
21     'chrome_staging_jni_files': [
22       '<(chrome_java_dir)/src/org/chromium/chrome/browser/bookmark/EditBookmarkHelper.java',
23       '<(chrome_java_dir)/src/org/chromium/chrome/browser/compositor/CompositorView.java',
24       '<(chrome_java_dir)/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java',
25       '<(chrome_java_dir)/src/org/chromium/chrome/browser/compositor/scene_layer/ReaderModeSceneLayer.java',
26       '<(chrome_java_dir)/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java',
27       '<(chrome_java_dir)/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java',
28       '<(chrome_java_dir)/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java',
29       '<(chrome_java_dir)/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper.java',
30       '<(chrome_java_dir)/src/org/chromium/chrome/browser/document/DocumentWebContentsDelegate.java',
31       '<(chrome_java_dir)/src/org/chromium/chrome/browser/rlz/RevenueStats.java',
32       '<(chrome_java_dir)/src/org/chromium/chrome/browser/tab/ThumbnailTabHelper.java',
33     ],
34     # This list is shared with GN.
35     'chrome_staging_native_sources': [
36       '<(chrome_native_sources_dir)/bookmark/edit_bookmark_helper.cc',
37       '<(chrome_native_sources_dir)/bookmark/edit_bookmark_helper.h',
38       '<(chrome_native_sources_dir)/chrome_main_delegate_staging_android.cc',
39       '<(chrome_native_sources_dir)/chrome_main_delegate_staging_android.h',
40       '<(chrome_native_sources_dir)/compositor/compositor_view.cc',
41       '<(chrome_native_sources_dir)/compositor/compositor_view.h',
42       '<(chrome_native_sources_dir)/compositor/layer/reader_mode_layer.cc',
43       '<(chrome_native_sources_dir)/compositor/layer/reader_mode_layer.h',
44       '<(chrome_native_sources_dir)/compositor/layer/tab_handle_layer.cc',
45       '<(chrome_native_sources_dir)/compositor/layer/tab_handle_layer.h',
46       '<(chrome_native_sources_dir)/compositor/scene_layer/contextual_search_scene_layer.cc',
47       '<(chrome_native_sources_dir)/compositor/scene_layer/contextual_search_scene_layer.h',
48       '<(chrome_native_sources_dir)/compositor/scene_layer/reader_mode_scene_layer.cc',
49       '<(chrome_native_sources_dir)/compositor/scene_layer/reader_mode_scene_layer.h',
50       '<(chrome_native_sources_dir)/compositor/scene_layer/tab_list_scene_layer.cc',
51       '<(chrome_native_sources_dir)/compositor/scene_layer/tab_list_scene_layer.h',
52       '<(chrome_native_sources_dir)/compositor/scene_layer/tab_strip_scene_layer.cc',
53       '<(chrome_native_sources_dir)/compositor/scene_layer/tab_strip_scene_layer.h',
54       '<(chrome_native_sources_dir)/contextualsearch/contextual_search_context.cc',
55       '<(chrome_native_sources_dir)/contextualsearch/contextual_search_context.h',
56       '<(chrome_native_sources_dir)/contextualsearch/contextual_search_delegate.cc',
57       '<(chrome_native_sources_dir)/contextualsearch/contextual_search_delegate.h',
58       '<(chrome_native_sources_dir)/contextualsearch/contextual_search_manager.cc',
59       '<(chrome_native_sources_dir)/contextualsearch/contextual_search_manager.h',
60       '<(chrome_native_sources_dir)/contextualsearch/contextual_search_tab_helper.cc',
61       '<(chrome_native_sources_dir)/contextualsearch/contextual_search_tab_helper.h',
62       '<(chrome_native_sources_dir)/document/document_web_contents_delegate.cc',
63       '<(chrome_native_sources_dir)/rlz/revenue_stats.cc',
64       '<(chrome_native_sources_dir)/rlz/revenue_stats.h',
65       '<(chrome_native_sources_dir)/staging_jni_registrar.cc',
66       '<(chrome_native_sources_dir)/staging_jni_registrar.h',
67       '<(chrome_native_sources_dir)/tab/thumbnail_tab_helper_android.cc',
68       '<(chrome_native_sources_dir)/tab/thumbnail_tab_helper_android.h',
69     ],
70     # This list is shared with GN.
71     # Defines a list of source files should be present in the open-source
72     # chrome-apk but not in the published static_library which is included in the
73     # real chrome for android.
74     'chrome_public_app_native_sources': [
75       '<(chrome_native_sources_dir)/chrome_entry_point.cc',
76       '<(chrome_native_sources_dir)/chrome_main_delegate_staging_android_initializer.cc',
77       '<(chrome_native_sources_dir)/chrome_staging_jni_onload.cc',
78       '<(chrome_native_sources_dir)/chrome_staging_jni_onload.h',
79     ],
80   },
81   'targets': [
82     {
83       # GN: //chrome/browser/android:chrome_staging
84       'target_name': 'libchrome_staging',
85       'type': 'static_library',
86       'dependencies': [
87         'staging_jni_headers',
88         '<(DEPTH)/chrome/chrome.gyp:browser',
89         '<(DEPTH)/components/components.gyp:component_metrics_proto',
90         '<(DEPTH)/skia/skia.gyp:skia',
91         '<(DEPTH)/third_party/leveldatabase/leveldatabase.gyp:leveldatabase',
92       ],
93       'sources': [
94         '<@(chrome_staging_native_sources)',
95       ],
96       'include_dirs': [
97         '<(DEPTH)',
98         '<(SHARED_INTERMEDIATE_DIR)/staging/android',
99         '<(android_ndk_include)',  # For native_window.h, GL includes, etc.
100         '<(DEPTH)/skia/config',
101       ],
102       'link_settings': {
103         'libraries': [
104           '-landroid',      # ANativeWindow
105           '-ljnigraphics',  # NDK access to bitmap
106         ],
107       },
108       'conditions': [
109         ['safe_browsing!=0', {
110           'sources': [
111             '<(chrome_native_sources_dir)/spdy_proxy_resource_throttle.cc',
112             '<(chrome_native_sources_dir)/spdy_proxy_resource_throttle.h',
113           ],
114         }],
115       ],
116     },
117     {
118       # GN: //chrome/android:staging_jni_headers
119       'target_name': 'staging_jni_headers',
120       'type': 'none',
121       'sources': [
122         '<@(chrome_staging_jni_files)',
123       ],
124       'variables': {
125         'jni_gen_package': 'staging/android',
126       },
127       'includes': [ '../../build/jni_generator.gypi' ],
128     },
129     {
130       # GN: //chrome/android:chrome_staging_java
131       'target_name': 'chrome_staging_java',
132       'type': 'none',
133       'variables': {
134         'java_in_dir': '<(chrome_java_dir)',
135         'R_package': 'com.google.android.apps.chrome',
136         'R_package_relpath': 'com/google/android/apps/chrome',
137         'has_java_resources': 1,
138         'res_channel_dir': '<(chrome_java_dir)/res_default',
139         'res_extra_dirs': ['<(res_channel_dir)'],
140         'res_extra_files': ['<!@(find <(res_channel_dir) -type f)'],
141       },
142       'dependencies': [
143         'chrome_template_resources',
144         'custom_tabs_service_aidl',
145         '<(DEPTH)/base/base.gyp:base_java',
146         '<(DEPTH)/chrome/chrome.gyp:chrome_java',
147         '<(DEPTH)/chrome/chrome.gyp:document_tab_model_info_proto_java',
148         '<(DEPTH)/components/components.gyp:app_restrictions_resources',
149         '<(DEPTH)/components/components.gyp:navigation_interception_java',
150         '<(DEPTH)/components/components.gyp:service_tab_launcher',
151         '<(DEPTH)/components/components.gyp:web_contents_delegate_android_java',
152         '<(DEPTH)/content/content.gyp:content_java',
153         '<(DEPTH)/media/media.gyp:media_java',
154         '<(DEPTH)/net/net.gyp:net_java',
155         '<(DEPTH)/third_party/android_protobuf/android_protobuf.gyp:protobuf_nano_javalib',
156         '<(DEPTH)/third_party/android_tools/android_tools.gyp:android_support_v13_javalib',
157         '<(DEPTH)/third_party/android_tools/android_tools.gyp:android_support_v7_appcompat_javalib',
158         '<(DEPTH)/third_party/android_tools/android_tools.gyp:android_support_v7_mediarouter_javalib',
159         '<(DEPTH)/third_party/android_tools/android_tools.gyp:android_support_v7_recyclerview_javalib',
160         '<(DEPTH)/third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_javalib',
161         '<(DEPTH)/third_party/jsr-305/jsr-305.gyp:jsr_305_javalib',
162         '<(DEPTH)/ui/android/ui_android.gyp:ui_java',
163       ],
164       'conditions': [
165         ['configuration_policy != 1', {
166           'dependencies!': [
167             '<(DEPTH)/components/components.gyp:app_restrictions_resources',
168           ],
169         }],
170       ],
171       'includes': [ '../../build/java.gypi' ],
172     },
173     {
174       # GN: //chrome/test/android:chrome_staging_test_support_java
175       'target_name': 'chrome_staging_test_support_java',
176       'type': 'none',
177       'variables': {
178           'java_in_dir': '<(chrome_java_test_support_dir)',
179       },
180       'dependencies': [
181         'chrome_staging_java',
182         '<(DEPTH)/base/base.gyp:base_java',
183         '<(DEPTH)/base/base.gyp:base_java_test_support',
184         '<(DEPTH)/chrome/chrome.gyp:chrome_java',
185         '<(DEPTH)/chrome/chrome.gyp:chrome_java_test_support',
186         '<(DEPTH)/content/content_shell_and_tests.gyp:content_java_test_support',
187         '<(DEPTH)/net/net.gyp:net_java',
188         '<(DEPTH)/net/net.gyp:net_java_test_support',
189         '<(DEPTH)/sync/sync.gyp:sync_java_test_support',
190       ],
191       'includes': [ '../../build/java.gypi' ],
192     },
193     {
194       # GN: //chrome/android:chrome_template_resources
195       'target_name': 'chrome_template_resources',
196       'type': 'none',
197       'variables': {
198         'jinja_inputs_base_dir': '<(chrome_java_dir)/res_template',
199         'jinja_inputs': [
200           '<(jinja_inputs_base_dir)/xml/searchable.xml',
201           '<(jinja_inputs_base_dir)/xml/syncadapter.xml',
202         ],
203         'jinja_outputs_zip': '<(PRODUCT_DIR)/res.java/<(_target_name).zip',
204         'jinja_variables': [
205           'manifest_package=<(manifest_package)',
206         ],
207       },
208       'all_dependent_settings': {
209         'variables': {
210           'additional_input_paths': ['<(jinja_outputs_zip)'],
211           'dependencies_res_zip_paths': ['<(jinja_outputs_zip)'],
212         },
213       },
214       'includes': [ '../../build/android/jinja_template.gypi' ],
215     },
216     {
217       # GN: //chrome/android:custom_tabs_service_aidl
218       'target_name': 'custom_tabs_service_aidl',
219       'type': 'none',
220       'variables': {
221         'aidl_interface_file': '<(chrome_java_dir)/src/org/chromium/chrome/browser/customtabs/common.aidl',
222         'aidl_import_include': '<(chrome_java_dir)/src/org/chromium/chrome/browser/customtabs',
223       },
224       'sources': [
225         '<(chrome_java_dir)/src/org/chromium/chrome/browser/customtabs/IBrowserConnectionCallback.aidl',
226         '<(chrome_java_dir)/src/org/chromium/chrome/browser/customtabs/IBrowserConnectionService.aidl',
227       ],
228       'includes': [ '../../build/java_aidl.gypi' ],
229     },
230     {
231       # GN: //chrome/android:chrome_public
232       'target_name': 'libchrome_public',
233       'type': 'shared_library',
234       'dependencies': [
235         'libchrome_staging',
236         '<(DEPTH)/chrome/chrome.gyp:chrome_android_core',
237       ],
238       'include_dirs': [
239         '<(DEPTH)',
240       ],
241       'sources': [
242         '<@(chrome_public_app_native_sources)',
243       ],
244       'ldflags': [
245         # Some android targets still depend on --gc-sections to link.
246         # TODO: remove --gc-sections for Debug builds (crbug.com/159847).
247         '-Wl,--gc-sections',
248       ],
249       'conditions': [
250         # TODO(yfriedman): move this DEP to chrome_android_core to be shared
251         # between internal/external.
252         ['cld_version==2', {
253           'dependencies': [
254             '<(DEPTH)/third_party/cld_2/cld_2.gyp:cld2_dynamic',
255           ],
256         }],
257         # conditions for order_text_section
258         # Cygprofile methods need to be linked into the instrumented build.
259         ['order_profiling!=0', {
260           'conditions': [
261             ['OS=="android"', {
262               'dependencies': [ '<(DEPTH)/tools/cygprofile/cygprofile.gyp:cygprofile' ],
263             }],
264           ],
265         }],  # order_profiling!=0
266         ['use_allocator!="none"', {
267           'dependencies': [
268             '<(DEPTH)/base/allocator/allocator.gyp:allocator',
269           ],
270         }],
271       ],
272     },
273     {
274       # GN: //chrome/android:chrome_public_apk_manifest
275       'target_name': 'chrome_public_manifest',
276       'type': 'none',
277       'variables': {
278         'jinja_inputs': ['<(chrome_java_dir)/AndroidManifest.xml'],
279         'jinja_output': '<(chrome_public_apk_manifest)',
280         'jinja_variables': [
281           'channel=<(android_channel)',
282           'configuration_policy=<(configuration_policy)',
283           'manifest_package=<(manifest_package)',
284           'min_sdk_version=16',
285         ],
286       },
287       'includes': [ '../../build/android/jinja_template.gypi' ],
288     },
289     {
290       # GN: //chrome/android:chrome_public_apk
291       'target_name': 'chrome_public_apk',
292       'type': 'none',
293       'variables': {
294         'android_manifest_path': '<(chrome_public_apk_manifest)',
295         'apk_name': 'ChromePublic',
296         'native_lib_target': 'libchrome_public',
297         'java_in_dir': '<(chrome_java_dir)',
298         'conditions': [
299           # Only attempt loading the library from the APK for 64 bit devices
300           # until the number of 32 bit devices which don't support this
301           # approach falls to a minimal level -  http://crbug.com/390618.
302           ['component != "shared_library" and profiling==0 and (target_arch == "arm64" or target_arch == "x86_64")', {
303             'load_library_from_zip_file': '<(chrome_apk_load_library_from_zip)',
304             'load_library_from_zip': '<(chrome_apk_load_library_from_zip)',
305           }],
306         ],
307       },
308       'dependencies': [
309         'chrome_android_paks_copy',
310         'chrome_staging_java',
311       ],
312       'includes': [ 'chrome_apk.gypi' ],
313     },
314     {
315       # GN: N/A
316       # chrome_public_apk creates a .jar as a side effect. Any java targets
317       # that need that .jar in their classpath should depend on this target,
318       'target_name': 'chrome_public_apk_java',
319       'type': 'none',
320       'dependencies': [
321         'chrome_public_apk',
322       ],
323       'includes': [ '../../build/apk_fake_jar.gypi' ],
324     },
325     {
326       # GN: //chrome/browser/android:chrome_staging_unittests
327       'target_name': 'chrome_staging_unittests',
328       'type': 'static_library',
329       'sources': [
330         '<(chrome_native_sources_dir)/contextualsearch/contextual_search_delegate_unittest.cc',
331         '<(chrome_native_sources_dir)/history_report/delta_file_commons_unittest.cc',
332         '<(chrome_native_sources_dir)/history_report/delta_file_backend_leveldb_unittest.cc',
333         '<(chrome_native_sources_dir)/history_report/usage_reports_buffer_backend_unittest.cc',
334         '<(chrome_native_sources_dir)/policy/policy_manager_unittest.cc',
335       ],
336       'dependencies': [
337         'libchrome_staging',
338         '<(DEPTH)/base/base.gyp:base_java',
339         '<(DEPTH)/chrome/chrome.gyp:chrome_java',
340         '<(DEPTH)/chrome/chrome.gyp:delta_file_proto',
341         '<(DEPTH)/chrome/chrome.gyp:test_support_unit',
342         '<(DEPTH)/net/net.gyp:net_test_support',
343         '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
344         '<(DEPTH)/testing/gtest.gyp:gtest',
345       ],
346        'include_dirs': [
347         '<(DEPTH)',
348       ],
349     },
350     {
351       # GN: None.
352       # This target is for sharing tests between both upstream and internal
353       # trees until sufficient test coverage is upstream.
354       'target_name': 'chrome_shared_test_java',
355       'type': 'none',
356       'variables': {
357         'java_in_dir': '<(chrome_java_tests_dir)',
358       },
359       'dependencies': [
360         'chrome_staging_java',
361         'chrome_staging_test_support_java',
362         '<(DEPTH)/base/base.gyp:base_java',
363         '<(DEPTH)/base/base.gyp:base_java_test_support',
364         '<(DEPTH)/chrome/chrome.gyp:chrome_java',
365         '<(DEPTH)/chrome/chrome.gyp:chrome_java_test_support',
366         '<(DEPTH)/components/components.gyp:web_contents_delegate_android_java',
367         '<(DEPTH)/content/content_shell_and_tests.gyp:content_java_test_support',
368         '<(DEPTH)/net/net.gyp:net_java',
369         '<(DEPTH)/net/net.gyp:net_java_test_support',
370         '<(DEPTH)/sync/sync.gyp:sync_java_test_support',
371         '<(DEPTH)/third_party/android_tools/android_tools.gyp:android_support_v7_appcompat_javalib',
372       ],
373       'includes': [ '../../build/java.gypi' ],
374     },
375     {
376       # GN: //chrome/android:chrome_public_test_apk_manifest
377       'target_name': 'chrome_public_test_apk_manifest',
378       'type': 'none',
379       'variables': {
380         'jinja_inputs': ['<(chrome_java_tests_dir)/AndroidManifest.xml'],
381         'jinja_output': '<(chrome_public_test_apk_manifest)',
382         'jinja_variables': [
383           'manifest_package=<(manifest_package)',
384         ],
385       },
386       'includes': [ '../../build/android/jinja_template.gypi' ],
387     },
388     {
389       # GN: //chrome/android:chrome_public_test_apk
390       'target_name': 'chrome_public_test_apk',
391       'type': 'none',
392       'dependencies': [
393         'chrome_shared_test_java',
394         'chrome_public_apk_java',
395       ],
396       'variables': {
397         'android_manifest_path': '<(chrome_public_test_apk_manifest)',
398         'package_name': 'chrome_public_test',
399         'java_in_dir': '<(chrome_java_tests_dir)',
400         'java_in_dir_suffix': '/src_dummy',
401         'apk_name': 'ChromePublicTest',
402         'is_test_apk': 1,
403       },
404       'includes': [ '../../build/java_apk.gypi' ],
405     },
406   ],
409 # Local Variables:
410 # tab-width:2
411 # indent-tabs-mode:nil
412 # End:
413 # vim: set expandtab tabstop=2 shiftwidth=2: