• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2022 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//arkcompiler/ets_frontend/es2panda/es2abc_config.gni")
15import("//arkcompiler/ets_frontend/ets_frontend_config.gni")
16import("//arkcompiler/runtime_core/ark_config.gni")
17
18es2panda_src = [
19  "es2panda.cpp",
20  "binder/binder.cpp",
21  "binder/declaration.cpp",
22  "binder/scope.cpp",
23  "binder/variable.cpp",
24  "compiler/base/catchTable.cpp",
25  "compiler/base/condition.cpp",
26  "compiler/base/destructuring.cpp",
27  "compiler/base/hoisting.cpp",
28  "compiler/base/iterators.cpp",
29  "compiler/base/lexenv.cpp",
30  "compiler/base/literals.cpp",
31  "compiler/base/lreference.cpp",
32  "compiler/base/optionalChain.cpp",
33  "compiler/core/compileQueue.cpp",
34  "compiler/core/compilerContext.cpp",
35  "compiler/core/compilerImpl.cpp",
36  "compiler/core/dynamicContext.cpp",
37  "compiler/core/emitter/commonjs.cpp",
38  "compiler/core/emitter/emitter.cpp",
39  "compiler/core/emitter/moduleRecordEmitter.cpp",
40  "compiler/core/emitter/typeExtractorEmitter.cpp",
41  "compiler/core/envScope.cpp",
42  "compiler/core/function.cpp",
43  "compiler/core/inlineCache.cpp",
44  "compiler/core/labelTarget.cpp",
45  "compiler/core/pandagen.cpp",
46  "compiler/core/regAllocator.cpp",
47  "compiler/core/regScope.cpp",
48  "compiler/core/switchBuilder.cpp",
49  "compiler/debugger/debuginfoDumper.cpp",
50  "compiler/function/asyncFunctionBuilder.cpp",
51  "compiler/function/asyncGeneratorFunctionBuilder.cpp",
52  "compiler/function/functionBuilder.cpp",
53  "compiler/function/generatorFunctionBuilder.cpp",
54  "ir/astDump.cpp",
55  "ir/base/catchClause.cpp",
56  "ir/base/classDefinition.cpp",
57  "ir/base/classProperty.cpp",
58  "ir/base/decorator.cpp",
59  "ir/base/metaProperty.cpp",
60  "ir/base/methodDefinition.cpp",
61  "ir/base/property.cpp",
62  "ir/base/scriptFunction.cpp",
63  "ir/base/spreadElement.cpp",
64  "ir/base/templateElement.cpp",
65  "ir/expression.cpp",
66  "ir/expressions/arrayExpression.cpp",
67  "ir/expressions/arrowFunctionExpression.cpp",
68  "ir/expressions/assignmentExpression.cpp",
69  "ir/expressions/awaitExpression.cpp",
70  "ir/expressions/binaryExpression.cpp",
71  "ir/expressions/callExpression.cpp",
72  "ir/expressions/chainExpression.cpp",
73  "ir/expressions/classExpression.cpp",
74  "ir/expressions/conditionalExpression.cpp",
75  "ir/expressions/functionExpression.cpp",
76  "ir/expressions/identifier.cpp",
77  "ir/expressions/importExpression.cpp",
78  "ir/expressions/literal.cpp",
79  "ir/expressions/literals/bigIntLiteral.cpp",
80  "ir/expressions/literals/booleanLiteral.cpp",
81  "ir/expressions/literals/nullLiteral.cpp",
82  "ir/expressions/literals/numberLiteral.cpp",
83  "ir/expressions/literals/regExpLiteral.cpp",
84  "ir/expressions/literals/stringLiteral.cpp",
85  "ir/expressions/literals/taggedLiteral.cpp",
86  "ir/expressions/memberExpression.cpp",
87  "ir/expressions/newExpression.cpp",
88  "ir/expressions/objectExpression.cpp",
89  "ir/expressions/omittedExpression.cpp",
90  "ir/expressions/sequenceExpression.cpp",
91  "ir/expressions/superExpression.cpp",
92  "ir/expressions/taggedTemplateExpression.cpp",
93  "ir/expressions/templateLiteral.cpp",
94  "ir/expressions/thisExpression.cpp",
95  "ir/expressions/unaryExpression.cpp",
96  "ir/expressions/updateExpression.cpp",
97  "ir/expressions/yieldExpression.cpp",
98  "ir/module/exportAllDeclaration.cpp",
99  "ir/module/exportDefaultDeclaration.cpp",
100  "ir/module/exportNamedDeclaration.cpp",
101  "ir/module/exportSpecifier.cpp",
102  "ir/module/importDeclaration.cpp",
103  "ir/module/importDefaultSpecifier.cpp",
104  "ir/module/importNamespaceSpecifier.cpp",
105  "ir/module/importSpecifier.cpp",
106  "ir/statement.cpp",
107  "ir/statements/blockStatement.cpp",
108  "ir/statements/breakStatement.cpp",
109  "ir/statements/classDeclaration.cpp",
110  "ir/statements/continueStatement.cpp",
111  "ir/statements/debuggerStatement.cpp",
112  "ir/statements/doWhileStatement.cpp",
113  "ir/statements/emptyStatement.cpp",
114  "ir/statements/expressionStatement.cpp",
115  "ir/statements/forInStatement.cpp",
116  "ir/statements/forOfStatement.cpp",
117  "ir/statements/forUpdateStatement.cpp",
118  "ir/statements/functionDeclaration.cpp",
119  "ir/statements/ifStatement.cpp",
120  "ir/statements/labelledStatement.cpp",
121  "ir/statements/loopStatement.cpp",
122  "ir/statements/returnStatement.cpp",
123  "ir/statements/switchCaseStatement.cpp",
124  "ir/statements/switchStatement.cpp",
125  "ir/statements/throwStatement.cpp",
126  "ir/statements/tryStatement.cpp",
127  "ir/statements/variableDeclaration.cpp",
128  "ir/statements/variableDeclarator.cpp",
129  "ir/statements/whileStatement.cpp",
130  "ir/ts/tsAnyKeyword.cpp",
131  "ir/ts/tsArrayType.cpp",
132  "ir/ts/tsAsExpression.cpp",
133  "ir/ts/tsBigintKeyword.cpp",
134  "ir/ts/tsBooleanKeyword.cpp",
135  "ir/ts/tsClassImplements.cpp",
136  "ir/ts/tsConditionalType.cpp",
137  "ir/ts/tsConstructorType.cpp",
138  "ir/ts/tsEnumDeclaration.cpp",
139  "ir/ts/tsEnumMember.cpp",
140  "ir/ts/tsExternalModuleReference.cpp",
141  "ir/ts/tsFunctionType.cpp",
142  "ir/ts/tsImportEqualsDeclaration.cpp",
143  "ir/ts/tsImportType.cpp",
144  "ir/ts/tsIndexSignature.cpp",
145  "ir/ts/tsIndexedAccessType.cpp",
146  "ir/ts/tsInferType.cpp",
147  "ir/ts/tsInterfaceBody.cpp",
148  "ir/ts/tsInterfaceDeclaration.cpp",
149  "ir/ts/tsInterfaceHeritage.cpp",
150  "ir/ts/tsIntersectionType.cpp",
151  "ir/ts/tsLiteralType.cpp",
152  "ir/ts/tsMappedType.cpp",
153  "ir/ts/tsMethodSignature.cpp",
154  "ir/ts/tsModuleBlock.cpp",
155  "ir/ts/tsModuleDeclaration.cpp",
156  "ir/ts/tsNamedTupleMember.cpp",
157  "ir/ts/tsNamespaceExportDeclaration.cpp",
158  "ir/ts/tsNeverKeyword.cpp",
159  "ir/ts/tsNonNullExpression.cpp",
160  "ir/ts/tsNullKeyword.cpp",
161  "ir/ts/tsNumberKeyword.cpp",
162  "ir/ts/tsObjectKeyword.cpp",
163  "ir/ts/tsOptionalType.cpp",
164  "ir/ts/tsParameterProperty.cpp",
165  "ir/ts/tsParenthesizedType.cpp",
166  "ir/ts/tsPrivateIdentifier.cpp",
167  "ir/ts/tsPropertySignature.cpp",
168  "ir/ts/tsQualifiedName.cpp",
169  "ir/ts/tsRestType.cpp",
170  "ir/ts/tsSignatureDeclaration.cpp",
171  "ir/ts/tsStringKeyword.cpp",
172  "ir/ts/tsSymbolKeyword.cpp",
173  "ir/ts/tsTemplateLiteralType.cpp",
174  "ir/ts/tsThisType.cpp",
175  "ir/ts/tsTupleType.cpp",
176  "ir/ts/tsTypeAliasDeclaration.cpp",
177  "ir/ts/tsTypeAssertion.cpp",
178  "ir/ts/tsTypeLiteral.cpp",
179  "ir/ts/tsTypeOperator.cpp",
180  "ir/ts/tsTypeParameter.cpp",
181  "ir/ts/tsTypeParameterDeclaration.cpp",
182  "ir/ts/tsTypeParameterInstantiation.cpp",
183  "ir/ts/tsTypePredicate.cpp",
184  "ir/ts/tsTypeQuery.cpp",
185  "ir/ts/tsTypeReference.cpp",
186  "ir/ts/tsUndefinedKeyword.cpp",
187  "ir/ts/tsUnionType.cpp",
188  "ir/ts/tsUnknownKeyword.cpp",
189  "ir/ts/tsVoidKeyword.cpp",
190  "lexer/keywordsUtil.cpp",
191  "lexer/lexer.cpp",
192  "lexer/regexp/regexp.cpp",
193  "lexer/token/sourceLocation.cpp",
194  "lexer/token/token.cpp",
195  "parser/commonjs.cpp",
196  "parser/context/parserContext.cpp",
197  "parser/expressionParser.cpp",
198  "parser/module/sourceTextModuleRecord.cpp",
199  "parser/parserImpl.cpp",
200  "parser/program/program.cpp",
201  "parser/statementParser.cpp",
202  "parser/transformer/transformer.cpp",
203  "typescript/checker.cpp",
204  "typescript/core/binaryLikeExpression.cpp",
205  "typescript/core/destructuringContext.cpp",
206  "typescript/core/function.cpp",
207  "typescript/core/helpers.cpp",
208  "typescript/core/object.cpp",
209  "typescript/core/typeCreation.cpp",
210  "typescript/core/typeElaborationContext.cpp",
211  "typescript/core/typeRelation.cpp",
212  "typescript/core/util.cpp",
213  "typescript/extractor/typeExtractor.cpp",
214  "typescript/extractor/typeRecorder.cpp",
215  "typescript/types/anyType.cpp",
216  "typescript/types/arrayType.cpp",
217  "typescript/types/bigintLiteralType.cpp",
218  "typescript/types/bigintType.cpp",
219  "typescript/types/booleanLiteralType.cpp",
220  "typescript/types/booleanType.cpp",
221  "typescript/types/constructorType.cpp",
222  "typescript/types/enumLiteralType.cpp",
223  "typescript/types/enumType.cpp",
224  "typescript/types/functionType.cpp",
225  "typescript/types/globalTypesHolder.cpp",
226  "typescript/types/indexInfo.cpp",
227  "typescript/types/interfaceType.cpp",
228  "typescript/types/neverType.cpp",
229  "typescript/types/nonPrimitiveType.cpp",
230  "typescript/types/nullType.cpp",
231  "typescript/types/numberLiteralType.cpp",
232  "typescript/types/numberType.cpp",
233  "typescript/types/objectDescriptor.cpp",
234  "typescript/types/objectLiteralType.cpp",
235  "typescript/types/objectType.cpp",
236  "typescript/types/signature.cpp",
237  "typescript/types/stringLiteralType.cpp",
238  "typescript/types/stringType.cpp",
239  "typescript/types/symbolType.cpp",
240  "typescript/types/tupleType.cpp",
241  "typescript/types/type.cpp",
242  "typescript/types/typeParameter.cpp",
243  "typescript/types/typeReference.cpp",
244  "typescript/types/typeRelation.cpp",
245  "typescript/types/undefinedType.cpp",
246  "typescript/types/unionType.cpp",
247  "typescript/types/unknownType.cpp",
248  "typescript/types/voidType.cpp",
249  "util/base64.cpp",
250  "util/bitset.cpp",
251  "util/concurrent.cpp",
252  "util/dumper.cpp",
253  "util/helpers.cpp",
254  "util/patchFix.cpp",
255  "util/moduleHelpers.cpp",
256  "util/symbolTable.cpp",
257  "util/ustring.cpp",
258  "util/workerQueue.cpp",
259]
260
261config("es2abc_config_src") {
262  include_dirs = [
263    "./",
264    "./binder",
265    "./util",
266    "./compiler/base",
267    "./compiler/core",
268    "./compiler/debugger",
269    "./compiler/function",
270    "./ir",
271    "./ir/base",
272    "./ir/expressions",
273    "./ir/module",
274    "./ir/statements",
275    "./ir/ts",
276    "./parser",
277    "./parser/context",
278    "./lexer",
279    "./lexer/token",
280    "./lexer/regexp",
281    "./typescript",
282    "./typescript/types",
283    "./typescript/types/extractor",
284  ]
285
286  cflags = [ "-fexceptions" ]
287}
288
289config("es2abc_config_common") {
290  configs = [
291    "$ark_root:ark_config",
292    "$sdk_libc_secshared_config",
293    "$ark_root/libpandafile:arkfile_public_config",
294    "$ark_root/libpandabase:arkbase_public_config",
295    "$ark_root/assembler:arkassembler_public_config",
296    ":es2abc_config_src",
297  ]
298
299  if (enable_bytecode_optimizer) {
300    defines = [ "ENABLE_BYTECODE_OPT" ]
301    configs += [
302      "$ark_root/compiler:arkcompiler_public_config",
303      "$ark_root/bytecode_optimizer:bytecodeopt_public_config",
304    ]
305  }
306}
307
308# generate headers for es2panda parser
309generated_header_dir = "${target_out_dir}/gen"
310action_foreach("gen_keywords_headers") {
311  template_files = [
312    "keywords.h.erb",
313    "keywordsMap.h.erb",
314  ]
315  keywords_templates_dir = "./lexer/templates"
316  keywords_generator = "./lexer/scripts/keywords.rb"
317
318  sources = []
319  foreach(file, template_files) {
320    sources += [ rebase_path("${keywords_templates_dir}/${file}") ]
321  }
322  outputs = [ "${generated_header_dir}/{{source_name_part}}" ]
323
324  script = "scripts/gen_keywords.sh"
325  inputs = [ "${keywords_generator}" ]
326  args = [
327    "-g",
328    rebase_path("${keywords_generator}"),
329    "-t",
330    "{{source}}",
331    "-o",
332    "{{source_name_part}}",
333    "-d",
334    rebase_path("${generated_header_dir}"),
335  ]
336}
337
338# generate headers for es2panda compiler
339isa_gen = "${ark_root}/isa/gen.rb"
340isa_gen_data = "$root_gen_dir/isa/isa.yaml"
341isa_gen_require = "${ark_root}/isa/isapi.rb"
342action_foreach("gen_isa_headers") {
343  deps = [ "//arkcompiler/runtime_core/isa:isa_combine" ]
344
345  template_files = [
346    "isa.h.erb",
347    "formats.h.erb",
348  ]
349  keywords_templates_dir = "./compiler/templates"
350
351  sources = []
352  foreach(file, template_files) {
353    sources += [ rebase_path("${keywords_templates_dir}/${file}") ]
354  }
355  outputs = [ "${generated_header_dir}/{{source_name_part}}" ]
356
357  script = "scripts/gen_isa.sh"
358  inputs = [
359    "${isa_gen}",
360    "${isa_gen_data}",
361    "${isa_gen_require}",
362  ]
363  args = [
364    "-g",
365    rebase_path("${isa_gen}"),
366    "-t",
367    "{{source}}",
368    "-a",
369    rebase_path("${isa_gen_data}"),
370    "-o",
371    "{{source_name_part}}",
372    "-d",
373    rebase_path("${generated_header_dir}"),
374    "-r",
375    rebase_path("${isa_gen_require}"),
376  ]
377}
378
379ohos_static_library("es2panda_lib") {
380  sources = es2panda_src
381  use_exceptions = true
382  if (is_mac && current_cpu == "arm64") {
383    use_rtti = true
384  }
385
386  configs = [
387    ":es2abc_config_common",
388    "../merge_abc:panda_assembly_proto_public_config",
389  ]
390
391  include_dirs = [
392    "${target_out_dir}",
393    "//third_party/icu/icu4c/source/common",
394    "//third_party/icu/icu4c/source/i18n",
395    "//third_party/icu/icu4c/source ",
396  ]
397
398  deps = [
399    ":gen_isa_headers",
400    ":gen_keywords_headers",
401    "$ark_third_party_root/icu/icu4c:static_icuuc",
402    "../merge_abc:panda_assembly_proto_static",
403  ]
404
405  external_deps = []
406  if (!is_cross_platform_build) {
407    external_deps += [
408      "runtime_core:libarkassembler_frontend_static",
409      "runtime_core:libarkbase_frontend_static",
410      "runtime_core:libarkfile_frontend_static",
411      "runtime_core:libarkziparchive_frontend_static",
412    ]
413
414    if (enable_bytecode_optimizer) {
415      external_deps += [
416        "runtime_core:libarkbytecodeopt_frontend_static",
417        "runtime_core:libarkcompiler_frontend_static",
418      ]
419    }
420  } else {
421    deps += [
422      "$ark_root/assembler:libarkassembler_frontend_static",
423      "$ark_root/libpandabase:libarkbase_frontend_static",
424      "$ark_root/libpandafile:libarkfile_frontend_static",
425      "$ark_root/libziparchive:libarkziparchive_frontend_static",
426    ]
427    if (enable_bytecode_optimizer) {
428      deps += [
429        "$ark_root/bytecode_optimizer:libarkbytecodeopt_frontend_static",
430        "$ark_root/compiler:libarkcompiler_frontend_static",
431      ]
432    }
433  }
434
435  cflags = [
436    "-Wno-c++20-designator",
437    "-Wno-implicit-fallthrough",
438  ]
439
440  part_name = "ets_frontend"
441  subsystem_name = "arkcompiler"
442}
443
444ohos_executable("es2panda") {
445  use_exceptions = true
446  if (is_mac && current_cpu == "arm64") {
447    use_rtti = true
448  }
449
450  sources = [
451    "aot/emitFiles.cpp",
452    "aot/main.cpp",
453    "aot/options.cpp",
454  ]
455
456  include_dirs = [ "./aot" ]
457
458  configs = [
459    ":es2abc_config_common",
460    "//arkcompiler/ets_frontend/merge_abc:panda_assembly_proto_public_config",
461  ]
462
463  deps = [
464    ":es2panda_lib",
465    "//arkcompiler/ets_frontend/merge_abc:panda_assembly_proto_static",
466  ]
467
468  ldflags = []
469  if (is_linux) {
470    if (build_public_version) {
471      ldflags += [ "-Wl,-Bstatic" ]
472      ldflags += [ "-lstdc++" ]
473      ldflags += [ "-Wl,-Bdynamic" ]
474    } else {
475      libs = [ libcpp_static_lib ]
476    }
477  }
478
479  output_name = "es2abc"
480  install_enable = false
481  part_name = "ets_frontend"
482  subsystem_name = "arkcompiler"
483}
484
485if (is_linux) {
486  ohos_copy("es2abc_build") {
487    deps = [ ":es2panda" ]
488    sources = [ "${root_out_dir}/arkcompiler/ets_frontend/es2abc" ]
489    outputs = [ "${target_out_dir}/es2abc-tmp" ]
490    module_source_dir = "${root_out_dir}/arkcompiler/ets_frontend"
491    module_install_name = "es2abc"
492  }
493
494  ohos_copy("es2abc_build_ets") {
495    deps = [ ":es2panda" ]
496    sources = [ "${root_out_dir}/arkcompiler/ets_frontend/es2abc" ]
497    outputs = [ "${root_out_dir}/arkcompiler/ets_frontend/es2abc-ets" ]
498    module_source_dir = "${root_out_dir}/arkcompiler/ets_frontend"
499    module_install_name = "es2abc"
500  }
501}
502
503if (is_mingw) {
504  ohos_copy("es2abc_build_win") {
505    deps = [ ":es2panda" ]
506    sources = [ "${root_out_dir}/arkcompiler/ets_frontend/es2abc.exe" ]
507    outputs = [ "${target_out_dir}/es2abc-tmp" ]
508    module_source_dir = "${root_out_dir}/arkcompiler/ets_frontend"
509    module_install_name = "es2abc.exe"
510  }
511
512  ohos_copy("es2abc_build_win_ets") {
513    deps = [ ":es2panda" ]
514    sources = [ "${root_out_dir}/arkcompiler/ets_frontend/es2abc.exe" ]
515    outputs = [ "${root_out_dir}/arkcompiler/ets_frontend/es2abc-win-ets" ]
516    module_source_dir = "${root_out_dir}/arkcompiler/ets_frontend"
517    module_install_name = "es2abc.exe"
518  }
519}
520
521if (is_mac) {
522  ohos_copy("es2abc_build_mac") {
523    deps = [ ":es2panda" ]
524    sources = [ "${root_out_dir}/arkcompiler/ets_frontend/es2abc" ]
525    outputs = [ "${target_out_dir}/es2abc-tmp" ]
526    module_source_dir = "${root_out_dir}/arkcompiler/ets_frontend"
527    module_install_name = "es2abc"
528  }
529
530  ohos_copy("es2abc_build_mac_ets") {
531    deps = [ ":es2panda" ]
532    sources = [ "${root_out_dir}/arkcompiler/ets_frontend/es2abc" ]
533    outputs = [ "${root_out_dir}/arkcompiler/ets_frontend/es2abc-mac-ets" ]
534    module_source_dir = "${root_out_dir}/arkcompiler/ets_frontend"
535    module_install_name = "es2abc"
536  }
537}
538
539if (is_linux) {
540  ohos_copy("build_es2abc_for_hap") {
541    deps = [ ":es2panda(${host_toolchain})" ]
542    es2abc_root_out_dir =
543        get_label_info(":es2panda_build($host_toolchain)", "root_out_dir")
544    es2abc_target_out_dir =
545        get_label_info(":es2panda_build($host_toolchain)", "target_out_dir")
546
547    sources = [ "${es2abc_root_out_dir}/arkcompiler/ets_frontend/es2abc" ]
548    outputs = [ "${es2abc_target_out_dir}/build/bin/es2abc" ]
549  }
550} else if (is_mac) {
551  ohos_copy("build_es2abc_for_hap") {
552    deps = [ ":es2panda(${host_toolchain})" ]
553    es2abc_root_out_dir =
554        get_label_info(":es2panda_build($host_toolchain)", "root_out_dir")
555    es2abc_target_out_dir =
556        get_label_info(":es2panda_build($host_toolchain)", "target_out_dir")
557
558    sources = [ "${es2abc_root_out_dir}/arkcompiler/ets_frontend/es2abc" ]
559    outputs = [ "${es2abc_target_out_dir}/build-mac/bin/es2abc" ]
560  }
561}
562
563ohos_copy("panda_es2abc") {
564  sources = [ "${es2abc_root}/scripts/ts2abc.js" ]
565
566  outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
567  module_source_dir = target_out_dir + "/$target_name/"
568  module_install_name = ""
569
570  part_name = "ets_frontend"
571  subsystem_name = "arkcompiler"
572}
573
574ohos_copy("panda_es2abc_ets") {
575  sources = [ "${es2abc_root}/scripts/ts2abc.js" ]
576  outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
577  module_source_dir = target_out_dir + "/$target_name/"
578  module_install_name = ""
579
580  part_name = "ets_frontend"
581  subsystem_name = "arkcompiler"
582}
583
584ohos_copy("es2abc_js_file") {
585  sources = [ "${es2abc_root}/scripts/ts2abc.js" ]
586  outputs = [ target_out_dir + "/{{source_file_part}}" ]
587
588  part_name = "ets_frontend"
589  subsystem_name = "arkcompiler"
590}
591
592group("es2panda_build") {
593  if (host_os == "linux") {
594    deps = [ ":es2panda(${toolchain_linux})" ]
595  }
596
597  if (host_os == "mac") {
598    deps = [ ":es2panda(${toolchain_mac})" ]
599  }
600}
601
602group("es2panda_build_win") {
603  deps = [ ":es2panda(${toolchain_win})" ]
604}
605
606group("es2abc_tests") {
607  deps = [ "./test:es2abc_base64_tests" ]
608  deps += [ "./test:es2abc_compiler_tests" ]
609  deps += [ "./test:es2abc_parser_tests" ]
610  deps += [ "./test:es2abc_parser_tsc_tests" ]
611  deps += [ "./test:es2abc_patch_tests" ]
612  deps += [ "./test:es2abc_bytecode_tests" ]
613  deps += [ "./test:es2abc_type_extractor_tests" ]
614}
615