blob: 134c536ac143df04d15f2a79148bf219ed32c32a [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")
Benedikt Meurere4802892024-08-07 09:29:598import("./scripts/build/ninja/copy.gni")
Alex Rudenko8505e322021-05-25 06:01:179import("./scripts/build/ninja/node.gni")
Tim van der Lippef6650492020-07-16 13:41:1410import("./scripts/build/ninja/vars.gni")
Simon Zünde20bdac2024-08-27 07:35:5311import("./scripts/build/typescript/typescript.gni")
Tim van der Lippedc470c32021-02-03 14:49:4212import("./third_party/blink/public/public_features.gni")
Tim van der Lippebc42a632019-11-28 14:22:5513
Tim van der Lippebc42a632019-11-28 14:22:5514#-------------------------------------------------------------------------------
15
Tim van der Lippe501473c2020-05-19 15:01:5216devtools_frontend_resources_deps = [
Benedikt Meurere4802892024-08-07 09:29:5917 ":favicon",
Tim van der Lippe501473c2020-05-19 15:01:5218 "front_end",
Tim van der Lippe7ebe48c2020-07-13 12:27:1519 "test",
Tim van der Lippe39fc2542020-02-28 09:38:0220]
Tim van der Lippe3bf1c192020-01-22 11:45:1321
Tim van der Lippe7ebe48c2020-07-13 12:27:1522group("devtools_all_files") {
23 testonly = true
Tim van der Lippe8fb415e2021-12-16 10:56:1424 data = [
Tim van der Lippe7ebe48c2020-07-13 12:27:1525 # This enables us to test bots with whitespace changes.
26 "scripts/whitespaces.txt",
27 ]
28 data_deps = devtools_frontend_resources_deps
Tim van der Lippe677a98d2021-01-08 15:47:5329
Tim van der Lippee622f552021-04-14 14:15:1830 public_deps = [ "front_end/ui/components/docs" ]
Tim van der Lippe1a0338a2020-02-21 14:44:4931}
32
Tim van der Lippebc42a632019-11-28 14:22:5533group("devtools_frontend_resources") {
34 public_deps = devtools_frontend_resources_deps
Tim van der Lippedcc95c92022-01-17 12:14:0635 deps = [
36 ":assert_grd",
37 ":assert_third_party_readmes",
Philip Pfaffede75afa2024-02-29 17:36:3838 ":frontend_indexer_tsconfig",
Tim van der Lippedcc95c92022-01-17 12:14:0639 ]
Tim van der Lippebc42a632019-11-28 14:22:5540}
41
Alex Rudenkof0d02a12020-05-28 12:59:0442group("generate_devtools_inspector_overlay_resources") {
Alex Rudenko0e8d7f42020-09-07 07:14:4743 public_deps = [ "inspector_overlay:build_inspector_overlay" ]
Alex Rudenko7bf4d032020-05-13 15:45:0244}
45
Tim van der Lippe0d8ffe32021-04-22 11:10:2446action("assert_grd") {
47 script = "scripts/build/assert_grd.py"
48
49 deps = [
50 ":expected_grd_files",
51 ":input_grd_files",
52 ]
53
54 inputs = [
55 "$target_gen_dir/expected_grd_files.json",
56 "$target_gen_dir/input_grd_files.json",
57 ]
58
59 args = [
60 rebase_path("$target_gen_dir/expected_grd_files.json", root_build_dir),
61 rebase_path("$target_gen_dir/input_grd_files.json", root_build_dir),
62 rebase_path("$target_gen_dir/assert_grd.stamp", root_build_dir),
63 ]
64
65 outputs = [ "$target_gen_dir/assert_grd.stamp" ]
66}
67
Tim van der Lippedcc95c92022-01-17 12:14:0668action("assert_third_party_readmes") {
69 script = "scripts/build/assert_third_party_readmes.py"
70
71 deps = [ ":expected_grd_files" ]
72
73 inputs = [
74 "$target_gen_dir/expected_grd_files.json",
75 "front_end/third_party/additional_readme_paths.json",
76 ]
77
78 args = [
79 rebase_path("$target_gen_dir/expected_grd_files.json", root_build_dir),
80 rebase_path("front_end/third_party/additional_readme_paths.json",
81 root_build_dir),
82 rebase_path("$target_gen_dir/assert_third_party_readmes.stamp",
83 root_build_dir),
84 ]
85
86 outputs = [ "$target_gen_dir/assert_third_party_readmes.stamp" ]
87}
88
Tim van der Lippe3edd9d72021-04-22 11:12:5789_expected_grd_files = []
90_expected_grd_files += grd_files_release_sources
91if (is_debug) {
92 _expected_grd_files += grd_files_debug_sources
93}
94
Tim van der Lippe0d8ffe32021-04-22 11:10:2495generated_file("expected_grd_files") {
96 outputs = [ "$target_gen_dir/expected_grd_files.json" ]
97
Tim van der Lippe3edd9d72021-04-22 11:12:5798 contents = _expected_grd_files
Tim van der Lippe0d8ffe32021-04-22 11:10:2499
100 output_conversion = "json"
101}
102
103generated_file("input_grd_files") {
104 outputs = [ "$target_gen_dir/input_grd_files.json" ]
105
106 data_keys = [ "grd_files" ]
107
108 output_conversion = "json"
Tim van der Lippef48d7382021-04-22 13:12:30109 rebase = target_gen_dir
Tim van der Lippe0d8ffe32021-04-22 11:10:24110
Tim van der Lippefd742ce2021-12-01 16:28:23111 deps = [ "front_end" ]
Tim van der Lippe0d8ffe32021-04-22 11:10:24112}
113
Alex Rudenko8505e322021-05-25 06:01:17114_compressable_grd_files = filter_include(_expected_grd_files,
115 [
116 "*.css",
117 "*.html",
118 "*.js",
119 "*.svg",
120 "*.json",
Alex Rudenko7c94b5f2021-05-25 12:27:51121 "*.md",
Alex Rudenko8505e322021-05-25 06:01:17122 ])
123
124if (!is_debug) {
125 node_action("compress") {
126 script = "scripts/build/compress_files.js"
127 public_deps = [ ":devtools_frontend_resources" ]
128
129 sources = []
130 foreach(_grd_file, _compressable_grd_files) {
131 sources += [ "$target_gen_dir/$_grd_file" ]
132 }
133
134 response_file_contents = rebase_path(sources, root_build_dir)
135
136 outputs = []
137 foreach(_grd_file, _compressable_grd_files) {
138 outputs += [
139 "$target_gen_dir/$_grd_file.compressed",
140 "$target_gen_dir/$_grd_file.hash",
141 ]
142 }
143
144 args = [
145 "--file_list",
146 "{{response_file_name}}",
147 ]
148 }
149} else {
150 not_needed([ "_compressable_grd_files" ])
151}
152
Tim van der Lippebc42a632019-11-28 14:22:55153action("generate_devtools_grd") {
154 script = "scripts/build/generate_devtools_grd.py"
155
Tim van der Lippe0fa20642021-04-23 15:26:04156 response_file_contents = rebase_path(_expected_grd_files, "front_end")
Tim van der Lippeb4ab8da2021-04-23 09:23:34157 outfile = "$target_gen_dir/front_end/devtools_resources.grd"
Tim van der Lippeada1b592021-04-23 15:20:49158 outputs = [ outfile ]
Blink Reformat4c46d092018-04-07 15:32:37159
Tim van der Lippee2fbfea2020-01-09 13:53:50160 args = [
Tim van der Lippe0fa20642021-04-23 15:26:04161 "--file_list",
162 "{{response_file_name}}",
163 "--output",
164 rebase_path(outfile, root_build_dir),
165 ]
Alex Rudenko8505e322021-05-25 06:01:17166
167 inputs = []
168
169 if (is_debug) {
170 deps = [ ":devtools_frontend_resources" ]
171 foreach(_grd_file, _expected_grd_files) {
172 inputs += [ "$target_gen_dir/$_grd_file" ]
173 }
174 } else {
175 deps = [ ":compress" ]
176 foreach(_grd_file, _expected_grd_files) {
177 inputs += [ "$target_gen_dir/$_grd_file" ]
178 }
179 foreach(_grd_file, _compressable_grd_files) {
180 inputs += [ "$target_gen_dir/$_grd_file.compressed" ]
181 }
182
Bruce Dawson42395302021-01-26 08:57:36183 # Compression is slow, particularly in debug builds, so only compress in
184 # non-debug builds.
185 args += [ "--compress" ]
186 }
Tim van der Lippebc42a632019-11-28 14:22:55187}
Philip Pfaffede75afa2024-02-29 17:36:38188
189generated_file("indexer_ts_files") {
190 outputs = [ "$root_build_dir/indexer_ts_files.txt" ]
191 data_keys = [ "typescript_files" ]
192
193 deps = [
194 "front_end",
195 "front_end:unittests",
196 ]
197}
198
199ts_library("frontend_indexer_tsconfig") {
200 tsconfigonly = true
201 sourceslist = "$root_build_dir/indexer_ts_files.txt"
202 public_deps = [ ":indexer_ts_files" ]
203}
Benedikt Meurere4802892024-08-07 09:29:59204
205copy_to_gen("favicon") {
206 sources = [ "favicon.ico" ]
207}