🌐 AI搜索 & 代理 主页
blob: 23d54037b2a76fa642fa1f9f384de0655ba7481b [file] [log] [blame]
Zachary Anderson7e1b7e52016-09-23 14:47:361# Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2# for details. All rights reserved. Use of this source code is governed by a
3# BSD-style license that can be found in the LICENSE file.
4
Jake Ehrlich773f8d52019-07-30 20:34:315import("build/config/gclient_args.gni")
Nicholas Shahan50d972b2019-10-09 23:24:216import("sdk_args.gni")
Zachary Andersona99cdab2017-11-02 19:02:187
Josh Soreff7a2ea52023-01-24 18:00:258targeting_fuchsia = target_os == "fuchsia"
James Robinson138d5872018-01-18 06:05:569
Zachary Anderson7e1b7e52016-09-23 14:47:3610# This target will be built if no target is specified when invoking ninja.
11group("default") {
Josh Soreff7a2ea52023-01-24 18:00:2512 if (targeting_fuchsia) {
Zachary Anderson7f55ad82016-12-13 21:02:5213 # Fuchsia has run_vm_tests marked testonly.
14 testonly = true
15 }
asivae33d0232020-03-10 21:56:1116 deps = [ ":runtime" ]
Zachary Anderson7e1b7e52016-09-23 14:47:3617}
18
Zachary Anderson7c784ce2016-09-29 20:23:0019group("most") {
lambdabaad3fbbf82019-07-31 12:54:5220 import("runtime/runtime_args.gni")
Josh Soreff7a2ea52023-01-24 18:00:2521 if (targeting_fuchsia) {
Zachary Anderson7f55ad82016-12-13 21:02:5222 # Fuchsia has run_vm_tests marked testonly.
23 testonly = true
24 }
Zachary Anderson7c784ce2016-09-29 20:23:0025 deps = [
Alexander Thomasf38081d2021-03-19 12:03:4826 ":analysis_server",
Zachary Anderson7c784ce2016-09-29 20:23:0027 ":create_sdk",
28 ":dart2js",
29 ":dartanalyzer",
Nicholas Shahan3a65ac92023-08-29 21:33:4830 ":ddc",
Zachary Anderson7c784ce2016-09-29 20:23:0031 ":runtime",
Zachary Anderson7c784ce2016-09-29 20:23:0032 ]
Zachary Anderson7c784ce2016-09-29 20:23:0033}
34
Zachary Anderson7e1b7e52016-09-23 14:47:3635group("runtime") {
asivabc7220a2018-06-18 22:31:3236 import("runtime/runtime_args.gni")
37
Josh Soreff7a2ea52023-01-24 18:00:2538 if (targeting_fuchsia) {
Zachary Anderson7f55ad82016-12-13 21:02:5239 # Fuchsia has run_vm_tests marked testonly.
40 testonly = true
41 }
Chris Evans23b1f382022-03-09 14:17:4442
Zachary Anderson7e1b7e52016-09-23 14:47:3643 deps = [
Zachary Anderson7c784ce2016-09-29 20:23:0044 "runtime/bin:dart",
Vyacheslav Egorovbda70c82021-09-02 14:14:3545 "runtime/bin:entrypoints_verification_test",
Alexander Aprelev34087a62019-09-27 21:14:1146 "runtime/bin:ffi_test_dynamic_library",
47 "runtime/bin:ffi_test_functions",
Zachary Anderson7c784ce2016-09-29 20:23:0048 "runtime/bin:process_test",
Zachary Andersonc1313a52016-10-26 15:50:5449 "runtime/bin:run_vm_tests",
Zachary Anderson02eebb02017-11-01 21:13:2850 "runtime/vm:kernel_platform_files($host_toolchain)",
Liam Appelbebaaf5e12023-09-28 22:41:4251 "samples/ffi/http:fake_http",
Derek Xu7f826672023-08-25 16:02:2852 "utils/dartdev:dartdev",
Ryan Macnak9eb216a2017-01-31 17:47:5153 "utils/kernel-service:kernel-service",
Zachary Anderson7c784ce2016-09-29 20:23:0054 ]
Ben Konyi48aa0202020-05-05 22:27:0955
Chris Evans0b8ab172023-01-24 14:07:2656 # This flag is set in runtime/runtime_args.gni
57 # The analyze_snapshot tool is only supported on 64 bit AOT builds running
58 # under linux and android platforms
59 if (build_analyze_snapshot) {
Martin Kustermannb15da0b2023-01-27 12:44:3060 deps += [
61 # The `analyze_snapshot` tests require the `analyze_snapshot` as well as
62 # `gen_snapshot` binaries.
63 "runtime/bin:analyze_snapshot",
64 "runtime/bin:analyze_snapshot($host_toolchain)",
65 "runtime/bin:gen_snapshot",
66 "runtime/bin:gen_snapshot($host_toolchain)",
67 ]
Chris Evans23b1f382022-03-09 14:17:4468 }
69
Zach Anderson5dc1f8d2021-05-27 21:50:2470 if (is_linux || is_android) {
71 deps += [ "runtime/bin:abstract_socket_test" ]
Ryan Macnak573fad42023-10-31 17:11:5172 } else if (is_fuchsia) {
73 deps += [ ":fuchsia_test_package" ]
Zach Anderson5dc1f8d2021-05-27 21:50:2474 }
Zachary Anderson7c784ce2016-09-29 20:23:0075}
76
Daco Harkes9f96aed2020-11-16 16:10:5577# A separate target and not included in group("runtime"). This way the target\
78# "runtime" does not get many executables extra as build output.
79group("run_ffi_unit_tests") {
80 deps = [ "runtime/bin/ffi_unit_test:run_ffi_unit_tests" ]
81}
82
Zachary Anderson7c784ce2016-09-29 20:23:0083group("runtime_precompiled") {
84 deps = [
Zachary Andersonc1313a52016-10-26 15:50:5485 "runtime/bin:dart_precompiled_runtime",
Florian Schneiderc7aba7d2017-01-10 00:58:0986 "runtime/bin:process_test",
Zachary Anderson7c784ce2016-09-29 20:23:0087 ]
Zach Anderson5dc1f8d2021-05-27 21:50:2488 if (is_linux || is_android) {
89 deps += [ "runtime/bin:abstract_socket_test" ]
90 }
Zachary Anderson7c784ce2016-09-29 20:23:0091}
92
Leaf Petersend44457f2020-06-16 23:37:3693group("create_sdk") {
94 public_deps = [ "sdk:create_sdk" ]
Robert Nystrom6d867792019-09-25 00:43:1395}
96
Leaf Petersend44457f2020-06-16 23:37:3697group("create_platform_sdk") {
98 public_deps = [ "sdk:create_platform_sdk" ]
Ben Konyi1960d212020-05-12 23:37:1999}
100
Zachary Anderson7c784ce2016-09-29 20:23:00101group("dart2js") {
asivae33d0232020-03-10 21:56:11102 deps = [ "utils/compiler:dart2js" ]
Zachary Anderson7c784ce2016-09-29 20:23:00103}
104
Joshua Littfd39eab2022-10-05 11:55:22105group("dart2wasm_platform") {
Aske Simon Christensen6c760422022-05-10 10:06:06106 deps = [
107 ":runtime_precompiled",
Joshua Litt9e37c2b2023-07-18 19:34:38108 "utils/dart2wasm:compile_dart2wasm_js_compatibility_platform",
Aske Simon Christensen6c760422022-05-10 10:06:06109 "utils/dart2wasm:compile_dart2wasm_platform",
Aske Simon Christensen6c760422022-05-10 10:06:06110 "utils/dart2wasm:dart2wasm_snapshot",
Joshua Littfd39eab2022-10-05 11:55:22111 ]
Joshua Litt1ed2a072022-10-26 17:04:17112 if (defined(is_product)) {
113 if (is_product) {
114 deps += [ "utils/dart2wasm:dart2wasm_product_snapshot" ]
115 } else {
116 deps += [ "utils/dart2wasm:dart2wasm_asserts_snapshot" ]
117 }
Ryan Macnak8d604952022-10-10 19:14:58118 }
Joshua Littfd39eab2022-10-05 11:55:22119}
120
121group("dart2wasm") {
122 deps = [
123 ":dart2wasm_platform",
Ömer Sinan Ağacanaffc3392022-09-23 09:41:22124 "utils/dart2wasm:test_wasm_modules",
Aske Simon Christensen6c760422022-05-10 10:06:06125 ]
126}
127
Martin Kustermann0fdeaee2022-11-18 10:58:54128group("dart2wasm_benchmark") {
129 deps = [
130 ":dart2wasm_platform",
131 "third_party/binaryen:wasm-opt",
132 ]
133}
134
Zachary Anderson7c784ce2016-09-29 20:23:00135group("dartanalyzer") {
asivae33d0232020-03-10 21:56:11136 deps = [ "utils/dartanalyzer" ]
Zachary Anderson7c784ce2016-09-29 20:23:00137}
138
Nicholas Shahanf4e94962023-07-25 00:19:52139group("ddc") {
Nicholas Shahan3a65ac92023-08-29 21:33:48140 deps = [ "utils/ddc:dartdevc" ]
Nicholas Shahanf4e94962023-07-25 00:19:52141}
142
Zachary Anderson7c784ce2016-09-29 20:23:00143group("analysis_server") {
asivae33d0232020-03-10 21:56:11144 deps = [ "utils/analysis_server" ]
Zachary Anderson7c784ce2016-09-29 20:23:00145}
146
Zachary Anderson7c784ce2016-09-29 20:23:00147# This is the target that is built on the dart2js build bots.
148# It must depend on anything that is required by the dart2js
149# test suites.
150group("dart2js_bot") {
asivae33d0232020-03-10 21:56:11151 deps = [ ":create_sdk" ]
Zachary Anderson7c784ce2016-09-29 20:23:00152}
153
Zach Anderson9847c062018-06-04 21:35:39154# This rule and the compressed_observatory_archive rule are for the Fuchsia
155# bots that pre-build the Observatory. They copy the observatory tar files to
156# the root build output directory for convenient access by the Fuchsia buildbot
157# scripts.
Zach Anderson736ddd92018-05-29 16:35:34158group("observatory_archive") {
asivae33d0232020-03-10 21:56:11159 deps = [ "runtime/observatory:copy_observatory_archive" ]
Zach Anderson9847c062018-06-04 21:35:39160}
161
162group("compressed_observatory_archive") {
asivae33d0232020-03-10 21:56:11163 deps = [ "runtime/observatory:copy_compressed_observatory_archive" ]
Zach Anderson736ddd92018-05-29 16:35:34164}
Liam Appelbe089d6fc2020-07-10 18:10:05165
166if (is_fuchsia) {
Zijie He690b2ef2023-11-13 21:24:08167 import("third_party/fuchsia/gn-sdk/src/component.gni")
168 import("third_party/fuchsia/gn-sdk/src/package.gni")
Liam Appelbe089d6fc2020-07-10 18:10:05169
Ryan Macnak573fad42023-10-31 17:11:51170 test_binaries = [
171 "dart",
172 "dart_precompiled_runtime",
173 "run_vm_tests",
174 ]
Liam Appelbe6fc75e62020-07-15 20:44:06175
Ryan Macnak573fad42023-10-31 17:11:51176 foreach(binary, test_binaries) {
177 fuchsia_component("${binary}_test_component") {
Daco Harkes550d5802020-12-10 12:15:17178 testonly = true
Ryan Macnak573fad42023-10-31 17:11:51179 manifest = "runtime/bin/${binary}_test_component.cml"
180 data_deps = [
181 "runtime/bin:${binary}",
182 "runtime/bin:ffi_test_dynamic_library",
183 "runtime/bin:ffi_test_functions",
184 ]
185 library_files = [
186 "libffi_test_dynamic_library.so",
187 "libffi_test_functions.so",
188 ]
Daco Harkes550d5802020-12-10 12:15:17189 resource_files = [
190 ".dart_tool/package_config.json",
191 "pkg/testing/test/hello_test.dart",
192 "tools/addlatexhash.dart",
193 ]
Ryan Macnak573fad42023-10-31 17:11:51194 resource_dirs = [
195 "pkg/async_helper",
196 "pkg/expect",
197 "pkg/meta",
198 "tests/ffi",
199 "third_party/pkg/ffi",
200 "third_party/pkg/path",
201 ]
Daco Harkes550d5802020-12-10 12:15:17202 resources = []
203 foreach(file, library_files) {
204 resources += [
205 {
206 path = root_out_dir + "/" + file
207 dest = "lib/" + file
208 },
209 ]
210 }
211 foreach(file, resource_files) {
212 resources += [
213 {
214 path = file
215 dest = "data/" + file
216 },
217 ]
218 }
219 resources +=
220 exec_script("tools/fuchsia/find_resources.py", resource_dirs, "json")
221 }
222 }
223
Ryan Macnak573fad42023-10-31 17:11:51224 fuchsia_package("fuchsia_test_package") {
225 testonly = true
226 if (is_debug) {
227 package_name = "dart_test_debug"
228 } else if (is_release) {
229 package_name = "dart_test_release"
230 } else if (is_product) {
231 package_name = "dart_test_product"
232 }
233 deps = []
234 foreach(binary, test_binaries) {
235 deps += [ ":${binary}_test_component" ]
236 }
Daco Harkes550d5802020-12-10 12:15:17237 }
Liam Appelbe089d6fc2020-07-10 18:10:05238}