|  | # 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/buildflag_header.gni") | 
|  | import("//build/config/chromecast_build.gni") | 
|  | import("//mojo/public/tools/bindings/mojom.gni") | 
|  | import("//testing/test.gni") | 
|  |  | 
|  | mojom("variations_mojom") { | 
|  | sources = [ "variations.mojom" ] | 
|  | } | 
|  |  | 
|  | if (is_android) { | 
|  | import("//build/config/android/rules.gni") | 
|  | } | 
|  |  | 
|  | large_variation_key_size_enabled = is_chromecast | 
|  |  | 
|  | buildflag_header("buildflags") { | 
|  | header = "buildflags.h" | 
|  | flags = [ "LARGE_VARIATION_KEY_SIZE=$large_variation_key_size_enabled" ] | 
|  | } | 
|  |  | 
|  | component("variations_features") { | 
|  | output_name = "variations_features" | 
|  |  | 
|  | defines = [ "IS_VARIATIONS_FEATURES_IMPL" ] | 
|  |  | 
|  | sources = [ | 
|  | "variations_features.cc", | 
|  | "variations_features.h", | 
|  | ] | 
|  |  | 
|  | deps = [ "//base" ] | 
|  | } | 
|  |  | 
|  | static_library("variations") { | 
|  | sources = [ | 
|  | "active_field_trials.cc", | 
|  | "active_field_trials.h", | 
|  | "child_process_field_trial_syncer.cc", | 
|  | "child_process_field_trial_syncer.h", | 
|  | "client_filterable_state.cc", | 
|  | "client_filterable_state.h", | 
|  | "entropy_provider.cc", | 
|  | "entropy_provider.h", | 
|  | "hashing.cc", | 
|  | "hashing.h", | 
|  | "metrics.cc", | 
|  | "metrics.h", | 
|  | "platform_field_trials.h", | 
|  | "pref_names.cc", | 
|  | "pref_names.h", | 
|  | "processed_study.cc", | 
|  | "processed_study.h", | 
|  | "seed_response.cc", | 
|  | "seed_response.h", | 
|  | "study_filtering.cc", | 
|  | "study_filtering.h", | 
|  | "synthetic_trial_registry.cc", | 
|  | "synthetic_trial_registry.h", | 
|  | "synthetic_trials.cc", | 
|  | "synthetic_trials.h", | 
|  | "synthetic_trials_active_group_id_provider.cc", | 
|  | "synthetic_trials_active_group_id_provider.h", | 
|  | "variations_associated_data.cc", | 
|  | "variations_associated_data.h", | 
|  | "variations_client.h", | 
|  | "variations_crash_keys.cc", | 
|  | "variations_crash_keys.h", | 
|  | "variations_ids_provider.cc", | 
|  | "variations_ids_provider.h", | 
|  | "variations_layers.cc", | 
|  | "variations_layers.h", | 
|  | "variations_murmur_hash.cc", | 
|  | "variations_murmur_hash.h", | 
|  | "variations_request_scheduler.cc", | 
|  | "variations_request_scheduler.h", | 
|  | "variations_seed_processor.cc", | 
|  | "variations_seed_processor.h", | 
|  | "variations_seed_simulator.cc", | 
|  | "variations_seed_simulator.h", | 
|  | "variations_seed_store.cc", | 
|  | "variations_seed_store.h", | 
|  | "variations_switches.cc", | 
|  | "variations_switches.h", | 
|  | "variations_url_constants.cc", | 
|  | "variations_url_constants.h", | 
|  | ] | 
|  |  | 
|  | if (is_android || is_ios) { | 
|  | sources += [ | 
|  | "variations_request_scheduler_mobile.cc", | 
|  | "variations_request_scheduler_mobile.h", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (is_android) { | 
|  | sources += [ | 
|  | "android/variations_associated_data_android.cc", | 
|  | "android/variations_seed_bridge.cc", | 
|  | "android/variations_seed_bridge.h", | 
|  | ] | 
|  | } | 
|  |  | 
|  | public_deps = [ | 
|  | ":variations_features", | 
|  | "proto", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":buildflags", | 
|  | ":variations_mojom", | 
|  | "proto", | 
|  | "//base", | 
|  | "//build:chromeos_buildflags", | 
|  | "//components/crash/core/common:crash_key", | 
|  | "//components/prefs", | 
|  | "//crypto", | 
|  | "//third_party/protobuf:protobuf_lite", | 
|  | "//third_party/zlib/google:compression_utils", | 
|  | ] | 
|  |  | 
|  | if (is_android) { | 
|  | deps += [ ":jni" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | if (is_android) { | 
|  | generate_jni("jni") { | 
|  | sources = [ | 
|  | "android/java/src/org/chromium/components/variations/VariationsAssociatedData.java", | 
|  | "android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java", | 
|  | ] | 
|  | } | 
|  |  | 
|  | android_library("load_seed_result_enum_java") { | 
|  | deps = [ | 
|  | "//base:base_java", | 
|  | "//third_party/androidx:androidx_annotation_annotation_java", | 
|  | ] | 
|  | srcjar_deps = [ ":load_seed_result_enum_srcjar" ] | 
|  | } | 
|  |  | 
|  | java_cpp_enum("load_seed_result_enum_srcjar") { | 
|  | sources = [ "metrics.h" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | static_library("test_support") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "variations_params_manager.cc", | 
|  | "variations_params_manager.h", | 
|  | "variations_test_utils.cc", | 
|  | "variations_test_utils.h", | 
|  | ] | 
|  |  | 
|  | public_deps = [ | 
|  | ":variations", | 
|  | ":variations_mojom", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "field_trial_config:field_trial_config", | 
|  | "proto", | 
|  | "//base/test:test_support", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("unit_tests") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "active_field_trials_unittest.cc", | 
|  | "child_process_field_trial_syncer_unittest.cc", | 
|  | "client_filterable_state_unittest.cc", | 
|  | "entropy_provider_unittest.cc", | 
|  | "hashing_unittest.cc", | 
|  | "net/variations_command_line_unittest.cc", | 
|  | "net/variations_http_headers_unittest.cc", | 
|  | "simulate_for_crosstalk_unittest.cc", | 
|  | "study_filtering_unittest.cc", | 
|  | "synthetic_trial_registry_unittest.cc", | 
|  | "variations_associated_data_unittest.cc", | 
|  | "variations_crash_keys_unittest.cc", | 
|  | "variations_ids_provider_unittest.cc", | 
|  | "variations_murmur_hash_unittest.cc", | 
|  | "variations_request_scheduler_unittest.cc", | 
|  | "variations_seed_processor_unittest.cc", | 
|  | "variations_seed_simulator_unittest.cc", | 
|  | "variations_seed_store_unittest.cc", | 
|  | ] | 
|  |  | 
|  | if (is_android || is_ios) { | 
|  | sources += [ "variations_request_scheduler_mobile_unittest.cc" ] | 
|  | } | 
|  |  | 
|  | deps = [ | 
|  | ":test_support", | 
|  | ":variations", | 
|  | ":variations_features", | 
|  | ":variations_mojom", | 
|  | "net", | 
|  | "proto", | 
|  | "//base/test:test_support", | 
|  | "//components/crash/core/common:crash_key", | 
|  | "//components/prefs:test_support", | 
|  | "//components/variations/field_trial_config:field_trial_config", | 
|  | "//services/network/public/cpp:cpp_base", | 
|  | "//testing/gmock", | 
|  | "//testing/gtest", | 
|  | "//third_party/smhasher:murmurhash3", | 
|  | "//third_party/zlib/google:compression_utils", | 
|  | "//url", | 
|  | ] | 
|  | } | 
|  |  | 
|  | # Convenience testing target | 
|  | test("variations_unittests") { | 
|  | sources = [ "//components/test/run_all_unittests.cc" ] | 
|  | deps = [ | 
|  | ":unit_tests", | 
|  | "//components/test:test_support", | 
|  | "//components/variations/field_trial_config:unit_tests", | 
|  | "//components/variations/service:unit_tests", | 
|  | ] | 
|  | } |