Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7758)

Unified Diff: chrome/android/BUILD.gn

Issue 1458353002: Port ChromeSyncShell build rules to GN (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/config/android/rules.gni ('k') | chrome/android/chrome_apk.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/BUILD.gn
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 9cef154d8218a75d8f6750e30ba07fe31d1a7d3d..5834ad65397c84e821466717b2ca3ac417a80c4d 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -19,12 +19,23 @@ if (enable_configuration_policy) {
configuration_policy = 0
}
-jinja_variables = [
+chrome_public_jinja_variables = [
"channel=$android_channel",
"manifest_package=$manifest_package",
"configuration_policy=$configuration_policy",
]
+chrome_sync_shell_jinja_variables = [
+ "channel=$android_channel",
+ "manifest_package=org.chromium.chrome.sync_shell",
+ "configuration_policy=$configuration_policy",
+]
+
+chrome_apk_gypi = exec_script("//build/gypi_to_gn.py",
+ [ rebase_path("chrome_apk.gyp") ],
+ "scope",
+ [ "chrome_apk.gyp" ])
+
chrome_android_paks_gypi =
exec_script("//build/gypi_to_gn.py",
[
@@ -364,21 +375,42 @@ android_assets("chrome_public_apk_assets") {
jinja_template("chrome_public_apk_manifest") {
input = "java/AndroidManifest.xml"
output = "$root_gen_dir/chrome_public_apk_manifest/AndroidManifest.xml"
- variables = jinja_variables
+ variables = chrome_public_jinja_variables
variables += [
"min_sdk_version=16",
"target_sdk_version=23",
]
}
-# GYP: //chrome/android/chrome_apk.gyp:chrome_public_template_resources
-jinja_template_resources("chrome_public_template_resources") {
+# GYP: //chrome/android/chrome_apk.gyp:chrome_sync_shell_apk_manifest
+jinja_template("chrome_sync_shell_apk_manifest") {
+ input = "java/AndroidManifest.xml"
+ output = "$root_gen_dir/chrome_sync_shell_apk_manifest/AndroidManifest.xml"
+ variables = chrome_sync_shell_jinja_variables
+ variables += [
+ "min_sdk_version=16",
+ "target_sdk_version=22",
+ ]
+}
+
+# GYP: //chrome/android/chrome_apk.gyp:chrome_public_apk_template_resources
+jinja_template_resources("chrome_public_apk_template_resources") {
resources = [
"java/res_template/xml/searchable.xml",
"java/res_template/xml/syncadapter.xml",
]
res_dir = "java/res_template"
- variables = jinja_variables
+ variables = chrome_public_jinja_variables
+}
+
+# GYP: //chrome/android/chrome_apk.gyp:chrome_sync_shell_apk_template_resources
+jinja_template_resources("chrome_sync_shell_apk_template_resources") {
+ resources = [
+ "java/res_template/xml/searchable.xml",
+ "java/res_template/xml/syncadapter.xml",
+ ]
+ res_dir = "java/res_template"
+ variables = chrome_sync_shell_jinja_variables
}
# GYP: //chrome/android/chrome_apk.gyp:libchrome_public
@@ -387,54 +419,95 @@ shared_library("chrome_public") {
"//build/config/sanitizers:deps",
"//chrome:chrome_android_core",
]
- gypi_values = exec_script(
- "//build/gypi_to_gn.py",
- [
- rebase_path("chrome_apk.gyp"),
- "--replace=<(chrome_native_sources_dir)=../browser/android/",
- ],
- "scope",
- [ "chrome_apk.gyp" ])
- sources = gypi_values.chrome_public_app_native_sources
+ sources = chrome_apk_gypi.chrome_public_app_native_sources
+}
+
+# GYP: //chrome/android/chrome_apk.gyp:libchrome_sync_shell
+shared_library("chrome_sync_shell") {
+ testonly = true
+ deps = [
+ "//build/config/sanitizers:deps",
+ "//chrome:chrome_android_core",
+ "//sync",
+ "//sync:test_support_sync_fake_server_android",
+ ]
+ sources = chrome_apk_gypi.chrome_sync_shell_app_native_sources
}
-chrome_public_apk_tmpl("chrome_public_apk") {
- version_name = "Developer Build"
- version_code = "1"
+# Contains rules common to chrome_public_apk and chrome_sync_shell_apk
+template("chrome_public_apk_tmpl_shared") {
+ chrome_public_apk_tmpl(target_name) {
+ forward_variables_from(invoker, "*")
+
+ native_lib_version_rule = "//build/util:chrome_version_json"
+
+ # 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.
+ if (chromium_linker_supported &&
+ (target_cpu == "arm64" || target_cpu == "x64")) {
+ load_library_from_apk = chrome_public_apk_load_library_from_apk
+ }
+
+ deps += [
+ ":chrome_java",
+ ":chrome_public_apk_assets",
+ ":chrome_public_apk_resources",
+ "//base:base_java",
+ google_play_services_resources,
+ ]
+ }
+}
+
+chrome_public_apk_tmpl_shared("chrome_public_apk") {
android_manifest = get_target_outputs(":chrome_public_apk_manifest")
android_manifest = android_manifest[1]
apk_name = "ChromePublic"
native_libs = [ "libchrome_public.so" ]
- native_lib_version_rule = "//build/util:chrome_version_json"
-
- # 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.
- if (chromium_linker_supported &&
- (target_cpu == "arm64" || target_cpu == "x64")) {
- load_library_from_apk = chrome_public_apk_load_library_from_apk
- }
deps = [
- ":chrome_java",
":chrome_public",
- ":chrome_public_apk_assets",
":chrome_public_apk_manifest",
- ":chrome_public_apk_resources",
- ":chrome_public_template_resources",
- "//base:base_java",
- google_play_services_resources,
+ ":chrome_public_apk_template_resources",
+ ]
+}
+
+chrome_public_apk_tmpl_shared("chrome_sync_shell_apk") {
+ testonly = true
+ android_manifest = get_target_outputs(":chrome_sync_shell_apk_manifest")
+ android_manifest = android_manifest[1]
+ apk_name = "ChromeSyncShell"
+ native_libs = [ "libchrome_sync_shell.so" ]
+
+ deps = [
+ ":chrome_sync_shell",
+ ":chrome_sync_shell_apk_manifest",
+ ":chrome_sync_shell_apk_template_resources",
+
+ # 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:test_support_sync_proto_java",
]
}
chrome_public_test_apk_manifest =
"$root_gen_dir/chrome_public_test_apk_manifest/AndroidManifest.xml"
+chrome_sync_shell_test_apk_manifest =
+ "$root_gen_dir/chrome_sync_shell_test_apk_manifest/AndroidManifest.xml"
# GYP: //chrome/android/chrome_apk.gyp:chrome_public_test_apk_manifest
jinja_template("chrome_public_test_apk_manifest") {
input = "javatests/AndroidManifest.xml"
output = chrome_public_test_apk_manifest
- variables = jinja_variables
+ variables = chrome_public_jinja_variables
+}
+
+# GYP: //chrome/android/chrome_apk.gyp:chrome_sync_shell_test_apk_manifest
+jinja_template("chrome_sync_shell_test_apk_manifest") {
+ input = "sync_shell/javatests/AndroidManifest.xml"
+ output = chrome_sync_shell_test_apk_manifest
+ variables = chrome_sync_shell_jinja_variables
}
# GYP: //chrome/android/chrome_apk.gyp:chrome_public_test_apk
@@ -444,8 +517,45 @@ instrumentation_test_apk("chrome_public_test_apk") {
android_manifest = chrome_public_test_apk_manifest
deps = [
":chrome_public_test_apk_manifest",
- "//chrome/android:chrome_shared_test_java",
+ ":chrome_shared_test_java",
]
isolate_file = "../chrome_public_test_apk.isolate"
proguard_enabled = !is_debug
}
+
+android_library("chrome_sync_shell_test_apk_java") {
+ testonly = true
+ DEPRECATED_java_in_dir = "sync_shell/javatests/src"
+
+ deps = [
+ "//base:base_java",
+ "//base:base_java_test_support",
+ "//chrome/android:chrome_java",
+ "//chrome/android:chrome_java_resources",
+ "//chrome/test/android:chrome_java_test_support",
+ "//components/bookmarks/common/android:bookmarks_java",
+ "//components/policy/android:policy_java",
+ "//content/public/android:content_java",
+ "//content/public/test/android:content_java_test_support",
+ "//sync:sync_java_test_support",
+ "//sync:test_support_sync_proto_java",
+ "//sync/android:sync_java",
+ "//third_party/android_protobuf:protobuf_nano_javalib",
+ "//third_party/android_tools:android_support_v13_java",
+ "//third_party/android_tools:android_support_v7_appcompat_java",
+ "//ui/android:ui_java",
+ ]
+}
+
+# GYP: //chrome/android/chrome_apk.gyp:chrome_sync_shell_test_apk
+instrumentation_test_apk("chrome_sync_shell_test_apk") {
+ apk_name = "ChromeSyncShellTest"
+ apk_under_test = ":chrome_sync_shell_apk"
+ android_manifest = chrome_sync_shell_test_apk_manifest
+ deps = [
+ ":chrome_sync_shell_test_apk_java",
+ ":chrome_sync_shell_test_apk_manifest",
+ ]
+ isolate_file = "../chrome_sync_shell_test_apk.isolate"
+ proguard_enabled = !is_debug
+}
« no previous file with comments | « build/config/android/rules.gni ('k') | chrome/android/chrome_apk.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698