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