summaryrefslogtreecommitdiffstats
path: root/chrome/android/chrome_apk.gyp
diff options
context:
space:
mode:
authorpvalenzuela <pvalenzuela@chromium.org>2015-08-25 11:44:01 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-25 18:44:52 +0000
commita715a2f88e842329e6133390788b6d8d22bf8201 (patch)
tree0b32bd5dff7e83544124a656961fbd31ee7ebe88 /chrome/android/chrome_apk.gyp
parent8fe06742be4a78023eae54d82e3e6fbde5bd864f (diff)
downloadchromium_src-a715a2f88e842329e6133390788b6d8d22bf8201.zip
chromium_src-a715a2f88e842329e6133390788b6d8d22bf8201.tar.gz
chromium_src-a715a2f88e842329e6133390788b6d8d22bf8201.tar.bz2
Convert ChromeSyncShell to use ChromePublic infrastructure (try #2)
This is a re-land of the patch originally committed as part of https://codereview.chromium.org/1282603005/. The one major change is that a landmine has been added to clobber the Android arm64 bot as it caused problems after the original commit. Several test fixes are included to support this change. Note: This CL only provides a GYP implementation (no GN). This is not a regression from the previous state. BUG=510211 Review URL: https://codereview.chromium.org/1305213003 Cr-Commit-Position: refs/heads/master@{#345392}
Diffstat (limited to 'chrome/android/chrome_apk.gyp')
-rw-r--r--chrome/android/chrome_apk.gyp182
1 files changed, 170 insertions, 12 deletions
diff --git a/chrome/android/chrome_apk.gyp b/chrome/android/chrome_apk.gyp
index cb910ec..6e452b78 100644
--- a/chrome/android/chrome_apk.gyp
+++ b/chrome/android/chrome_apk.gyp
@@ -10,8 +10,11 @@
'chromium_code': 1,
'package_name': 'chrome_public_apk',
'manifest_package': 'org.chromium.chrome',
+ 'sync_shell_manifest_package': 'org.chromium.chrome.sync_shell',
'chrome_public_apk_manifest': '<(SHARED_INTERMEDIATE_DIR)/chrome_public_apk_manifest/AndroidManifest.xml',
'chrome_public_test_apk_manifest': '<(SHARED_INTERMEDIATE_DIR)/chrome_public_test_apk_manifest/AndroidManifest.xml',
+ 'chrome_sync_shell_apk_manifest': '<(SHARED_INTERMEDIATE_DIR)/chrome_sync_shell_apk_manifest/AndroidManifest.xml',
+ 'chrome_sync_shell_test_apk_manifest': '<(SHARED_INTERMEDIATE_DIR)/chrome_sync_shell_test_apk_manifest/AndroidManifest.xml',
# This list is shared with GN.
# Defines a list of source files should be present in the open-source
# chrome-apk but not in the published static_library which is included in the
@@ -60,23 +63,46 @@
'includes': [ '../../build/android/jinja_template.gypi' ],
},
{
- # GN: //chrome/android:chrome_public
- 'target_name': 'libchrome_public',
- 'type': 'shared_library',
+ # TODO(pvalenzuela): Implement this target with GN:
+ # http://crbug.com/475612
+ 'target_name': 'chrome_sync_shell_template_resources',
+ 'type': 'none',
+ 'variables': {
+ 'jinja_inputs_base_dir': 'java/res_template',
+ 'jinja_inputs': [
+ '<(jinja_inputs_base_dir)/xml/searchable.xml',
+ '<(jinja_inputs_base_dir)/xml/syncadapter.xml',
+ ],
+ 'jinja_outputs_zip': '<(PRODUCT_DIR)/res.java/<(_target_name).zip',
+ 'jinja_variables': [
+ 'manifest_package=<(sync_shell_manifest_package)',
+ ],
+ },
+ 'all_dependent_settings': {
+ 'variables': {
+ 'additional_input_paths': ['<(jinja_outputs_zip)'],
+ 'dependencies_res_zip_paths': ['<(jinja_outputs_zip)'],
+ },
+ },
+ 'includes': [ '../../build/android/jinja_template.gypi' ],
+ },
+ {
+ # The base library used in both ChromePublic and ChromeSyncShell.
+ 'target_name': 'libchrome_public_base',
+ 'type': 'none',
'dependencies': [
'../../chrome/chrome.gyp:chrome_android_core',
],
'include_dirs': [
'../..',
],
- 'sources': [
- '<@(chrome_public_app_native_sources)',
- ],
- 'ldflags': [
- # Some android targets still depend on --gc-sections to link.
- # TODO: remove --gc-sections for Debug builds (crbug.com/159847).
- '-Wl,--gc-sections',
- ],
+ 'direct_dependent_settings': {
+ 'ldflags': [
+ # Some android targets still depend on --gc-sections to link.
+ # TODO: remove --gc-sections for Debug builds (crbug.com/159847).
+ '-Wl,--gc-sections',
+ ],
+ },
'conditions': [
# TODO(yfriedman): move this DEP to chrome_android_core to be shared
# between internal/external.
@@ -102,6 +128,34 @@
],
},
{
+ # GN: //chrome/android:chrome_public
+ 'target_name': 'libchrome_public',
+ 'type': 'shared_library',
+ 'sources': [
+ '<@(chrome_public_app_native_sources)',
+ ],
+ 'dependencies': [
+ 'libchrome_public_base',
+ ],
+ },
+ {
+ # TODO(pvalenzuela): Implement this target with GN:
+ # http://crbug.com/475612
+ 'target_name': 'libchrome_sync_shell',
+ 'type': 'shared_library',
+ 'sources': [
+ '../browser/android/chrome_entry_point.cc',
+ '../browser/android/chrome_sync_shell_main_delegate_initializer.cc',
+ '../browser/android/chrome_sync_shell_main_delegate.h',
+ '../browser/android/chrome_sync_shell_main_delegate.cc',
+ ],
+ 'dependencies': [
+ 'libchrome_public_base',
+ '../../sync/sync.gyp:sync',
+ '../../sync/sync.gyp:test_support_sync_fake_server_android',
+ ],
+ },
+ {
# GN: //chrome/android:chrome_public_apk_manifest
'target_name': 'chrome_public_manifest',
'type': 'none',
@@ -119,6 +173,24 @@
'includes': [ '../../build/android/jinja_template.gypi' ],
},
{
+ # TODO(pvalenzuela): Implement this target with GN:
+ # http://crbug.com/475612
+ 'target_name': 'chrome_sync_shell_manifest',
+ 'type': 'none',
+ 'variables': {
+ 'jinja_inputs': ['java/AndroidManifest.xml'],
+ 'jinja_output': '<(chrome_sync_shell_apk_manifest)',
+ 'jinja_variables': [
+ 'channel=<(android_channel)',
+ 'configuration_policy=<(configuration_policy)',
+ 'manifest_package=<(sync_shell_manifest_package)',
+ 'min_sdk_version=16',
+ 'target_sdk_version=22',
+ ],
+ },
+ 'includes': [ '../../build/android/jinja_template.gypi' ],
+ },
+ {
# GN: //chrome/android:chrome_public_apk
'target_name': 'chrome_public_apk',
'type': 'none',
@@ -157,6 +229,48 @@
'includes': [ '../../build/apk_fake_jar.gypi' ],
},
{
+ # TODO(pvalenzuela): Implement this target with GN:
+ # http://crbug.com/475612
+ 'target_name': 'chrome_sync_shell_apk',
+ 'type': 'none',
+ 'variables': {
+ 'android_manifest_path': '<(chrome_sync_shell_apk_manifest)',
+ 'apk_name': 'ChromeSyncShell',
+ 'native_lib_target': 'libchrome_sync_shell',
+ 'java_in_dir': 'java',
+ 'conditions': [
+ # Only attempt loading the library from the APK for 64 bit devices
+ # until the number of 32 bit devices which don't support this
+ # approach falls to a minimal level - http://crbug.com/390618.
+ ['component != "shared_library" and profiling==0 and (target_arch == "arm64" or target_arch == "x86_64")', {
+ 'load_library_from_zip_file': '<(chrome_apk_load_library_from_zip)',
+ 'load_library_from_zip': '<(chrome_apk_load_library_from_zip)',
+ }],
+ ],
+ },
+ 'dependencies': [
+ 'chrome_android_paks_copy',
+ 'chrome_sync_shell_template_resources',
+ '../chrome.gyp:chrome_java',
+ # This exists here because com.google.protobuf.nano is needed in tests,
+ # but that code is stripped out via proguard. Adding this deps adds
+ # usages and prevents removal of the proto code.
+ '../../sync/sync.gyp:test_support_sync_proto_java',
+ ],
+ 'includes': [ 'chrome_apk.gypi' ],
+ },
+ {
+ # GN: N/A
+ # chrome_sync_shell_apk creates a .jar as a side effect. Any java targets
+ # that need that .jar in their classpath should depend on this target.
+ 'target_name': 'chrome_sync_shell_apk_java',
+ 'type': 'none',
+ 'dependencies': [
+ 'chrome_sync_shell_apk',
+ ],
+ 'includes': [ '../../build/apk_fake_jar.gypi' ],
+ },
+ {
# GN: //chrome/android:chrome_shared_test_java
# This target is for sharing tests between both upstream and internal
# trees until sufficient test coverage is upstream.
@@ -178,7 +292,6 @@
'../../net/net.gyp:net_java',
'../../net/net.gyp:net_java_test_support',
'../../sync/sync.gyp:sync_java_test_support',
- '../../sync/sync.gyp:sync_javatests',
'../../third_party/android_tools/android_tools.gyp:android_support_v7_appcompat_javalib',
'../../ui/android/ui_android.gyp:ui_javatests',
],
@@ -198,6 +311,20 @@
'includes': [ '../../build/android/jinja_template.gypi' ],
},
{
+ # TODO(pvalenzuela): Implement this target with GN:
+ # http://crbug.com/475612
+ 'target_name': 'chrome_sync_shell_test_apk_manifest',
+ 'type': 'none',
+ 'variables': {
+ 'jinja_inputs': ['sync_shell/javatests/AndroidManifest.xml'],
+ 'jinja_output': '<(chrome_sync_shell_test_apk_manifest)',
+ 'jinja_variables': [
+ 'manifest_package=<(sync_shell_manifest_package)',
+ ],
+ },
+ 'includes': [ '../../build/android/jinja_template.gypi' ],
+ },
+ {
# GN: //chrome/android:chrome_public_test_apk
'target_name': 'chrome_public_test_apk',
'type': 'none',
@@ -222,6 +349,37 @@
'../../build/android/test_runner.gypi',
],
},
+ {
+ # TODO(pvalenzuela): Implement this target with GN:
+ # http://crbug.com/475612
+ 'target_name': 'chrome_sync_shell_test_apk',
+ 'type': 'none',
+ 'dependencies': [
+ 'chrome_sync_shell_apk_java',
+ '../../base/base.gyp:base_java',
+ '../../base/base.gyp:base_java_test_support',
+ '../../chrome/chrome.gyp:chrome_java',
+ '../../chrome/chrome.gyp:chrome_java_test_support',
+ '../../sync/sync.gyp:sync_java',
+ '../../sync/sync.gyp:sync_java_test_support',
+ '../../sync/sync.gyp:sync_javatests',
+ '../../sync/sync.gyp:test_support_sync_proto_java',
+ '../../testing/android/on_device_instrumentation.gyp:broker_java',
+ '../../testing/android/on_device_instrumentation.gyp:require_driver_apk',
+ ],
+ 'variables': {
+ 'android_manifest_path': '<(chrome_sync_shell_test_apk_manifest)',
+ 'package_name': 'chrome_sync_shell_test',
+ 'java_in_dir': 'sync_shell/javatests',
+ 'apk_name': 'ChromeSyncShellTest',
+ 'is_test_apk': 1,
+ 'test_type': 'instrumentation',
+ },
+ 'includes': [
+ '../../build/java_apk.gypi',
+ '../../build/android/test_runner.gypi',
+ ],
+ },
],
}