| # 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" |
| } |