# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
import("//third_party/jni_zero/jni_zero.gni")
generate_jni("jni_headers") {
sources = [
"java/src/org/chromium/components/sync/ExplicitPassphrasePlatformClient.java",
"java/src/org/chromium/components/sync/LocalDataDescription.java",
"java/src/org/chromium/components/sync/SyncFeatureMap.java",
"java/src/org/chromium/components/sync/SyncService.java",
"java/src/org/chromium/components/sync/SyncServiceImpl.java",
]
}
android_library("sync_java") {
public_deps = [ ":explicit_passphrase_platform_client_interface_java" ]
deps = [
"//base:base_java",
"//components/signin/public/android:java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/jni_zero:jni_zero_java",
]
srcjar_deps = [
":java_enums",
":java_prefs",
":jni_headers",
]
sources = [
"java/src/org/chromium/components/sync/LocalDataDescription.java",
"java/src/org/chromium/components/sync/Passphrase.java",
"java/src/org/chromium/components/sync/SyncFeatureMap.java",
"java/src/org/chromium/components/sync/SyncService.java",
"java/src/org/chromium/components/sync/SyncServiceImpl.java",
]
}
android_library("explicit_passphrase_platform_client_interface_java") {
sources = [
"java/src/org/chromium/components/sync/ExplicitPassphrasePlatformClient.java",
# The impl is listed here but then excluded via jar_excluded_patterns, so
# downstream targets can provide their own implementation.
"java/src/org/chromium/components/sync/ExplicitPassphrasePlatformClientImpl.java",
]
jar_excluded_patterns = [ "*/ExplicitPassphrasePlatformClientImpl.class" ]
# Public because CoreAccountInfo and NigoriKey are in the API.
public_deps = [
"//components/signin/public/android:java",
"//components/sync/protocol:protocol_java",
]
deps = [
"//third_party/android_deps:protobuf_lite_runtime_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/jni_zero:jni_zero_java",
]
}
android_library("explicit_passphrase_platform_client_stub_java") {
sources = [ "java/src/org/chromium/components/sync/ExplicitPassphrasePlatformClientImpl.java" ]
deps = [ ":explicit_passphrase_platform_client_interface_java" ]
}
java_cpp_enum("java_enums") {
sources = [
"//components/sync/base/data_type.h",
"//components/sync/base/passphrase_enums.h",
"//components/sync/base/user_selectable_type.h",
"//components/sync/service/sync_service_utils.h",
"//components/sync/service/sync_user_settings.h",
]
}
java_cpp_strings("java_prefs") {
sources = [ "//components/sync/base/pref_names.h" ]
template = "java_templates/SyncPrefNames.java.tmpl"
}