xref: /aosp_15_r20/external/cronet/net/http/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2017 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Workerimport("//build/compiled_action.gni")
6*6777b538SAndroid Build Coastguard Workerimport("//net/features.gni")
7*6777b538SAndroid Build Coastguard Worker
8*6777b538SAndroid Build Coastguard Worker# Generates a header file based on the real preload list.
9*6777b538SAndroid Build Coastguard Workercompiled_action("generate_transport_security_state") {
10*6777b538SAndroid Build Coastguard Worker  tool = "//net/tools/transport_security_state_generator"
11*6777b538SAndroid Build Coastguard Worker
12*6777b538SAndroid Build Coastguard Worker  # Inputs in order expected by the command line of the tool.
13*6777b538SAndroid Build Coastguard Worker  inputs = [
14*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static.json",
15*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static_pins.json",
16*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static.pins",
17*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static.template",
18*6777b538SAndroid Build Coastguard Worker  ]
19*6777b538SAndroid Build Coastguard Worker  outputs = [ "$target_gen_dir/transport_security_state_static.h" ]
20*6777b538SAndroid Build Coastguard Worker  args =
21*6777b538SAndroid Build Coastguard Worker      rebase_path(inputs, root_build_dir) + rebase_path(outputs, root_build_dir)
22*6777b538SAndroid Build Coastguard Worker}
23*6777b538SAndroid Build Coastguard Worker
24*6777b538SAndroid Build Coastguard Worker# Generates a header file for use in unittests.
25*6777b538SAndroid Build Coastguard Workercompiled_action("transport_security_state_unittest_data_default") {
26*6777b538SAndroid Build Coastguard Worker  tool = "//net/tools/transport_security_state_generator"
27*6777b538SAndroid Build Coastguard Worker
28*6777b538SAndroid Build Coastguard Worker  # Inputs in order expected by the command line of the tool.
29*6777b538SAndroid Build Coastguard Worker  inputs = [
30*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static_unittest_default.json",
31*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static_unittest_default_pins.json",
32*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static_unittest_default.pins",
33*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static_unittest.template",
34*6777b538SAndroid Build Coastguard Worker  ]
35*6777b538SAndroid Build Coastguard Worker  outputs =
36*6777b538SAndroid Build Coastguard Worker      [ "$target_gen_dir/transport_security_state_static_unittest_default.h" ]
37*6777b538SAndroid Build Coastguard Worker  args =
38*6777b538SAndroid Build Coastguard Worker      rebase_path(inputs, root_build_dir) + rebase_path(outputs, root_build_dir)
39*6777b538SAndroid Build Coastguard Worker}
40*6777b538SAndroid Build Coastguard Worker
41*6777b538SAndroid Build Coastguard Worker# Generates a number of header files that are used by integration tests for the
42*6777b538SAndroid Build Coastguard Worker# generation process and preload format.
43*6777b538SAndroid Build Coastguard Workercompiled_action_foreach("transport_security_state_unittest_data") {
44*6777b538SAndroid Build Coastguard Worker  tool = "//net/tools/transport_security_state_generator"
45*6777b538SAndroid Build Coastguard Worker  sources = [
46*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static_unittest1.json",
47*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static_unittest2.json",
48*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static_unittest3.json",
49*6777b538SAndroid Build Coastguard Worker  ]
50*6777b538SAndroid Build Coastguard Worker
51*6777b538SAndroid Build Coastguard Worker  # Inputs in order expected by the command line of the tool.
52*6777b538SAndroid Build Coastguard Worker  source_independent_inputs = [
53*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static_unittest.pins",
54*6777b538SAndroid Build Coastguard Worker    "transport_security_state_static_unittest.template",
55*6777b538SAndroid Build Coastguard Worker  ]
56*6777b538SAndroid Build Coastguard Worker
57*6777b538SAndroid Build Coastguard Worker  # All possible inputs to ensure correctness when files change.
58*6777b538SAndroid Build Coastguard Worker  # TODO(crbug/1508893): Use {{source_name_part}}_pins.json.
59*6777b538SAndroid Build Coastguard Worker  inputs = [
60*6777b538SAndroid Build Coastguard Worker             "transport_security_state_static_unittest1_pins.json",
61*6777b538SAndroid Build Coastguard Worker             "transport_security_state_static_unittest2_pins.json",
62*6777b538SAndroid Build Coastguard Worker             "transport_security_state_static_unittest3_pins.json",
63*6777b538SAndroid Build Coastguard Worker           ] + source_independent_inputs
64*6777b538SAndroid Build Coastguard Worker
65*6777b538SAndroid Build Coastguard Worker  outputs = [ "$target_gen_dir/{{source_name_part}}.h" ]
66*6777b538SAndroid Build Coastguard Worker  args = [ rebase_path("{{source_name_part}}.json", root_build_dir) ] +
67*6777b538SAndroid Build Coastguard Worker         [ rebase_path("{{source_name_part}}_pins.json", root_build_dir) ] +
68*6777b538SAndroid Build Coastguard Worker         rebase_path(source_independent_inputs, root_build_dir) +
69*6777b538SAndroid Build Coastguard Worker         rebase_path(outputs, root_build_dir)
70*6777b538SAndroid Build Coastguard Worker}
71*6777b538SAndroid Build Coastguard Worker
72*6777b538SAndroid Build Coastguard Worker# This has separated source_set not to let other compiles wait for the
73*6777b538SAndroid Build Coastguard Worker# generate_transport_security_state task to complete.
74*6777b538SAndroid Build Coastguard Workersource_set("transport_security_state_generated_files") {
75*6777b538SAndroid Build Coastguard Worker  # Do not publicize any header to remove build dependency.
76*6777b538SAndroid Build Coastguard Worker  public = []
77*6777b538SAndroid Build Coastguard Worker
78*6777b538SAndroid Build Coastguard Worker  sources = [
79*6777b538SAndroid Build Coastguard Worker    "transport_security_state.cc",
80*6777b538SAndroid Build Coastguard Worker    # transport_security_state.h is intentionally specified in net/BUILD.gn
81*6777b538SAndroid Build Coastguard Worker    # rather than in this source_set. See this review comment thread for
82*6777b538SAndroid Build Coastguard Worker    # details:
83*6777b538SAndroid Build Coastguard Worker    # https://chromium-review.googlesource.com/c/chromium/src/+/1460639/comment/b781034b_5794ab47/
84*6777b538SAndroid Build Coastguard Worker  ]
85*6777b538SAndroid Build Coastguard Worker
86*6777b538SAndroid Build Coastguard Worker  deps = [
87*6777b538SAndroid Build Coastguard Worker    "//build:branding_buildflags",
88*6777b538SAndroid Build Coastguard Worker    "//net:net_deps",
89*6777b538SAndroid Build Coastguard Worker    "//net:net_public_deps",
90*6777b538SAndroid Build Coastguard Worker    "//net/dns",
91*6777b538SAndroid Build Coastguard Worker  ]
92*6777b538SAndroid Build Coastguard Worker
93*6777b538SAndroid Build Coastguard Worker  if (include_transport_security_state_preload_list) {
94*6777b538SAndroid Build Coastguard Worker    deps += [ ":generate_transport_security_state" ]
95*6777b538SAndroid Build Coastguard Worker  }
96*6777b538SAndroid Build Coastguard Worker}
97