summaryrefslogtreecommitdiff
path: root/chromium/components/variations/proto/devtools/BUILD.gn
blob: b94fc18fda16fb62fcb4980e4c4a38974b646a51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Copyright 2020 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("//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 these build targets. These targets are only built manually, so
# it's fine to limit them to Linux.
if (is_linux || is_mac) {
  # 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",
                    ]
  }
}