blob: 0fda66bec31f6b9f13712646af94996b8acbb94e [file] [log] [blame]
Blink Reformat4c46d092018-04-07 15:32:371# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Tim van der Lippe732be582021-04-09 15:58:555import("./config/gni/devtools_grd_files.gni")
6import("./config/gni/devtools_image_files.gni")
Tim van der Lippec4e2fef2020-09-11 12:00:327import("./front_end/emulated_devices/optimized/optimized_images.gni")
Alex Rudenko8505e322021-05-25 06:01:178import("./scripts/build/ninja/node.gni")
Tim van der Lippef6650492020-07-16 13:41:149import("./scripts/build/ninja/vars.gni")
Tim van der Lippedc470c32021-02-03 14:49:4210import("./third_party/blink/public/public_features.gni")
Philip Pfaffede75afa2024-02-29 17:36:3811import("./third_party/typescript/typescript.gni")
Tim van der Lippebc42a632019-11-28 14:22:5512
Tim van der Lippebc42a632019-11-28 14:22:5513#-------------------------------------------------------------------------------
14
Tim van der Lippe501473c2020-05-19 15:01:5215devtools_frontend_resources_deps = [
Tim van der Lippe501473c2020-05-19 15:01:5216 "front_end",
Tim van der Lippe7ebe48c2020-07-13 12:27:1517 "test",
Tim van der Lippe39fc2542020-02-28 09:38:0218]
Tim van der Lippe3bf1c192020-01-22 11:45:1319
Tim van der Lippe7ebe48c2020-07-13 12:27:1520group("devtools_all_files") {
21 testonly = true
Tim van der Lippe8fb415e2021-12-16 10:56:1422 data = [
Tim van der Lippe7ebe48c2020-07-13 12:27:1523 # This enables us to test bots with whitespace changes.
24 "scripts/whitespaces.txt",
25 ]
26 data_deps = devtools_frontend_resources_deps
Tim van der Lippe677a98d2021-01-08 15:47:5327
Tim van der Lippee622f552021-04-14 14:15:1828 public_deps = [ "front_end/ui/components/docs" ]
Tim van der Lippe1a0338a2020-02-21 14:44:4929}
30
Tim van der Lippebc42a632019-11-28 14:22:5531group("devtools_frontend_resources") {
32 public_deps = devtools_frontend_resources_deps
Tim van der Lippedcc95c92022-01-17 12:14:0633 deps = [
34 ":assert_grd",
35 ":assert_third_party_readmes",
Philip Pfaffede75afa2024-02-29 17:36:3836 ":frontend_indexer_tsconfig",
Tim van der Lippedcc95c92022-01-17 12:14:0637 ]
Tim van der Lippebc42a632019-11-28 14:22:5538}
39
Alex Rudenkof0d02a12020-05-28 12:59:0440group("generate_devtools_inspector_overlay_resources") {
Alex Rudenko0e8d7f42020-09-07 07:14:4741 public_deps = [ "inspector_overlay:build_inspector_overlay" ]
Alex Rudenko7bf4d032020-05-13 15:45:0242}
43
Tim van der Lippe0d8ffe32021-04-22 11:10:2444action("assert_grd") {
45 script = "scripts/build/assert_grd.py"
46
47 deps = [
48 ":expected_grd_files",
49 ":input_grd_files",
50 ]
51
52 inputs = [
53 "$target_gen_dir/expected_grd_files.json",
54 "$target_gen_dir/input_grd_files.json",
55 ]
56
57 args = [
58 rebase_path("$target_gen_dir/expected_grd_files.json", root_build_dir),
59 rebase_path("$target_gen_dir/input_grd_files.json", root_build_dir),
60 rebase_path("$target_gen_dir/assert_grd.stamp", root_build_dir),
61 ]
62
63 outputs = [ "$target_gen_dir/assert_grd.stamp" ]
64}
65
Tim van der Lippedcc95c92022-01-17 12:14:0666action("assert_third_party_readmes") {
67 script = "scripts/build/assert_third_party_readmes.py"
68
69 deps = [ ":expected_grd_files" ]
70
71 inputs = [
72 "$target_gen_dir/expected_grd_files.json",
73 "front_end/third_party/additional_readme_paths.json",
74 ]
75
76 args = [
77 rebase_path("$target_gen_dir/expected_grd_files.json", root_build_dir),
78 rebase_path("front_end/third_party/additional_readme_paths.json",
79 root_build_dir),
80 rebase_path("$target_gen_dir/assert_third_party_readmes.stamp",
81 root_build_dir),
82 ]
83
84 outputs = [ "$target_gen_dir/assert_third_party_readmes.stamp" ]
85}
86
Tim van der Lippe3edd9d72021-04-22 11:12:5787_expected_grd_files = []
88_expected_grd_files += grd_files_release_sources
89if (is_debug) {
90 _expected_grd_files += grd_files_debug_sources
91}
92
Tim van der Lippe0d8ffe32021-04-22 11:10:2493generated_file("expected_grd_files") {
94 outputs = [ "$target_gen_dir/expected_grd_files.json" ]
95
Tim van der Lippe3edd9d72021-04-22 11:12:5796 contents = _expected_grd_files
Tim van der Lippe0d8ffe32021-04-22 11:10:2497
98 output_conversion = "json"
99}
100
101generated_file("input_grd_files") {
102 outputs = [ "$target_gen_dir/input_grd_files.json" ]
103
104 data_keys = [ "grd_files" ]
105
106 output_conversion = "json"
Tim van der Lippef48d7382021-04-22 13:12:30107 rebase = target_gen_dir
Tim van der Lippe0d8ffe32021-04-22 11:10:24108
Tim van der Lippefd742ce2021-12-01 16:28:23109 deps = [ "front_end" ]
Tim van der Lippe0d8ffe32021-04-22 11:10:24110}
111
Alex Rudenko8505e322021-05-25 06:01:17112_compressable_grd_files = filter_include(_expected_grd_files,
113 [
114 "*.css",
115 "*.html",
116 "*.js",
117 "*.svg",
118 "*.json",
Alex Rudenko7c94b5f2021-05-25 12:27:51119 "*.md",
Alex Rudenko8505e322021-05-25 06:01:17120 ])
121
122if (!is_debug) {
123 node_action("compress") {
124 script = "scripts/build/compress_files.js"
125 public_deps = [ ":devtools_frontend_resources" ]
126
127 sources = []
128 foreach(_grd_file, _compressable_grd_files) {
129 sources += [ "$target_gen_dir/$_grd_file" ]
130 }
131
132 response_file_contents = rebase_path(sources, root_build_dir)
133
134 outputs = []
135 foreach(_grd_file, _compressable_grd_files) {
136 outputs += [
137 "$target_gen_dir/$_grd_file.compressed",
138 "$target_gen_dir/$_grd_file.hash",
139 ]
140 }
141
142 args = [
143 "--file_list",
144 "{{response_file_name}}",
145 ]
146 }
147} else {
148 not_needed([ "_compressable_grd_files" ])
149}
150
Tim van der Lippebc42a632019-11-28 14:22:55151action("generate_devtools_grd") {
152 script = "scripts/build/generate_devtools_grd.py"
153
Tim van der Lippe0fa20642021-04-23 15:26:04154 response_file_contents = rebase_path(_expected_grd_files, "front_end")
Tim van der Lippeb4ab8da2021-04-23 09:23:34155 outfile = "$target_gen_dir/front_end/devtools_resources.grd"
Tim van der Lippeada1b592021-04-23 15:20:49156 outputs = [ outfile ]
Blink Reformat4c46d092018-04-07 15:32:37157
Tim van der Lippee2fbfea2020-01-09 13:53:50158 args = [
Tim van der Lippe0fa20642021-04-23 15:26:04159 "--file_list",
160 "{{response_file_name}}",
161 "--output",
162 rebase_path(outfile, root_build_dir),
163 ]
Alex Rudenko8505e322021-05-25 06:01:17164
165 inputs = []
166
167 if (is_debug) {
168 deps = [ ":devtools_frontend_resources" ]
169 foreach(_grd_file, _expected_grd_files) {
170 inputs += [ "$target_gen_dir/$_grd_file" ]
171 }
172 } else {
173 deps = [ ":compress" ]
174 foreach(_grd_file, _expected_grd_files) {
175 inputs += [ "$target_gen_dir/$_grd_file" ]
176 }
177 foreach(_grd_file, _compressable_grd_files) {
178 inputs += [ "$target_gen_dir/$_grd_file.compressed" ]
179 }
180
Bruce Dawson42395302021-01-26 08:57:36181 # Compression is slow, particularly in debug builds, so only compress in
182 # non-debug builds.
183 args += [ "--compress" ]
184 }
Tim van der Lippebc42a632019-11-28 14:22:55185}
Philip Pfaffede75afa2024-02-29 17:36:38186
187generated_file("indexer_ts_files") {
188 outputs = [ "$root_build_dir/indexer_ts_files.txt" ]
189 data_keys = [ "typescript_files" ]
190
191 deps = [
192 "front_end",
193 "front_end:unittests",
194 ]
195}
196
197ts_library("frontend_indexer_tsconfig") {
198 tsconfigonly = true
199 sourceslist = "$root_build_dir/indexer_ts_files.txt"
200 public_deps = [ ":indexer_ts_files" ]
201}