# Copyright 2019 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/chromeos/ui_mode.gni")
import("//build/config/features.gni")
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
}
static_library("sync_device_info") {
sources = [
"device_count_metrics_provider.cc",
"device_count_metrics_provider.h",
"device_info.cc",
"device_info.h",
"device_info_prefs.cc",
"device_info_prefs.h",
"device_info_proto_enum_util.cc",
"device_info_proto_enum_util.h",
"device_info_sync_bridge.cc",
"device_info_sync_bridge.h",
"device_info_sync_client.cc",
"device_info_sync_client.h",
"device_info_sync_service.cc",
"device_info_sync_service.h",
"device_info_sync_service_impl.cc",
"device_info_sync_service_impl.h",
"device_info_tracker.h",
"device_info_util.cc",
"device_info_util.h",
"local_device_info_provider.h",
"local_device_info_provider_impl.cc",
"local_device_info_provider_impl.h",
"local_device_info_util.cc",
"local_device_info_util.h",
]
configs += [ "//build/config:precompiled_headers" ]
public_deps = [
"//base",
"//components/sync",
"//components/sync/invalidations",
"//components/sync/protocol",
]
deps = [
"//build:chromeos_buildflags",
"//components/keyed_service/core",
"//components/metrics",
"//components/prefs",
"//components/version_info",
"//ui/base",
]
configs += [ "//build/config/compiler:wexit_time_destructors" ]
if (is_android) {
sources += [ "local_device_info_util_android.cc" ]
}
if (is_chromeos) {
sources += [ "local_device_info_util_chromeos.cc" ]
deps += [ "//chromeos/constants" ]
}
if (is_ios) {
sources += [ "local_device_info_util_ios.mm" ]
}
if (is_linux) {
sources += [ "local_device_info_util_linux.cc" ]
}
if (is_fuchsia) {
sources += [ "local_device_info_util_fuchsia.cc" ]
}
if (is_mac) {
sources += [ "local_device_info_util_mac.mm" ]
frameworks = [
"CoreFoundation.framework",
"SystemConfiguration.framework", # For local_device_info_util_mac.mm.
]
}
if (is_win) {
sources += [ "local_device_info_util_win.cc" ]
}
if (is_chromeos_ash) {
deps += [ "//chromeos/ash/components/system" ]
}
}
static_library("test_support") {
testonly = true
sources = [
"fake_device_info_sync_service.cc",
"fake_device_info_sync_service.h",
"fake_device_info_tracker.cc",
"fake_device_info_tracker.h",
"fake_local_device_info_provider.cc",
"fake_local_device_info_provider.h",
]
public_deps = [ ":sync_device_info" ]
deps = [ "//components/sync:test_support" ]
}
source_set("unit_tests") {
testonly = true
sources = [
"device_count_metrics_provider_unittest.cc",
"device_info_prefs_unittest.cc",
"device_info_sync_bridge_unittest.cc",
"device_info_util_unittest.cc",
"local_device_info_provider_impl_unittest.cc",
"local_device_info_util_unittest.cc",
]
configs += [ "//build/config:precompiled_headers" ]
deps = [
":sync_device_info",
":test_support",
"//base",
"//base/test:test_support",
"//build:chromeos_buildflags",
"//components/prefs:test_support",
"//components/sync:test_support",
"//components/version_info:version_string",
"//testing/gmock",
"//testing/gtest",
]
if (is_chromeos_ash) {
deps += [ "//chromeos/ash/components/system" ]
}
}
if (is_android) {
java_cpp_enum("java_enums") {
sources = [ "//components/sync_device_info/device_info.h" ]
}
android_library("sync_device_info_java") {
deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
srcjar_deps = [ ":java_enums" ]
}
}