• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2024 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/runtime_core/static_core/ark_config.gni")
15import("//build/ohos.gni")
16
17config("libes2panda_public_config") {
18  include_dirs = [
19    "$target_gen_dir",
20    "$target_gen_dir/include",
21    "$target_gen_dir/generated",
22    "$ark_third_party_root/icu/icu4c/source/common",
23    "$ark_third_party_root/icu/icu4c/source/i18n",
24    "$ark_third_party_root/icu/icu4c/source/",
25    "$ark_es2panda_root",
26  ]
27}
28
29libes2panda_sources = [
30  "ast_verifier/ASTVerifier.cpp",
31  "ast_verifier/arithmeticOperationValid.cpp",
32  "ast_verifier/checkContext.cpp",
33  "ast_verifier/checkInfiniteLoop.cpp",
34  "ast_verifier/everyChildHasValidParent.cpp",
35  "ast_verifier/everyChildInParentRange.cpp",
36  "ast_verifier/forLoopCorrectlyInitialized.cpp",
37  "ast_verifier/helpers.cpp",
38  "ast_verifier/identifierHasVariable.cpp",
39  "ast_verifier/importExportAccessValid.cpp",
40  "ast_verifier/modifierAccessValid.cpp",
41  "ast_verifier/nodeHasParent.cpp",
42  "ast_verifier/nodeHasSourceRange.cpp",
43  "ast_verifier/nodeHasType.cpp",
44  "ast_verifier/referenceTypeAnnotationIsNull.cpp",
45  "ast_verifier/sequenceExpressionHasLastType.cpp",
46  "ast_verifier/variableHasEnclosingScope.cpp",
47  "ast_verifier/variableHasScope.cpp",
48  "ast_verifier/variableNameIdentifierNameSame.cpp",
49  "checker/ASchecker.cpp",
50  "checker/ETSAnalyzer.cpp",
51  "checker/ETSAnalyzerHelpers.cpp",
52  "checker/ETSAnalyzerUnreachable.cpp",
53  "checker/ETSchecker.cpp",
54  "checker/JSchecker.cpp",
55  "checker/TSAnalyzer.cpp",
56  "checker/TSAnalyzerUnreachable.cpp",
57  "checker/TSchecker.cpp",
58  "checker/checker.cpp",
59  "checker/checkerContext.cpp",
60  "checker/ets/aliveAnalyzer.cpp",
61  "checker/ets/arithmetic.cpp",
62  "checker/ets/assignAnalyzer.cpp",
63  "checker/ets/baseAnalyzer.cpp",
64  "checker/ets/boxingConverter.cpp",
65  "checker/ets/castingContext.cpp",
66  "checker/ets/conversion.cpp",
67  "checker/ets/dynamic.cpp",
68  "checker/ets/dynamic/dynamicCall.cpp",
69  "checker/ets/etsWarningAnalyzer.cpp",
70  "checker/ets/function.cpp",
71  "checker/ets/helpers.cpp",
72  "checker/ets/narrowingConverter.cpp",
73  "checker/ets/narrowingWideningConverter.cpp",
74  "checker/ets/object.cpp",
75  "checker/ets/primitiveWrappers.cpp",
76  "checker/ets/typeCheckingHelpers.cpp",
77  "checker/ets/typeConverter.cpp",
78  "checker/ets/typeCreation.cpp",
79  "checker/ets/typeRelationContext.cpp",
80  "checker/ets/unboxingConverter.cpp",
81  "checker/ets/utilityTypeHandlers.cpp",
82  "checker/ets/validateHelpers.cpp",
83  "checker/ets/wideningConverter.cpp",
84  "checker/ts/binaryLikeExpression.cpp",
85  "checker/ts/destructuringContext.cpp",
86  "checker/ts/function.cpp",
87  "checker/ts/helpers.cpp",
88  "checker/ts/object.cpp",
89  "checker/ts/typeCreation.cpp",
90  "checker/ts/typeElaborationContext.cpp",
91  "checker/ts/util.cpp",
92  "checker/typeChecker/TypeChecker.cpp",
93  "checker/types/ets/byteType.cpp",
94  "checker/types/ets/charType.cpp",
95  "checker/types/ets/doubleType.cpp",
96  "checker/types/ets/etsArrayType.cpp",
97  "checker/types/ets/etsAsyncFuncReturnType.cpp",
98  "checker/types/ets/etsBigIntType.cpp",
99  "checker/types/ets/etsBooleanType.cpp",
100  "checker/types/ets/etsDynamicType.cpp",
101  "checker/types/ets/etsEnumType.cpp",
102  "checker/types/ets/etsExtensionFuncHelperType.cpp",
103  "checker/types/ets/etsFunctionType.cpp",
104  "checker/types/ets/etsNonNullishType.cpp",
105  "checker/types/ets/etsNullishTypes.cpp",
106  "checker/types/ets/etsObjectType.cpp",
107  "checker/types/ets/etsReadonlyType.cpp",
108  "checker/types/ets/etsStringType.cpp",
109  "checker/types/ets/etsTupleType.cpp",
110  "checker/types/ets/etsTypeParameter.cpp",
111  "checker/types/ets/etsUnionType.cpp",
112  "checker/types/ets/etsVoidType.cpp",
113  "checker/types/ets/floatType.cpp",
114  "checker/types/ets/intType.cpp",
115  "checker/types/ets/longType.cpp",
116  "checker/types/ets/shortType.cpp",
117  "checker/types/ets/wildcardType.cpp",
118  "checker/types/globalTypesHolder.cpp",
119  "checker/types/signature.cpp",
120  "checker/types/ts/anyType.cpp",
121  "checker/types/ts/arrayType.cpp",
122  "checker/types/ts/bigintLiteralType.cpp",
123  "checker/types/ts/bigintType.cpp",
124  "checker/types/ts/booleanLiteralType.cpp",
125  "checker/types/ts/booleanType.cpp",
126  "checker/types/ts/constructorType.cpp",
127  "checker/types/ts/enumLiteralType.cpp",
128  "checker/types/ts/enumType.cpp",
129  "checker/types/ts/functionType.cpp",
130  "checker/types/ts/indexInfo.cpp",
131  "checker/types/ts/interfaceType.cpp",
132  "checker/types/ts/neverType.cpp",
133  "checker/types/ts/nonPrimitiveType.cpp",
134  "checker/types/ts/nullType.cpp",
135  "checker/types/ts/numberLiteralType.cpp",
136  "checker/types/ts/numberType.cpp",
137  "checker/types/ts/objectDescriptor.cpp",
138  "checker/types/ts/objectLiteralType.cpp",
139  "checker/types/ts/objectType.cpp",
140  "checker/types/ts/stringLiteralType.cpp",
141  "checker/types/ts/stringType.cpp",
142  "checker/types/ts/tupleType.cpp",
143  "checker/types/ts/typeParameter.cpp",
144  "checker/types/ts/typeReference.cpp",
145  "checker/types/ts/undefinedType.cpp",
146  "checker/types/ts/unionType.cpp",
147  "checker/types/ts/unknownType.cpp",
148  "checker/types/ts/voidType.cpp",
149  "checker/types/type.cpp",
150  "checker/types/typeRelation.cpp",
151  "compiler/base/catchTable.cpp",
152  "compiler/base/condition.cpp",
153  "compiler/base/destructuring.cpp",
154  "compiler/base/hoisting.cpp",
155  "compiler/base/iterators.cpp",
156  "compiler/base/lexenv.cpp",
157  "compiler/base/literals.cpp",
158  "compiler/base/lreference.cpp",
159  "compiler/base/optionalChain.cpp",
160  "compiler/core/ETSCompiler.cpp",
161  "compiler/core/ETSCompilerUnrechable.cpp",
162  "compiler/core/ETSGen.cpp",
163  "compiler/core/ETSemitter.cpp",
164  "compiler/core/ETSfunction.cpp",
165  "compiler/core/JSCompiler.cpp",
166  "compiler/core/JSCompilerUnreachable.cpp",
167  "compiler/core/JSemitter.cpp",
168  "compiler/core/codeGen.cpp",
169  "compiler/core/compileJob.cpp",
170  "compiler/core/compileQueue.cpp",
171  "compiler/core/compilerImpl.cpp",
172  "compiler/core/dynamicContext.cpp",
173  "compiler/core/emitter.cpp",
174  "compiler/core/envScope.cpp",
175  "compiler/core/function.cpp",
176  "compiler/core/labelTarget.cpp",
177  "compiler/core/moduleContext.cpp",
178  "compiler/core/pandagen.cpp",
179  "compiler/core/programElement.cpp",
180  "compiler/core/regAllocator.cpp",
181  "compiler/core/regScope.cpp",
182  "compiler/core/regSpiller.cpp",
183  "compiler/core/switchBuilder.cpp",
184  "compiler/core/targetTypeContext.cpp",
185  "compiler/core/vReg.cpp",
186  "compiler/debugger/debuginfoDumper.cpp",
187  "compiler/function/asyncFunctionBuilder.cpp",
188  "compiler/function/asyncGeneratorFunctionBuilder.cpp",
189  "compiler/function/functionBuilder.cpp",
190  "compiler/function/generatorFunctionBuilder.cpp",
191  "compiler/lowering/checkerPhase.cpp",
192  "compiler/lowering/ets/ambientLowering.cpp",
193  "compiler/lowering/ets/bigintLowering.cpp",
194  "compiler/lowering/ets/boxingForLocals.cpp",
195  "compiler/lowering/ets/constStringToCharLowering.cpp",
196  "compiler/lowering/ets/defaultParameterLowering.cpp",
197  "compiler/lowering/ets/enumLowering.cpp",
198  "compiler/lowering/ets/enumPostCheckLowering.cpp",
199  "compiler/lowering/ets/expandBrackets.cpp",
200  "compiler/lowering/ets/expressionLambdaLowering.cpp",
201  "compiler/lowering/ets/interfaceObjectLiteralLowering.cpp",
202  "compiler/lowering/ets/interfacePropertyDeclarations.cpp",
203  "compiler/lowering/ets/lambdaLowering.cpp",
204  "compiler/lowering/ets/localClassLowering.cpp",
205  "compiler/lowering/ets/objectIndexAccess.cpp",
206  "compiler/lowering/ets/objectIterator.cpp",
207  "compiler/lowering/ets/objectLiteralLowering.cpp",
208  "compiler/lowering/ets/opAssignment.cpp",
209  "compiler/lowering/ets/optionalLowering.cpp",
210  "compiler/lowering/ets/partialExportClassGen.cpp",
211  "compiler/lowering/ets/promiseVoid.cpp",
212  "compiler/lowering/ets/recordLowering.cpp",
213  "compiler/lowering/ets/spreadLowering.cpp",
214  "compiler/lowering/ets/stringComparison.cpp",
215  "compiler/lowering/ets/stringConstructorLowering.cpp",
216  "compiler/lowering/ets/structLowering.cpp",
217  "compiler/lowering/ets/topLevelStmts/globalClassHandler.cpp",
218  "compiler/lowering/ets/topLevelStmts/globalDeclTransformer.cpp",
219  "compiler/lowering/ets/topLevelStmts/importExportDecls.cpp",
220  "compiler/lowering/ets/topLevelStmts/topLevelStmts.cpp",
221  "compiler/lowering/ets/tupleLowering.cpp",
222  "compiler/lowering/ets/unionLowering.cpp",
223  "compiler/lowering/phase.cpp",
224  "compiler/lowering/plugin_phase.cpp",
225  "compiler/lowering/resolveIdentifiers.cpp",
226  "compiler/lowering/scopesInit/savedBindingsCtx.cpp",
227  "compiler/lowering/scopesInit/scopesInitPhase.cpp",
228  "compiler/lowering/util.cpp",
229  "es2panda.cpp",
230  "ir/as/namedType.cpp",
231  "ir/as/prefixAssertionExpression.cpp",
232  "ir/astDump.cpp",
233  "ir/astNode.cpp",
234  "ir/base/catchClause.cpp",
235  "ir/base/classDefinition.cpp",
236  "ir/base/classElement.cpp",
237  "ir/base/classProperty.cpp",
238  "ir/base/classStaticBlock.cpp",
239  "ir/base/decorator.cpp",
240  "ir/base/metaProperty.cpp",
241  "ir/base/methodDefinition.cpp",
242  "ir/base/property.cpp",
243  "ir/base/scriptFunction.cpp",
244  "ir/base/scriptFunctionSignature.cpp",
245  "ir/base/spreadElement.cpp",
246  "ir/base/templateElement.cpp",
247  "ir/base/tsIndexSignature.cpp",
248  "ir/base/tsMethodSignature.cpp",
249  "ir/base/tsPropertySignature.cpp",
250  "ir/base/tsSignatureDeclaration.cpp",
251  "ir/ets/etsClassLiteral.cpp",
252  "ir/ets/etsFunctionType.cpp",
253  "ir/ets/etsImportSource.cpp",
254  "ir/ets/etsLaunchExpression.cpp",
255  "ir/ets/etsNewArrayInstanceExpression.cpp",
256  "ir/ets/etsNewClassInstanceExpression.cpp",
257  "ir/ets/etsNewMultiDimArrayInstanceExpression.cpp",
258  "ir/ets/etsNullishTypes.cpp",
259  "ir/ets/etsPackageDeclaration.cpp",
260  "ir/ets/etsParameterExpression.cpp",
261  "ir/ets/etsPrimitiveType.cpp",
262  "ir/ets/etsReExportDeclaration.cpp",
263  "ir/ets/etsScript.cpp",
264  "ir/ets/etsStructDeclaration.cpp",
265  "ir/ets/etsTuple.cpp",
266  "ir/ets/etsTypeReference.cpp",
267  "ir/ets/etsTypeReferencePart.cpp",
268  "ir/ets/etsUnionType.cpp",
269  "ir/ets/etsWildcardType.cpp",
270  "ir/expression.cpp",
271  "ir/expressions/arrayExpression.cpp",
272  "ir/expressions/arrowFunctionExpression.cpp",
273  "ir/expressions/assignmentExpression.cpp",
274  "ir/expressions/awaitExpression.cpp",
275  "ir/expressions/binaryExpression.cpp",
276  "ir/expressions/blockExpression.cpp",
277  "ir/expressions/callExpression.cpp",
278  "ir/expressions/chainExpression.cpp",
279  "ir/expressions/classExpression.cpp",
280  "ir/expressions/conditionalExpression.cpp",
281  "ir/expressions/directEvalExpression.cpp",
282  "ir/expressions/dummyNode.cpp",
283  "ir/expressions/functionExpression.cpp",
284  "ir/expressions/identifier.cpp",
285  "ir/expressions/importExpression.cpp",
286  "ir/expressions/literal.cpp",
287  "ir/expressions/literals/bigIntLiteral.cpp",
288  "ir/expressions/literals/booleanLiteral.cpp",
289  "ir/expressions/literals/charLiteral.cpp",
290  "ir/expressions/literals/nullLiteral.cpp",
291  "ir/expressions/literals/numberLiteral.cpp",
292  "ir/expressions/literals/regExpLiteral.cpp",
293  "ir/expressions/literals/stringLiteral.cpp",
294  "ir/expressions/literals/undefinedLiteral.cpp",
295  "ir/expressions/memberExpression.cpp",
296  "ir/expressions/newExpression.cpp",
297  "ir/expressions/objectExpression.cpp",
298  "ir/expressions/omittedExpression.cpp",
299  "ir/expressions/sequenceExpression.cpp",
300  "ir/expressions/superExpression.cpp",
301  "ir/expressions/taggedTemplateExpression.cpp",
302  "ir/expressions/templateLiteral.cpp",
303  "ir/expressions/thisExpression.cpp",
304  "ir/expressions/typeofExpression.cpp",
305  "ir/expressions/unaryExpression.cpp",
306  "ir/expressions/updateExpression.cpp",
307  "ir/expressions/yieldExpression.cpp",
308  "ir/irnode.cpp",
309  "ir/module/exportAllDeclaration.cpp",
310  "ir/module/exportDefaultDeclaration.cpp",
311  "ir/module/exportNamedDeclaration.cpp",
312  "ir/module/exportSpecifier.cpp",
313  "ir/module/importDeclaration.cpp",
314  "ir/module/importDefaultSpecifier.cpp",
315  "ir/module/importNamespaceSpecifier.cpp",
316  "ir/module/importSpecifier.cpp",
317  "ir/opaqueTypeNode.cpp",
318  "ir/srcDump.cpp",
319  "ir/statement.cpp",
320  "ir/statements/assertStatement.cpp",
321  "ir/statements/blockStatement.cpp",
322  "ir/statements/breakStatement.cpp",
323  "ir/statements/classDeclaration.cpp",
324  "ir/statements/continueStatement.cpp",
325  "ir/statements/debuggerStatement.cpp",
326  "ir/statements/doWhileStatement.cpp",
327  "ir/statements/emptyStatement.cpp",
328  "ir/statements/expressionStatement.cpp",
329  "ir/statements/forInStatement.cpp",
330  "ir/statements/forOfStatement.cpp",
331  "ir/statements/forUpdateStatement.cpp",
332  "ir/statements/functionDeclaration.cpp",
333  "ir/statements/ifStatement.cpp",
334  "ir/statements/labelledStatement.cpp",
335  "ir/statements/loopStatement.cpp",
336  "ir/statements/returnStatement.cpp",
337  "ir/statements/switchCaseStatement.cpp",
338  "ir/statements/switchStatement.cpp",
339  "ir/statements/throwStatement.cpp",
340  "ir/statements/tryStatement.cpp",
341  "ir/statements/variableDeclaration.cpp",
342  "ir/statements/variableDeclarator.cpp",
343  "ir/statements/whileStatement.cpp",
344  "ir/ts/tsAnyKeyword.cpp",
345  "ir/ts/tsArrayType.cpp",
346  "ir/ts/tsAsExpression.cpp",
347  "ir/ts/tsBigintKeyword.cpp",
348  "ir/ts/tsBooleanKeyword.cpp",
349  "ir/ts/tsClassImplements.cpp",
350  "ir/ts/tsConditionalType.cpp",
351  "ir/ts/tsConstructorType.cpp",
352  "ir/ts/tsEnumDeclaration.cpp",
353  "ir/ts/tsEnumMember.cpp",
354  "ir/ts/tsExternalModuleReference.cpp",
355  "ir/ts/tsFunctionType.cpp",
356  "ir/ts/tsImportEqualsDeclaration.cpp",
357  "ir/ts/tsImportType.cpp",
358  "ir/ts/tsIndexedAccessType.cpp",
359  "ir/ts/tsInferType.cpp",
360  "ir/ts/tsInterfaceBody.cpp",
361  "ir/ts/tsInterfaceDeclaration.cpp",
362  "ir/ts/tsInterfaceHeritage.cpp",
363  "ir/ts/tsIntersectionType.cpp",
364  "ir/ts/tsLiteralType.cpp",
365  "ir/ts/tsMappedType.cpp",
366  "ir/ts/tsModuleBlock.cpp",
367  "ir/ts/tsModuleDeclaration.cpp",
368  "ir/ts/tsNamedTupleMember.cpp",
369  "ir/ts/tsNeverKeyword.cpp",
370  "ir/ts/tsNonNullExpression.cpp",
371  "ir/ts/tsNullKeyword.cpp",
372  "ir/ts/tsNumberKeyword.cpp",
373  "ir/ts/tsObjectKeyword.cpp",
374  "ir/ts/tsParameterProperty.cpp",
375  "ir/ts/tsParenthesizedType.cpp",
376  "ir/ts/tsQualifiedName.cpp",
377  "ir/ts/tsStringKeyword.cpp",
378  "ir/ts/tsThisType.cpp",
379  "ir/ts/tsTupleType.cpp",
380  "ir/ts/tsTypeAliasDeclaration.cpp",
381  "ir/ts/tsTypeAssertion.cpp",
382  "ir/ts/tsTypeLiteral.cpp",
383  "ir/ts/tsTypeOperator.cpp",
384  "ir/ts/tsTypeParameter.cpp",
385  "ir/ts/tsTypeParameterDeclaration.cpp",
386  "ir/ts/tsTypeParameterInstantiation.cpp",
387  "ir/ts/tsTypePredicate.cpp",
388  "ir/ts/tsTypeQuery.cpp",
389  "ir/ts/tsTypeReference.cpp",
390  "ir/ts/tsUndefinedKeyword.cpp",
391  "ir/ts/tsUnionType.cpp",
392  "ir/ts/tsUnknownKeyword.cpp",
393  "ir/ts/tsVoidKeyword.cpp",
394  "ir/typeNode.cpp",
395  "lexer/ASLexer.cpp",
396  "lexer/ETSLexer.cpp",
397  "lexer/TSLexer.cpp",
398  "lexer/keywords.cpp",
399  "lexer/keywordsUtil.cpp",
400  "lexer/lexer.cpp",
401  "lexer/regexp/regexp.cpp",
402  "lexer/token/number.cpp",
403  "lexer/token/sourceLocation.cpp",
404  "lexer/token/token.cpp",
405  "parser/ASparser.cpp",
406  "parser/ETSFormattedParser.cpp",
407  "parser/ETSNolintParser.cpp",
408  "parser/ETSparser.cpp",
409  "parser/ETSparserClasses.cpp",
410  "parser/ETSparserEnums.cpp",
411  "parser/ETSparserExpressions.cpp",
412  "parser/ETSparserStatements.cpp",
413  "parser/ETSparserTypes.cpp",
414  "parser/JSparser.cpp",
415  "parser/TSparser.cpp",
416  "parser/TypedParser.cpp",
417  "parser/context/classPrivateContext.cpp",
418  "parser/context/parserContext.cpp",
419  "parser/expressionParser.cpp",
420  "parser/expressionTSParser.cpp",
421  "parser/parserImpl.cpp",
422  "parser/program/program.cpp",
423  "parser/statementParser.cpp",
424  "parser/statementTSParser.cpp",
425  "util/arktsconfig.cpp",
426  "util/bitset.cpp",
427  "util/errorHandler.cpp",
428  "util/errorLogger.cpp",
429  "util/helpers.cpp",
430  "util/importPathManager.cpp",
431  "util/path.cpp",
432  "util/plugin.cpp",
433  "util/ustring.cpp",
434  "varbinder/ASBinder.cpp",
435  "varbinder/ETSBinder.cpp",
436  "varbinder/JSBinder.cpp",
437  "varbinder/TSBinder.cpp",
438  "varbinder/TypedBinder.cpp",
439  "varbinder/declaration.cpp",
440  "varbinder/recordTable.cpp",
441  "varbinder/scope.cpp",
442  "varbinder/varbinder.cpp",
443  "varbinder/variable.cpp",
444]
445
446# libes2panda does not include bytecode optimizer, because it is used in
447# libarkruntime, and conflict with JIT setup ensues
448libes2panda_public_sources = [
449  "public/es2panda_lib.cpp",
450  "util/generateBin.cpp",
451  "util/options.cpp",
452]
453
454config("libes2panda_config") {
455  cflags_cc = [
456    "-fexceptions",
457    "-Werror=shadow",
458  ]
459}
460
461libes2panda_configs = [
462  "$ark_root/assembler:arkassembler_public_config",
463  "$ark_root:ark_config",
464  ":libes2panda_public_config",
465  ":libes2panda_config",
466  "$ark_root/libpandabase:arkbase_public_config",
467  "$ark_root/libpandafile:arkfile_public_config",
468]
469
470libes2panda_public_configs = [
471  "$ark_root/assembler:arkassembler_public_config",
472  "$ark_root:ark_config",
473  ":libes2panda_public_config",
474  ":libes2panda_config",
475  "$ark_root/libpandabase:arkbase_public_config",
476  "$ark_root/libpandafile:arkfile_public_config",
477  "$ark_root/bytecode_optimizer:bytecodeopt_public_config",
478  "$ark_root/compiler:arkcompiler_public_config",
479  "$ark_root/runtime:arkruntime_public_config",
480]
481
482ohos_shared_library("libes2panda") {
483  deps = [ ":libes2panda_frontend_static" ]
484  output_extension = "so"
485  part_name = "ets_frontend"
486  subsystem_name = "arkcompiler"
487}
488
489ohos_source_set("libes2panda_frontend_static") {
490  sources = libes2panda_sources
491
492  configs = libes2panda_configs
493
494  deps = [
495    ":gen_es2panda_compiler_signatures_h",
496    ":gen_es2panda_lexer_keywords_h",
497    ":isa_gen_es2panda_formats_h",
498    ":isa_gen_es2panda_isa_h",
499    "$ark_third_party_root/icu/icu4c:static_icui18n",
500    "$ark_third_party_root/icu/icu4c:static_icuuc",
501  ]
502  external_deps = [
503    "runtime_core:libarktsassembler_package",
504    "runtime_core:libarktsfile_package",
505    sdk_libc_secshared_dep,
506  ]
507  part_name = "ets_frontend"
508  subsystem_name = "arkcompiler"
509}
510
511ohos_shared_library("libes2panda_public") {
512  deps = [ ":libes2panda_public_frontend_static" ]
513  output_extension = "so"
514  part_name = "ets_frontend"
515  subsystem_name = "arkcompiler"
516}
517
518ohos_source_set("libes2panda_public_frontend_static") {
519  sources = libes2panda_public_sources
520
521  configs = libes2panda_public_configs
522
523  deps = [ ":libes2panda_frontend_static" ]
524
525  if (ark_standalone_build) {
526    deps += [ "$ark_root/bytecode_optimizer:libarktsbytecodeopt_package" ]
527  }
528
529  external_deps = [
530    "runtime_core:libarktsbytecodeopt_package",
531    sdk_libc_secshared_dep,
532  ]
533  part_name = "ets_frontend"
534  subsystem_name = "arkcompiler"
535}
536
537ark_isa_gen("isa_gen_es2panda") {
538  template_files = [
539    "isa.h.erb",
540    "formats.h.erb",
541  ]
542  sources = "compiler/templates"
543  destination = "$target_gen_dir/generated"
544}
545
546ark_gen("gen_es2panda_lexer") {
547  data = [ "lexer/scripts/keywords.yaml" ]
548  template_files = [ "keywords.h.erb" ]
549  sources = "lexer/templates"
550  destination = "$target_gen_dir/generated"
551  api = [ "lexer/scripts/keywords.rb" ]
552}
553
554ark_gen("gen_es2panda_compiler") {
555  data = [ "compiler/scripts/signatures.yaml" ]
556  template_files = [ "signatures.h.erb" ]
557  sources = "compiler/templates"
558  destination = "$target_gen_dir/generated"
559  api = [ "compiler/scripts/signatures.rb" ]
560}
561