blob: 828e2746212aca0ce2595c38795f140cdca2c4bd [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/allocator.gni")
import("//build/config/ui.gni")
import("//testing/test.gni")
import("//third_party/protobuf/proto_library.gni")
assert(is_chromeos, "Non-ChromeOS builds must not depend on //chromeos")
declare_args() {
# Use binder. Binder related code is compiled only when true.
use_binder = false
}
gypi_values = exec_script("//build/gypi_to_gn.py",
[ rebase_path("chromeos.gyp") ],
"scope",
[ "chromeos.gyp" ])
component("chromeos") {
configs += [ "//net/third_party/nss/ssl:ssl_config" ]
public_deps = [
"//dbus",
]
deps = [
":cryptohome_proto",
":power_manager_proto",
"//base",
"//base:i18n",
"//base:prefs",
"//base/third_party/dynamic_annotations",
"//chromeos/ime:gencode",
"//components/device_event_log",
"//components/onc",
"//components/policy/proto",
"//components/proxy_config",
"//components/signin/core/account_id",
"//crypto",
"//crypto:platform",
"//google_apis",
"//third_party/icu",
"//third_party/libxml",
"//third_party/protobuf:protobuf_lite",
"//url",
]
sources = gypi_values.chromeos_sources
defines = [ "CHROMEOS_IMPLEMENTATION" ]
if (use_binder) {
if (target_cpu == "arm" || target_cpu == "x86") {
defines += [ "BINDER_IPC_32BIT" ]
}
sources += gypi_values.chromeos_binder_sources
}
}
# TYhis must be a static library instead of a source set because some of the
# files pull in things with dependencies that aren't linked in all cases.
#
# TODO this should probably be changed such that it links in all cases and
# can be converted to a source set.
static_library("test_support") {
testonly = true
configs += [ "//build/config/linux:dbus" ]
public_deps = [
":chromeos",
":cryptohome_proto",
":power_manager_proto",
":test_support_without_gmock",
"//testing/gmock",
]
sources = [
"attestation/mock_attestation_flow.cc",
"attestation/mock_attestation_flow.h",
"chromeos_test_utils.cc",
"chromeos_test_utils.h",
"cryptohome/mock_async_method_caller.cc",
"cryptohome/mock_async_method_caller.h",
"cryptohome/mock_homedir_methods.cc",
"cryptohome/mock_homedir_methods.h",
"dbus/mock_cryptohome_client.cc",
"dbus/mock_cryptohome_client.h",
"dbus/mock_lorgnette_manager_client.cc",
"dbus/mock_lorgnette_manager_client.h",
"dbus/mock_permission_broker_client.cc",
"dbus/mock_permission_broker_client.h",
"dbus/mock_session_manager_client.cc",
"dbus/mock_session_manager_client.h",
"dbus/mock_shill_manager_client.cc",
"dbus/mock_shill_manager_client.h",
"dbus/mock_shill_profile_client.cc",
"dbus/mock_shill_profile_client.h",
"dbus/mock_shill_service_client.cc",
"dbus/mock_shill_service_client.h",
"dbus/services/service_provider_test_helper.cc",
"dbus/services/service_provider_test_helper.h",
"disks/mock_disk_mount_manager.cc",
"disks/mock_disk_mount_manager.h",
"login/auth/fake_extended_authenticator.cc",
"login/auth/fake_extended_authenticator.h",
"login/auth/mock_auth_attempt_state_resolver.cc",
"login/auth/mock_auth_attempt_state_resolver.h",
"login/auth/mock_auth_status_consumer.cc",
"login/auth/mock_auth_status_consumer.h",
"login/auth/mock_url_fetchers.cc",
"login/auth/mock_url_fetchers.h",
"network/fake_network_device_handler.cc",
"network/fake_network_device_handler.h",
"network/mock_managed_network_configuration_handler.cc",
"network/mock_managed_network_configuration_handler.h",
"network/onc/onc_test_utils.cc",
"network/onc/onc_test_utils.h",
"system/fake_statistics_provider.cc",
"system/fake_statistics_provider.h",
]
}
static_library("test_support_without_gmock") {
testonly = true
configs += [ "//build/config/linux:dbus" ]
deps = [
":chromeos",
":cryptohome_proto",
":power_manager_proto",
"//crypto",
]
sources = [
"dbus/fake_cros_disks_client.cc",
"dbus/fake_cros_disks_client.h",
"dbus/fake_session_manager_client.cc",
"dbus/fake_session_manager_client.h",
"dbus/fake_shill_manager_client.cc",
"dbus/fake_shill_manager_client.h",
"dbus/fake_update_engine_client.cc",
"dbus/fake_update_engine_client.h",
]
}
test("chromeos_unittests") {
configs += [
"//build/config/linux:dbus",
"//net/third_party/nss/ssl:ssl_config",
]
deps = [
":cryptohome_proto",
":power_manager_proto",
":test_support",
"//base:prefs_test_support",
"//base/test:run_all_unittests",
"//base/test:test_support",
"//components/onc",
"//components/proxy_config",
"//crypto",
"//crypto:test_support",
"//dbus:test_support",
"//google_apis",
"//net",
"//net:test_support",
"//testing/gmock",
"//testing/gtest",
"//third_party/icu",
"//url",
]
sources = gypi_values.chromeos_test_sources
if (use_allocator != "none") {
deps += [ "//base/allocator" ]
}
if (use_binder) {
if (target_cpu == "arm" || target_cpu == "x86") {
defines += [ "BINDER_IPC_32BIT" ]
}
sources += gypi_values.chromeos_binder_test_sources
}
}
proto_library("power_manager_proto") {
sources = [
"//third_party/cros_system_api/dbus/power_manager/input_event.proto",
"//third_party/cros_system_api/dbus/power_manager/peripheral_battery_status.proto",
"//third_party/cros_system_api/dbus/power_manager/policy.proto",
"//third_party/cros_system_api/dbus/power_manager/power_supply_properties.proto",
"//third_party/cros_system_api/dbus/power_manager/suspend.proto",
]
proto_out_dir = "chromeos/dbus/power_manager"
}
proto_library("cryptohome_proto") {
sources = [
"//third_party/cros_system_api/dbus/cryptohome/key.proto",
"//third_party/cros_system_api/dbus/cryptohome/rpc.proto",
]
proto_out_dir = "chromeos/dbus/cryptohome"
}
proto_library("cryptohome_signkey_proto") {
sources = [
"//third_party/cros_system_api/dbus/cryptohome/signed_secret.proto",
]
proto_out_dir = "chromeos/cryptohome"
}