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. 4 5 # This GYPI allows independent customization of the chrome shell in a manner 6 # similar to content shell (in content_shell.gypi). Notably, this file does 7 # NOT contain chrome_android_core, which is independent of the chrome shell 8 # and should be separately customized. 9 { 10 'variables': { 11 'package_name': 'chrome_shell_apk', 12 }, 13 'targets': [ 14 { 15 'target_name': 'libchromeshell_base', 16 'type': 'static_library', 17 'dependencies': [ 18 '../base/base.gyp:base', 19 'chrome_android_core', 20 'chrome.gyp:browser_ui', 21 '../content/content.gyp:content_app_browser', 22 ], 23 'sources': [ 24 'android/shell/chrome_shell_google_location_settings_helper.cc', 25 'android/shell/chrome_shell_google_location_settings_helper.h', 26 ], 27 'include_dirs': [ 28 '../skia/config', 29 ], 30 'conditions': [ 31 [ 'order_profiling!=0', { 32 'conditions': [ 33 [ 'OS=="android"', { 34 'dependencies': [ '../tools/cygprofile/cygprofile.gyp:cygprofile', ], 35 }], 36 ], 37 }], 38 [ 'use_allocator!="none"', { 39 'dependencies': [ 40 '../base/allocator/allocator.gyp:allocator', ], 41 }], 42 ['OS=="android"', { 43 'direct_dependent_settings': { 44 'ldflags': [ 45 # Some android targets still depend on --gc-sections to link. 46 # TODO: remove --gc-sections for Debug builds (crbug.com/159847). 47 '-Wl,--gc-sections', 48 ], 49 }, 50 }], 51 ], 52 }, 53 { 54 'target_name': 'libchromeshell', 55 'type': 'shared_library', 56 'sources': [ 57 # This file must always be included in the shared_library step to ensure 58 # JNI_OnLoad is exported. 59 'app/android/chrome_jni_onload.cc', 60 'android/shell/chrome_main_delegate_chrome_shell_android.cc', 61 'android/shell/chrome_main_delegate_chrome_shell_android.h', 62 ], 63 'dependencies': [ 64 'libchromeshell_base', 65 ], 66 }, 67 { 68 'target_name': 'libchromesyncshell', 69 'type': 'shared_library', 70 'sources': [ 71 # This file must always be included in the shared_library step to ensure 72 # JNI_OnLoad is exported. 73 'app/android/chrome_jni_onload.cc', 74 'android/sync_shell/chrome_main_delegate_chrome_sync_shell_android.cc', 75 'android/sync_shell/chrome_main_delegate_chrome_sync_shell_android.h', 76 ], 77 'dependencies': [ 78 'libchromeshell_base', 79 '../sync/sync.gyp:test_support_sync_fake_server_android', 80 ], 81 }, 82 { 83 'target_name': 'chrome_shell_apk', 84 'type': 'none', 85 'dependencies': [ 86 'chrome_java', 87 'chrome_shell_paks', 88 'libchromeshell', 89 '../media/media.gyp:media_java', 90 ], 91 'variables': { 92 'apk_name': 'ChromeShell', 93 'native_lib_version_name': '<(version_full)', 94 'java_in_dir': 'android/shell/java', 95 'resource_dir': 'android/shell/res', 96 'asset_location': '<(PRODUCT_DIR)/../assets/<(package_name)', 97 'native_lib_target': 'libchromeshell', 98 'additional_input_paths': [ 99 '<@(chrome_android_pak_output_resources)', 100 ], 101 }, 102 'includes': [ '../build/java_apk.gypi', ], 103 }, 104 { 105 # chrome_shell_apk creates a .jar as a side effect. Any java targets 106 # that need that .jar in their classpath should depend on this target, 107 # chrome_shell_apk_java. Dependents of chrome_shell_apk receive its 108 # jar path in the variable 'apk_output_jar_path'. 109 # This target should only be used by targets which instrument 110 # chrome_shell_apk. 111 'target_name': 'chrome_shell_apk_java', 112 'type': 'none', 113 'dependencies': [ 114 'chrome_shell_apk', 115 ], 116 'includes': [ '../build/apk_fake_jar.gypi' ], 117 }, 118 { 119 'target_name': 'chrome_shell_paks', 120 'type': 'none', 121 'dependencies': [ 122 '<(DEPTH)/chrome/chrome_resources.gyp:packed_resources', 123 '<(DEPTH)/chrome/chrome_resources.gyp:packed_extra_resources', 124 ], 125 'copies': [ 126 { 127 'destination': '<(chrome_android_pak_output_folder)', 128 'files': [ 129 '<@(chrome_android_pak_input_resources)', 130 ], 131 } 132 ], 133 }, 134 { 135 'target_name': 'chrome_sync_shell_apk', 136 'type': 'none', 137 'dependencies': [ 138 'chrome_java', 139 'chrome_shell_paks', 140 'libchromesyncshell', 141 '../media/media.gyp:media_java', 142 '../sync/sync.gyp:sync_java_test_support', 143 ], 144 'variables': { 145 'apk_name': 'ChromeSyncShell', 146 'android_manifest_path': 'android/sync_shell/java/AndroidManifest.xml', 147 'R_package': 'org.chromium.chrome.shell', 148 'native_lib_version_name': '<(version_full)', 149 'java_in_dir': 'android/shell/java', 150 'resource_dir': 'android/shell/res', 151 'asset_location': '<(PRODUCT_DIR)/../assets/<(package_name)', 152 'native_lib_target': 'libchromesyncshell', 153 'additional_input_paths': [ 154 '<@(chrome_android_pak_output_resources)', 155 ], 156 }, 157 'includes': [ '../build/java_apk.gypi', ], 158 }, 159 { 160 # chrome_sync_shell_apk creates a .jar as a side effect. Any java 161 # targets that need that .jar in their classpath should depend on this 162 # target. Dependents of chrome_sync_shell_apk receive its jar path in the 163 # variable 'apk_output_jar_path'. This target should only be used by 164 # targets which instrument chrome_sync_shell_apk. 165 'target_name': 'chrome_sync_shell_apk_java', 166 'type': 'none', 167 'dependencies': [ 168 'chrome_sync_shell_apk', 169 ], 170 'includes': [ '../build/apk_fake_jar.gypi' ], 171 }, 172 ], 173 174 } 175