diff options
Diffstat (limited to 'chromium/components/domain_reliability/BUILD.gn')
-rw-r--r-- | chromium/components/domain_reliability/BUILD.gn | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/chromium/components/domain_reliability/BUILD.gn b/chromium/components/domain_reliability/BUILD.gn new file mode 100644 index 00000000000..5834a824bcb --- /dev/null +++ b/chromium/components/domain_reliability/BUILD.gn @@ -0,0 +1,115 @@ +# 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. + +# Paths to the JSON files are kind of gross. They're stored in the gypi +# relative to //components, since that's the working directory gyp seems +# to use for all of the components. When we depend on them here, we need +# to remove the leading domain_reliability, since *our* working directory +# is one level deeper. When we call bake_in_configs.py, we need to give +# it a properly-rebased path to //components so it can properly join the +# paths relative to that and find the JSON files. + +baked_in_configs_gypi = exec_script("//build/gypi_to_gn.py", + [ rebase_path("baked_in_configs.gypi") ], + "scope", + [ "baked_in_configs.gypi" ]) + +# The config file names in the .gypi are relative to "//components". +baked_in_configs = + rebase_path(baked_in_configs_gypi.baked_in_configs, ".", "//components") + +action("bake_in_configs") { + visibility = [ ":*" ] + script = "bake_in_configs.py" + + inputs = baked_in_configs + [ "baked_in_configs.gypi" ] + output_file = "$target_gen_dir/baked_in_configs.cc" + outputs = [ + output_file, + ] + + # The JSON file list is too long for the command line on Windows, so put + # them in a response file. + response_file_contents = rebase_path(baked_in_configs, root_build_dir) + args = [ + "--file-list", + "{{response_file_name}}", + "--output", + rebase_path(output_file, root_build_dir), + ] +} + +component("domain_reliability") { + sources = [ + "baked_in_configs.h", + "beacon.cc", + "beacon.h", + "clear_mode.h", + "config.cc", + "config.h", + "context.cc", + "context.h", + "context_manager.cc", + "context_manager.h", + "dispatcher.cc", + "dispatcher.h", + "domain_reliability_export.h", + "google_configs.cc", + "google_configs.h", + "header.cc", + "header.h", + "monitor.cc", + "monitor.h", + "quic_error_mapping.cc", + "quic_error_mapping.h", + "scheduler.cc", + "scheduler.h", + "service.cc", + "service.h", + "uploader.cc", + "uploader.h", + "util.cc", + "util.h", + ] + sources += get_target_outputs(":bake_in_configs") + + defines = [ "DOMAIN_RELIABILITY_IMPLEMENTATION" ] + + deps = [ + ":bake_in_configs", + "//base", + "//components/data_use_measurement/core", + "//components/keyed_service/core", + "//content/public/common", + "//net", + "//url", + ] +} + +source_set("unit_tests") { + testonly = true + sources = [ + "config_unittest.cc", + "context_unittest.cc", + "dispatcher_unittest.cc", + "google_configs_unittest.cc", + "header_unittest.cc", + "monitor_unittest.cc", + "scheduler_unittest.cc", + "test_util.cc", + "test_util.h", + "uploader_unittest.cc", + "util_unittest.cc", + ] + + configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] + + deps = [ + ":domain_reliability", + "//base", + "//base/test:test_support", + "//net:test_support", + "//testing/gtest", + ] +} |