| # 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/features.gni") |
| import("//build/config/jumbo.gni") |
| import("//testing/libfuzzer/fuzzer_test.gni") |
| |
| group("common") { |
| if (is_component_build) { |
| public_deps = [ |
| "//components/policy", |
| ] |
| } else { |
| public_deps = [ |
| ":internal", |
| ] |
| } |
| } |
| |
| jumbo_source_set("internal") { |
| visibility = [ "//components/policy/*" ] |
| |
| configs += [ "//components/policy:component_implementation" ] |
| |
| sources = [ |
| "../../policy_export.h", |
| "async_policy_loader.cc", |
| "async_policy_loader.h", |
| "async_policy_provider.cc", |
| "async_policy_provider.h", |
| "chrome_schema.cc", |
| "chrome_schema.h", |
| "cloud/cloud_external_data_manager.cc", |
| "cloud/cloud_external_data_manager.h", |
| "cloud/cloud_policy_client.cc", |
| "cloud/cloud_policy_client.h", |
| "cloud/cloud_policy_client_registration_helper.cc", |
| "cloud/cloud_policy_client_registration_helper.h", |
| "cloud/cloud_policy_core.cc", |
| "cloud/cloud_policy_core.h", |
| "cloud/cloud_policy_manager.cc", |
| "cloud/cloud_policy_manager.h", |
| "cloud/cloud_policy_refresh_scheduler.cc", |
| "cloud/cloud_policy_refresh_scheduler.h", |
| "cloud/cloud_policy_service.cc", |
| "cloud/cloud_policy_service.h", |
| "cloud/cloud_policy_store.cc", |
| "cloud/cloud_policy_store.h", |
| "cloud/cloud_policy_util.cc", |
| "cloud/cloud_policy_util.h", |
| "cloud/cloud_policy_validator.cc", |
| "cloud/cloud_policy_validator.h", |
| "cloud/component_cloud_policy_service.cc", |
| "cloud/component_cloud_policy_service.h", |
| "cloud/component_cloud_policy_store.cc", |
| "cloud/component_cloud_policy_store.h", |
| "cloud/component_cloud_policy_updater.cc", |
| "cloud/component_cloud_policy_updater.h", |
| "cloud/device_management_service.cc", |
| "cloud/device_management_service.h", |
| "cloud/dm_auth.cc", |
| "cloud/dm_auth.h", |
| "cloud/enterprise_metrics.cc", |
| "cloud/enterprise_metrics.h", |
| "cloud/external_policy_data_fetcher.cc", |
| "cloud/external_policy_data_fetcher.h", |
| "cloud/external_policy_data_updater.cc", |
| "cloud/external_policy_data_updater.h", |
| "cloud/machine_level_user_cloud_policy_manager.cc", |
| "cloud/machine_level_user_cloud_policy_manager.h", |
| "cloud/machine_level_user_cloud_policy_metrics.h", |
| "cloud/machine_level_user_cloud_policy_store.cc", |
| "cloud/machine_level_user_cloud_policy_store.h", |
| "cloud/policy_header_service.cc", |
| "cloud/policy_header_service.h", |
| "cloud/policy_value_validator.h", |
| "cloud/resource_cache.cc", |
| "cloud/resource_cache.h", |
| "cloud/signing_service.h", |
| "cloud/user_cloud_policy_manager.cc", |
| "cloud/user_cloud_policy_manager.h", |
| "cloud/user_cloud_policy_store.cc", |
| "cloud/user_cloud_policy_store.h", |
| "cloud/user_cloud_policy_store_base.cc", |
| "cloud/user_cloud_policy_store_base.h", |
| "cloud/user_info_fetcher.cc", |
| "cloud/user_info_fetcher.h", |
| "config_dir_policy_loader.cc", |
| "config_dir_policy_loader.h", |
| "configuration_policy_provider.cc", |
| "configuration_policy_provider.h", |
| "extension_policy_migrator.h", |
| "external_data_fetcher.cc", |
| "external_data_fetcher.h", |
| "external_data_manager.h", |
| "json_schema_constants.cc", |
| "json_schema_constants.h", |
| "plist_writer.cc", |
| "plist_writer.h", |
| "policy_bundle.cc", |
| "policy_bundle.h", |
| "policy_details.h", |
| "policy_load_status.cc", |
| "policy_load_status.h", |
| "policy_loader_ios.h", |
| "policy_loader_ios.mm", |
| "policy_loader_mac.h", |
| "policy_loader_mac.mm", |
| "policy_loader_win.cc", |
| "policy_loader_win.h", |
| "policy_map.cc", |
| "policy_map.h", |
| "policy_namespace.cc", |
| "policy_namespace.h", |
| "policy_proto_decoders.cc", |
| "policy_proto_decoders.h", |
| "policy_service.cc", |
| "policy_service.h", |
| "policy_service_impl.cc", |
| "policy_service_impl.h", |
| "policy_statistics_collector.cc", |
| "policy_statistics_collector.h", |
| "preferences_mac.cc", |
| "preferences_mac.h", |
| "remote_commands/remote_command_job.cc", |
| "remote_commands/remote_command_job.h", |
| "remote_commands/remote_commands_factory.cc", |
| "remote_commands/remote_commands_factory.h", |
| "remote_commands/remote_commands_queue.cc", |
| "remote_commands/remote_commands_queue.h", |
| "remote_commands/remote_commands_service.cc", |
| "remote_commands/remote_commands_service.h", |
| "schema.cc", |
| "schema.h", |
| "schema_internal.h", |
| "schema_map.cc", |
| "schema_map.h", |
| "schema_registry.cc", |
| "schema_registry.h", |
| "schema_registry_tracking_policy_provider.cc", |
| "schema_registry_tracking_policy_provider.h", |
| ] |
| |
| configs += [ "//build/config:precompiled_headers" ] |
| |
| public_deps = [ |
| ":common_constants", |
| "//components/policy:generated", |
| "//components/policy/proto", |
| ] |
| deps = [ |
| "//base:i18n", |
| "//base/third_party/dynamic_annotations", |
| "//components/account_id", |
| "//components/crash/core/common:crash_key", # Remove once https://crbug.com/685996 is fixed. |
| "//components/data_use_measurement/core", |
| "//components/prefs", |
| "//components/version_info", |
| "//extensions/buildflags", |
| "//google_apis", |
| "//net", |
| "//services/network/public/cpp", |
| "//third_party/libxml", |
| "//third_party/re2", |
| "//url", |
| ] |
| |
| if (is_win) { |
| libs = [ |
| "netapi32.lib", |
| "ntdsapi.lib", |
| "secur32.lib", |
| "shlwapi.lib", |
| "userenv.lib", |
| ] |
| } |
| |
| # Compile on Linux for fuzzer and since code is reused on Chrome OS. |
| if (is_win || is_linux) { |
| sources += [ |
| "preg_parser.cc", |
| "preg_parser.h", |
| "registry_dict.cc", |
| "registry_dict.h", |
| ] |
| } |
| if (is_android) { |
| sources += [ "cloud/component_cloud_policy_service_stub.cc" ] |
| sources -= [ |
| "cloud/component_cloud_policy_service.cc", |
| "cloud/component_cloud_policy_store.cc", |
| "cloud/component_cloud_policy_store.h", |
| "cloud/component_cloud_policy_updater.cc", |
| "cloud/component_cloud_policy_updater.h", |
| "cloud/external_policy_data_fetcher.cc", |
| "cloud/external_policy_data_fetcher.h", |
| "cloud/external_policy_data_updater.cc", |
| "cloud/external_policy_data_updater.h", |
| "cloud/resource_cache.cc", |
| "cloud/resource_cache.h", |
| "config_dir_policy_loader.cc", |
| "config_dir_policy_loader.h", |
| "policy_load_status.cc", |
| "policy_load_status.h", |
| ] |
| } |
| if (is_chromeos) { |
| sources += [ |
| "policy_scheduler.cc", |
| "policy_scheduler.h", |
| "proxy_policy_provider.cc", |
| "proxy_policy_provider.h", |
| ] |
| sources -= [ |
| "cloud/cloud_policy_client_registration_helper.cc", |
| "cloud/cloud_policy_client_registration_helper.h", |
| "cloud/machine_level_user_cloud_policy_manager.cc", |
| "cloud/machine_level_user_cloud_policy_manager.h", |
| "cloud/machine_level_user_cloud_policy_metrics.h", |
| "cloud/machine_level_user_cloud_policy_store.cc", |
| "cloud/machine_level_user_cloud_policy_store.h", |
| "cloud/user_cloud_policy_manager.cc", |
| "cloud/user_cloud_policy_manager.h", |
| "cloud/user_cloud_policy_store.cc", |
| "cloud/user_cloud_policy_store.h", |
| ] |
| } |
| if (is_mac) { |
| libs = [ "CoreFoundation.framework" ] |
| } |
| if (is_ios || is_mac) { |
| sources += [ |
| "mac_util.cc", |
| "mac_util.h", |
| ] |
| } |
| } |
| |
| jumbo_static_library("test_support") { |
| testonly = true |
| sources = [ |
| "cloud/mock_cloud_external_data_manager.cc", |
| "cloud/mock_cloud_external_data_manager.h", |
| "cloud/mock_cloud_policy_client.cc", |
| "cloud/mock_cloud_policy_client.h", |
| "cloud/mock_cloud_policy_store.cc", |
| "cloud/mock_cloud_policy_store.h", |
| "cloud/mock_device_management_service.cc", |
| "cloud/mock_device_management_service.h", |
| "cloud/mock_signing_service.cc", |
| "cloud/mock_signing_service.h", |
| "cloud/mock_user_cloud_policy_store.cc", |
| "cloud/mock_user_cloud_policy_store.h", |
| "cloud/policy_builder.cc", |
| "cloud/policy_builder.h", |
| "configuration_policy_provider_test.cc", |
| "configuration_policy_provider_test.h", |
| "fake_async_policy_loader.cc", |
| "fake_async_policy_loader.h", |
| "mock_configuration_policy_provider.cc", |
| "mock_configuration_policy_provider.h", |
| "mock_policy_service.cc", |
| "mock_policy_service.h", |
| "policy_test_utils.cc", |
| "policy_test_utils.h", |
| "preferences_mock_mac.cc", |
| "preferences_mock_mac.h", |
| "remote_commands/test_remote_command_job.cc", |
| "remote_commands/test_remote_command_job.h", |
| "remote_commands/testing_remote_commands_server.cc", |
| "remote_commands/testing_remote_commands_server.h", |
| ] |
| |
| if (is_chromeos) { |
| sources -= [ |
| "cloud/mock_user_cloud_policy_store.cc", |
| "cloud/mock_user_cloud_policy_store.h", |
| ] |
| } |
| |
| public_deps = [ |
| ":common", |
| "//base", |
| "//base/test:test_support", |
| |
| # Explicitly link in the generated policy target into the test support |
| # so it will be linked to dependent targets. Otherwise in component |
| # build, it will be hidden inside the policy component. |
| "//components/account_id", |
| "//components/policy:generated", |
| "//components/policy/proto", |
| "//crypto", |
| "//net", |
| "//services/network/public/cpp", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| } |
| |
| source_set("common_constants") { |
| configs += [ "//components/policy:component_implementation" ] |
| deps = [ |
| "//base", |
| ] |
| sources = [ |
| "../../policy_export.h", |
| "cloud/cloud_policy_constants.cc", |
| "cloud/cloud_policy_constants.h", |
| "policy_pref_names.cc", |
| "policy_pref_names.h", |
| "policy_switches.cc", |
| "policy_switches.h", |
| "policy_types.h", |
| ] |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ |
| "//extensions/buildflags", |
| "cloud/cloud_policy_client_unittest.cc", |
| "cloud/cloud_policy_core_unittest.cc", |
| "cloud/cloud_policy_manager_unittest.cc", |
| "cloud/cloud_policy_refresh_scheduler_unittest.cc", |
| "cloud/cloud_policy_service_unittest.cc", |
| "cloud/cloud_policy_validator_unittest.cc", |
| "cloud/device_management_service_unittest.cc", |
| "cloud/policy_header_service_unittest.cc", |
| "cloud/user_info_fetcher_unittest.cc", |
| "generate_policy_source_unittest.cc", |
| "plist_writer_unittest.cc", |
| "policy_bundle_unittest.cc", |
| "policy_loader_ios_unittest.mm", |
| "policy_loader_mac_unittest.cc", |
| "policy_loader_win_unittest.cc", |
| "policy_map_unittest.cc", |
| "policy_service_impl_unittest.cc", |
| "policy_statistics_collector_unittest.cc", |
| "remote_commands/remote_commands_queue_unittest.cc", |
| "remote_commands/remote_commands_service_unittest.cc", |
| "schema_map_unittest.cc", |
| "schema_registry_tracking_policy_provider_unittest.cc", |
| "schema_registry_unittest.cc", |
| "schema_unittest.cc", |
| ] |
| if (is_win || is_linux) { |
| sources += [ |
| "preg_parser_unittest.cc", |
| "registry_dict_unittest.cc", |
| ] |
| } |
| if (is_chromeos) { |
| sources += [ |
| "policy_scheduler_unittest.cc", |
| "proxy_policy_provider_unittest.cc", |
| ] |
| } else { |
| sources += [ |
| "cloud/machine_level_user_cloud_policy_manager_unittest.cc", |
| "cloud/machine_level_user_cloud_policy_store_unittest.cc", |
| "cloud/user_cloud_policy_manager_unittest.cc", |
| "cloud/user_cloud_policy_store_unittest.cc", |
| ] |
| } |
| if (!is_android) { |
| sources += [ "async_policy_provider_unittest.cc" ] |
| } |
| if (!is_android && !is_ios) { |
| sources += [ |
| "cloud/component_cloud_policy_service_unittest.cc", |
| "cloud/component_cloud_policy_store_unittest.cc", |
| "cloud/component_cloud_policy_updater_unittest.cc", |
| "cloud/external_policy_data_fetcher_unittest.cc", |
| "cloud/external_policy_data_updater_unittest.cc", |
| "cloud/resource_cache_unittest.cc", |
| "config_dir_policy_loader_unittest.cc", |
| ] |
| } |
| if (is_mac || is_ios) { |
| sources += [ "mac_util_unittest.cc" ] |
| } |
| if (is_win || is_linux) { |
| # Needed by policy_loader_win_unittest.cc and preg_parser_unittest.cc |
| data = [ |
| "//chrome/test/data/policy/", |
| ] |
| } |
| |
| deps = [ |
| ":test_support", |
| "//base", |
| "//base/test:test_support", |
| "//components/account_id", |
| "//components/policy:generated", |
| "//components/prefs:test_support", |
| "//extensions/buildflags", |
| "//google_apis", |
| "//net:test_support", |
| "//services/network:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//third_party/libxml", |
| ] |
| } |
| |
| if (is_win || is_linux) { |
| fuzzer_test("preg_parser_fuzzer") { |
| sources = [ |
| "preg_parser_fuzzer.cc", |
| ] |
| seed_corpus = "//chrome/test/data/policy/gpo/fuzzer_corpus" |
| dict = "//chrome/test/data/policy/gpo/fuzzer.dict" |
| deps = [ |
| ":internal", |
| "//base", |
| ] |
| } |
| } |