# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/chromeos/ui_mode.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//third_party/closure_compiler/closure_args.gni")
import("//third_party/closure_compiler/compile_js.gni")
# Some of the Windows builders do not support Java, which is a required
# dependency for this build target. The fuzzable_proto_library doesn't support
# building JS protos when we're using a fuzzing engine that supports
# libprotobuf-mutator, such as libfuzzer. This target is only built
# manually, so it's fine to limit it to Linux non-fuzzer builds.
if (is_linux && !use_fuzzing_engine_with_lpm) {
# Build this target to generate a small, self-contained utility for parsing a
# serialized ClientVariations proto from the X-Client-Data header.
#
# Run components/variations/proto/devtools/update_client_variations_parser.py
# to rebuild the library that is synced into the Dev Tools repository.
group("devtools") {
deps = [ ":client_variations_uncompiled" ]
}
# Note that the name passed to the `js_binary` rule implicitly defines a
# dependency on the file that matches the build rule's name.
js_binary("client_variations_uncompiled") {
outputs = [ "$target_gen_dir/client_variations_gen.js" ]
deps = [ "..:proto_js" ]
closure_flags = strict_error_checking_closure_args + [
"compilation_level=ADVANCED_OPTIMIZATIONS",
"browser_featureset_year=2020",
"generate_exports",
"export_local_property_definitions",
"isolation_mode=IIFE",
"jscomp_warning=checkTypes",
"jscomp_warning=deprecatedAnnotations",
"jscomp_warning=deprecated",
]
}
}