• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2025 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
14
15#CMake for generate es2panda_lib files
16
17set(LIB_NAME es2panda_lib)
18set(LIBGEN_DIR ${GENERATED_DIR}/${LIB_NAME})
19make_directory(${LIBGEN_DIR})
20set(RB_LIST "")
21
22set(ES2PANDA_API
23    ${CMAKE_CURRENT_SOURCE_DIR}/cppToCTypes.yaml
24    ${CMAKE_CURRENT_SOURCE_DIR}/ignoredAllowed.yaml
25)
26
27set (HEADERS_TO_BE_PARSED
28    ${ES2PANDA_ROOT}/varbinder/variableFlags.h
29    ${GENERATED_DIR}/options.h
30    ${ES2PANDA_ROOT}/util/options.h
31    ${ES2PANDA_ROOT}/lexer/regexp/regexp.h
32    ${ES2PANDA_ROOT}/util/language.h
33    ${GENERATED_DIR}/tokenType.h
34    ${ES2PANDA_ROOT}/ir/astNodeFlags.h
35    ${ES2PANDA_ROOT}/ir/astNodeMapping.h
36    ${ES2PANDA_ROOT}/ir/module/exportDefaultDeclaration.h
37    ${ES2PANDA_ROOT}/ir/statements/forInStatement.h
38    ${ES2PANDA_ROOT}/checker/types/ts/voidType.h
39    ${ES2PANDA_ROOT}/ir/expressions/classExpression.h
40    ${ES2PANDA_ROOT}/ir/ts/tsConditionalType.h
41    ${ES2PANDA_ROOT}/ir/expressions/templateLiteral.h
42    ${ES2PANDA_ROOT}/ir/statements/breakStatement.h
43    ${ES2PANDA_ROOT}/ir/ets/etsImportDeclaration.h
44    ${ES2PANDA_ROOT}/ir/ts/tsArrayType.h
45    ${ES2PANDA_ROOT}/checker/types/ts/numberType.h
46    ${ES2PANDA_ROOT}/ir/module/importDefaultSpecifier.h
47    ${ES2PANDA_ROOT}/checker/types/ets/etsFunctionType.h
48    ${ES2PANDA_ROOT}/ir/base/classDefinition.h
49    ${ES2PANDA_ROOT}/checker/types/ts/typeParameter.h
50    ${ES2PANDA_ROOT}/checker/types/ets/etsEnumType.h
51    ${ES2PANDA_ROOT}/ir/statement.h
52    ${ES2PANDA_ROOT}/ir/irnode.h
53    ${ES2PANDA_ROOT}/checker/types/typeRelation.h
54    ${ES2PANDA_ROOT}/ir/visitor/AstVisitor.h
55    ${ES2PANDA_ROOT}/ir/statements/classDeclaration.h
56    ${ES2PANDA_ROOT}/ir/base/tsMethodSignature.h
57    ${ES2PANDA_ROOT}/ir/ts/tsExternalModuleReference.h
58    ${ES2PANDA_ROOT}/ir/ts/tsInterfaceBody.h
59    ${ES2PANDA_ROOT}/checker/types/ts/nonPrimitiveType.h
60    ${ES2PANDA_ROOT}/ir/ts/tsTypeParameterInstantiation.h
61    ${ES2PANDA_ROOT}/ir/module/importDeclaration.h
62    ${ES2PANDA_ROOT}/checker/types/ets/etsDynamicType.h
63    ${ES2PANDA_ROOT}/ir/statements/doWhileStatement.h
64    ${ES2PANDA_ROOT}/ir/expressions/literals/bigIntLiteral.h
65    ${ES2PANDA_ROOT}/ir/expressions/assignmentExpression.h
66    ${ES2PANDA_ROOT}/ir/srcDump.h
67    ${ES2PANDA_ROOT}/checker/types/ets/etsBooleanType.h
68    ${ES2PANDA_ROOT}/ir/expressions/sequenceExpression.h
69    ${ES2PANDA_ROOT}/ir/expressions/literals/nullLiteral.h
70    ${ES2PANDA_ROOT}/ir/ts/tsStringKeyword.h
71    ${ES2PANDA_ROOT}/ir/ts/tsUnionType.h
72    ${ES2PANDA_ROOT}/ir/ts/tsClassImplements.h
73    ${ES2PANDA_ROOT}/checker/types/typeFlag.h
74    ${ES2PANDA_ROOT}/ir/base/tsPropertySignature.h
75    ${ES2PANDA_ROOT}/checker/types/ts/stringLiteralType.h
76    ${ES2PANDA_ROOT}/ir/expressions/conditionalExpression.h
77    ${ES2PANDA_ROOT}/ir/ts/tsFunctionType.h
78    ${ES2PANDA_ROOT}/checker/types/ts/undefinedType.h
79    ${ES2PANDA_ROOT}/checker/types/ts/numberLiteralType.h
80    ${ES2PANDA_ROOT}/ir/ts/tsObjectKeyword.h
81    ${ES2PANDA_ROOT}/checker/types/ts/tupleType.h
82    ${ES2PANDA_ROOT}/checker/types/ets/etsStringType.h
83    ${ES2PANDA_ROOT}/ir/base/property.h
84    ${ES2PANDA_ROOT}/ir/astDump.h
85    ${ES2PANDA_ROOT}/ir/base/tsSignatureDeclaration.h
86    ${ES2PANDA_ROOT}/ir/ets/etsReExportDeclaration.h
87    ${ES2PANDA_ROOT}/ir/ts/tsUndefinedKeyword.h
88    ${ES2PANDA_ROOT}/ir/expressions/arrowFunctionExpression.h
89    ${ES2PANDA_ROOT}/ir/expressions/callExpression.h
90    ${ES2PANDA_ROOT}/ir/ts/tsInterfaceHeritage.h
91    ${ES2PANDA_ROOT}/ir/expressions/updateExpression.h
92    ${ES2PANDA_ROOT}/ir/module/importSpecifier.h
93    ${ES2PANDA_ROOT}/ir/ets/etsNewClassInstanceExpression.h
94    ${ES2PANDA_ROOT}/ir/statements/labelledStatement.h
95    ${ES2PANDA_ROOT}/ir/ts/tsModuleBlock.h
96    ${ES2PANDA_ROOT}/ir/ts/tsTypePredicate.h
97    ${ES2PANDA_ROOT}/ir/base/catchClause.h
98    ${ES2PANDA_ROOT}/ir/base/classProperty.h
99    ${ES2PANDA_ROOT}/ir/base/tsIndexSignature.h
100    ${ES2PANDA_ROOT}/checker/types/ts/arrayType.h
101    ${ES2PANDA_ROOT}/ir/astNode.h
102    ${ES2PANDA_ROOT}/ir/typed.h
103    ${ES2PANDA_ROOT}/ir/statements/ifStatement.h
104    ${ES2PANDA_ROOT}/ir/ets/etsTuple.h
105    ${ES2PANDA_ROOT}/ir/ets/etsStringLiteralType.h
106    ${ES2PANDA_ROOT}/ir/module/exportSpecifier.h
107    ${ES2PANDA_ROOT}/ir/ts/tsNamedTupleMember.h
108    ${ES2PANDA_ROOT}/ir/statements/returnStatement.h
109    ${ES2PANDA_ROOT}/checker/types/ts/neverType.h
110    ${ES2PANDA_ROOT}/checker/types/ts/unionType.h
111    ${ES2PANDA_ROOT}/ir/statements/tryStatement.h
112    ${ES2PANDA_ROOT}/ir/ts/tsQualifiedName.h
113    ${ES2PANDA_ROOT}/checker/types/ts/types.h
114    ${ES2PANDA_ROOT}/ir/ts/tsLiteralType.h
115    ${ES2PANDA_ROOT}/checker/types/typeMapping.h
116    ${ES2PANDA_ROOT}/checker/types/ets/etsBigIntType.h
117    ${ES2PANDA_ROOT}/ir/expressions/arrayExpression.h
118    ${ES2PANDA_ROOT}/ir/ets/etsUnionType.h
119    ${ES2PANDA_ROOT}/ir/ets/etsKeyofType.h
120    ${ES2PANDA_ROOT}/ir/ts/tsTypeParameter.h
121    ${ES2PANDA_ROOT}/ir/ts/tsConstructorType.h
122    ${ES2PANDA_ROOT}/ir/ts/tsTypeParameterDeclaration.h
123    ${ES2PANDA_ROOT}/checker/types/ts/enumLiteralType.h
124    ${ES2PANDA_ROOT}/ir/expressions/literals/charLiteral.h
125    ${ES2PANDA_ROOT}/ir/base/classElement.h
126    ${ES2PANDA_ROOT}/ir/statements/switchStatement.h
127    ${ES2PANDA_ROOT}/ir/expressions/identifier.h
128    ${ES2PANDA_ROOT}/ir/expressions/objectExpression.h
129    ${ES2PANDA_ROOT}/ir/statements/functionDeclaration.h
130    ${ES2PANDA_ROOT}/ir/as/prefixAssertionExpression.h
131    ${ES2PANDA_ROOT}/checker/types/ts/typeReference.h
132    ${ES2PANDA_ROOT}/ir/expressions/memberExpression.h
133    ${ES2PANDA_ROOT}/checker/types/ets/etsExtensionFuncHelperType.h
134    ${ES2PANDA_ROOT}/ir/ets/etsNonNullishTypeNode.h
135    ${ES2PANDA_ROOT}/ir/ets/etsNullishTypes.h
136    ${ES2PANDA_ROOT}/ir/expressions/awaitExpression.h
137    ${ES2PANDA_ROOT}/ir/ets/etsFunctionType.h
138    ${ES2PANDA_ROOT}/checker/types/ets/etsArrayType.h
139    ${ES2PANDA_ROOT}/ir/expressions/binaryExpression.h
140    ${ES2PANDA_ROOT}/checker/types/ets/etsNullishTypes.h
141    ${ES2PANDA_ROOT}/ir/expressions/newExpression.h
142    ${ES2PANDA_ROOT}/ir/expressions/literals/stringLiteral.h
143    ${ES2PANDA_ROOT}/ir/ts/tsTupleType.h
144    ${ES2PANDA_ROOT}/checker/types/ets/longType.h
145    ${ES2PANDA_ROOT}/ir/module/exportAllDeclaration.h
146    ${ES2PANDA_ROOT}/checker/types/ts/bigintType.h
147    ${ES2PANDA_ROOT}/ir/ts/tsParenthesizedType.h
148    ${ES2PANDA_ROOT}/ir/ts/tsModuleDeclaration.h
149    ${ES2PANDA_ROOT}/ir/ets/etsPackageDeclaration.h
150    ${ES2PANDA_ROOT}/checker/types/ets/etsDynamicFunctionType.h
151    ${ES2PANDA_ROOT}/ir/expressions/literals/regExpLiteral.h
152    ${ES2PANDA_ROOT}/ir/ets/etsNewArrayInstanceExpression.h
153    ${ES2PANDA_ROOT}/checker/types/ets/etsVoidType.h
154    ${ES2PANDA_ROOT}/ir/base/metaProperty.h
155    ${ES2PANDA_ROOT}/checker/types/type.h
156    ${ES2PANDA_ROOT}/checker/types/ts/booleanLiteralType.h
157    ${ES2PANDA_ROOT}/checker/types/ts/anyType.h
158    ${ES2PANDA_ROOT}/ir/ets/etsModule.h
159    ${ES2PANDA_ROOT}/ir/ts/tsInferType.h
160    ${ES2PANDA_ROOT}/ir/ts/tsMappedType.h
161    ${ES2PANDA_ROOT}/ir/statements/debuggerStatement.h
162    ${ES2PANDA_ROOT}/ir/ts/tsBooleanKeyword.h
163    ${ES2PANDA_ROOT}/ir/ts/tsEnumDeclaration.h
164    ${ES2PANDA_ROOT}/checker/types/ets/etsObjectType.h
165    ${ES2PANDA_ROOT}/checker/types/ts/interfaceType.h
166    ${ES2PANDA_ROOT}/checker/types/ts/functionType.h
167    ${ES2PANDA_ROOT}/ir/statements/emptyStatement.h
168    ${ES2PANDA_ROOT}/ir/expressions/omittedExpression.h
169    ${ES2PANDA_ROOT}/ir/ts/tsNeverKeyword.h
170    ${ES2PANDA_ROOT}/ir/expressions/blockExpression.h
171    ${ES2PANDA_ROOT}/checker/types/ts/objectDescriptor.h
172    ${ES2PANDA_ROOT}/ir/ts/tsBigintKeyword.h
173    ${ES2PANDA_ROOT}/ir/statements/blockStatement.h
174    ${ES2PANDA_ROOT}/ir/expressions/literals/numberLiteral.h
175    ${ES2PANDA_ROOT}/checker/types/ets/shortType.h
176    ${ES2PANDA_ROOT}/checker/types/ts/bigintLiteralType.h
177    ${ES2PANDA_ROOT}/ir/expression.h
178    ${ES2PANDA_ROOT}/checker/types/ts/objectLiteralType.h
179    ${ES2PANDA_ROOT}/ir/typeNode.h
180    ${ES2PANDA_ROOT}/ir/base/spreadElement.h
181    ${ES2PANDA_ROOT}/ir/ts/tsTypeAssertion.h
182    ${ES2PANDA_ROOT}/ir/ts/tsTypeOperator.h
183    ${ES2PANDA_ROOT}/ir/ts/tsAsExpression.h
184    ${ES2PANDA_ROOT}/ir/statements/expressionStatement.h
185    ${ES2PANDA_ROOT}/checker/types/ts/elementFlags.h
186    ${ES2PANDA_ROOT}/ir/ts/tsImportType.h
187    ${ES2PANDA_ROOT}/checker/types/ts/indexInfo.h
188    ${ES2PANDA_ROOT}/checker/types/ets/etsTupleType.h
189    ${ES2PANDA_ROOT}/checker/types/signature.h
190    ${ES2PANDA_ROOT}/ir/ets/etsPrimitiveType.h
191    ${ES2PANDA_ROOT}/ir/as/namedType.h
192    ${ES2PANDA_ROOT}/ir/statements/throwStatement.h
193    ${ES2PANDA_ROOT}/ir/statements/forOfStatement.h
194    ${ES2PANDA_ROOT}/ir/statements/switchCaseStatement.h
195    ${ES2PANDA_ROOT}/ir/base/templateElement.h
196    ${ES2PANDA_ROOT}/checker/types/ets/charType.h
197    ${ES2PANDA_ROOT}/checker/types/ets/intType.h
198    ${ES2PANDA_ROOT}/ir/statements/forUpdateStatement.h
199    ${ES2PANDA_ROOT}/checker/types/ets/floatType.h
200    ${ES2PANDA_ROOT}/ir/ets/etsTypeReferencePart.h
201    ${ES2PANDA_ROOT}/ir/ts/tsUnknownKeyword.h
202    ${ES2PANDA_ROOT}/ir/ets/etsStructDeclaration.h
203    ${ES2PANDA_ROOT}/checker/types/ts/objectType.h
204    ${ES2PANDA_ROOT}/ir/expressions/chainExpression.h
205    ${ES2PANDA_ROOT}/checker/types/ets/byteType.h
206    ${ES2PANDA_ROOT}/ir/ts/tsVoidKeyword.h
207    ${ES2PANDA_ROOT}/ir/statements/whileStatement.h
208    ${ES2PANDA_ROOT}/ir/expressions/taggedTemplateExpression.h
209    ${ES2PANDA_ROOT}/ir/statements/assertStatement.h
210    ${ES2PANDA_ROOT}/checker/types/ets/etsUnionType.h
211    ${ES2PANDA_ROOT}/checker/types/ts/stringType.h
212    ${ES2PANDA_ROOT}/ir/expressions/literals/booleanLiteral.h
213    ${ES2PANDA_ROOT}/ir/expressions/functionExpression.h
214    ${ES2PANDA_ROOT}/ir/statements/variableDeclarator.h
215    ${ES2PANDA_ROOT}/ir/module/importNamespaceSpecifier.h
216    ${ES2PANDA_ROOT}/ir/module/exportNamedDeclaration.h
217    ${ES2PANDA_ROOT}/ir/expressions/thisExpression.h
218    ${ES2PANDA_ROOT}/ir/ts/tsTypeReference.h
219    ${ES2PANDA_ROOT}/ir/base/classStaticBlock.h
220    ${ES2PANDA_ROOT}/ir/expressions/unaryExpression.h
221    ${ES2PANDA_ROOT}/ir/ts/tsThisType.h
222    ${ES2PANDA_ROOT}/ir/ts/tsNullKeyword.h
223    ${ES2PANDA_ROOT}/checker/types/ets/etsTypeParameter.h
224    ${ES2PANDA_ROOT}/checker/types/typeFacts.h
225    ${ES2PANDA_ROOT}/ir/base/decorator.h
226    ${ES2PANDA_ROOT}/checker/types/globalTypesHolder.h
227    ${ES2PANDA_ROOT}/ir/ets/etsClassLiteral.h
228    ${ES2PANDA_ROOT}/ir/ts/tsTypeAliasDeclaration.h
229    ${ES2PANDA_ROOT}/ir/ts/tsNonNullExpression.h
230    ${ES2PANDA_ROOT}/ir/ts/tsTypeLiteral.h
231    ${ES2PANDA_ROOT}/ir/ts/tsNumberKeyword.h
232    ${ES2PANDA_ROOT}/ir/opaqueTypeNode.h
233    ${ES2PANDA_ROOT}/ir/brokenTypeNode.h
234    ${ES2PANDA_ROOT}/ir/base/scriptFunction.h
235    ${ES2PANDA_ROOT}/ir/expressions/literal.h
236    ${ES2PANDA_ROOT}/ir/ts/tsInterfaceDeclaration.h
237    ${ES2PANDA_ROOT}/ir/ts/tsImportEqualsDeclaration.h
238    ${ES2PANDA_ROOT}/ir/validationInfo.h
239    ${ES2PANDA_ROOT}/ir/base/methodDefinition.h
240    ${ES2PANDA_ROOT}/ir/ts/tsIntersectionType.h
241    ${ES2PANDA_ROOT}/checker/types/ts/nullType.h
242    ${ES2PANDA_ROOT}/checker/types/ts/unknownType.h
243    ${ES2PANDA_ROOT}/ir/ts/tsEnumMember.h
244    ${ES2PANDA_ROOT}/ir/expressions/superExpression.h
245    ${ES2PANDA_ROOT}/checker/types/ts/constructorType.h
246    ${ES2PANDA_ROOT}/ir/ets/etsTypeReference.h
247    ${ES2PANDA_ROOT}/checker/types/ets/etsNonNullishType.h
248    ${ES2PANDA_ROOT}/checker/types/ets/etsObjectTypeConstants.h
249    ${ES2PANDA_ROOT}/checker/types/ets/types.h
250    ${ES2PANDA_ROOT}/ir/statements/variableDeclaration.h
251    ${ES2PANDA_ROOT}/ir/opcodeMap.h
252    ${ES2PANDA_ROOT}/ir/ts/tsAnyKeyword.h
253    ${ES2PANDA_ROOT}/checker/types/ets/doubleType.h
254    ${ES2PANDA_ROOT}/ir/visitor/IterateAstVisitor.h
255    ${ES2PANDA_ROOT}/checker/types/ts/enumType.h
256    ${ES2PANDA_ROOT}/ir/expressions/directEvalExpression.h
257    ${ES2PANDA_ROOT}/ir/ts/tsParameterProperty.h
258    ${ES2PANDA_ROOT}/ir/statements/continueStatement.h
259    ${ES2PANDA_ROOT}/ir/ets/etsWildcardType.h
260    ${ES2PANDA_ROOT}/ir/expressions/literals/undefinedLiteral.h
261    ${ES2PANDA_ROOT}/ir/ts/tsIndexedAccessType.h
262    ${ES2PANDA_ROOT}/checker/types/ets/wildcardType.h
263    ${ES2PANDA_ROOT}/checker/types/ts/booleanType.h
264    ${ES2PANDA_ROOT}/ir/expressions/typeofExpression.h
265    ${ES2PANDA_ROOT}/checker/types/ets/etsAsyncFuncReturnType.h
266    ${ES2PANDA_ROOT}/ir/statements/loopStatement.h
267    ${ES2PANDA_ROOT}/ir/statements/annotationDeclaration.h
268    ${ES2PANDA_ROOT}/ir/statements/annotationUsage.h
269    ${ES2PANDA_ROOT}/ir/annotationAllowed.h
270    ${ES2PANDA_ROOT}/ir/jsDocAllowed.h
271    ${ES2PANDA_ROOT}/ir/base/scriptFunctionSignature.h
272    ${ES2PANDA_ROOT}/ir/expressions/yieldExpression.h
273    ${ES2PANDA_ROOT}/ir/ets/etsNewMultiDimArrayInstanceExpression.h
274    ${ES2PANDA_ROOT}/ir/ets/etsParameterExpression.h
275    ${ES2PANDA_ROOT}/ir/ts/tsTypeQuery.h
276    ${ES2PANDA_ROOT}/ir/expressions/importExpression.h
277    ${ES2PANDA_ROOT}/varbinder/variable.h
278    ${ES2PANDA_ROOT}/varbinder/scope.h
279    ${ES2PANDA_ROOT}/varbinder/varbinder.h
280    ${ES2PANDA_ROOT}/varbinder/ETSBinder.h
281    ${ES2PANDA_ROOT}/varbinder/declaration.h
282    ${ES2PANDA_ROOT}/varbinder/recordTable.h
283    ${ES2PANDA_ROOT}/checker/checker.h
284    ${ES2PANDA_ROOT}/checker/ETSchecker.h
285    ${ES2PANDA_ROOT}/checker/checkerContext.h
286    ${ES2PANDA_ROOT}/checker/resolveResult.h
287    ${ES2PANDA_ROOT}/parser/ETSparser.h
288    ${ES2PANDA_ROOT}/parser/parserFlags.h
289    ${ES2PANDA_ROOT}/parser/parserImpl.h
290    ${ES2PANDA_ROOT}/parser/program/program.h
291    ${ES2PANDA_ROOT}/es2panda.h
292    ${ES2PANDA_ROOT}/ast_verifier/ASTVerifier.h
293    ${ES2PANDA_ROOT}/util/importPathManager.h
294    ${ES2PANDA_ROOT}/util/path.h
295    ${ES2PANDA_ROOT}/util/arktsconfig.h
296)
297
298set (ES2PANDA_API_GENERATED
299    ${LIBGEN_DIR}/gen/headers/checker/types/typeMapping.yaml
300    ${LIBGEN_DIR}/gen/headers/options.yaml
301    ${LIBGEN_DIR}/gen/headers/util/options.yaml
302    ${LIBGEN_DIR}/gen/headers/ir/astNodeMapping.yaml
303    ${LIBGEN_DIR}/gen/headers/varbinder/variableFlags.yaml
304    ${LIBGEN_DIR}/gen/headers/ir/typed.yaml
305    ${LIBGEN_DIR}/gen/headers/ir/annotationAllowed.yaml
306    ${LIBGEN_DIR}/gen/headers/ir/jsDocAllowed.yaml
307    ${LIBGEN_DIR}/gen/headers/es2panda.yaml
308    ${LIBGEN_DIR}/gen/headers/ir/statements/labelledStatement.yaml
309    ${LIBGEN_DIR}/gen/headers/checker/types/ts/unknownType.yaml
310    ${LIBGEN_DIR}/gen/headers/ir/statements/throwStatement.yaml
311    ${LIBGEN_DIR}/gen/headers/ir/base/classProperty.yaml
312    ${LIBGEN_DIR}/gen/headers/ir/ts/tsVoidKeyword.yaml
313    ${LIBGEN_DIR}/gen/headers/checker/types/ts/stringLiteralType.yaml
314    ${LIBGEN_DIR}/gen/headers/ir/ets/etsFunctionType.yaml
315    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTypeOperator.yaml
316    ${LIBGEN_DIR}/gen/headers/ir/statements/ifStatement.yaml
317    ${LIBGEN_DIR}/gen/headers/ir/ts/tsConstructorType.yaml
318    ${LIBGEN_DIR}/gen/headers/ir/base/decorator.yaml
319    ${LIBGEN_DIR}/gen/headers/ir/ts/tsEnumDeclaration.yaml
320    ${LIBGEN_DIR}/gen/headers/ir/ts/tsNeverKeyword.yaml
321    ${LIBGEN_DIR}/gen/headers/ir/module/importDefaultSpecifier.yaml
322    ${LIBGEN_DIR}/gen/headers/checker/types/ts/objectType.yaml
323    ${LIBGEN_DIR}/gen/headers/ir/expressions/objectExpression.yaml
324    ${LIBGEN_DIR}/gen/headers/ir/module/importSpecifier.yaml
325    ${LIBGEN_DIR}/gen/headers/ir/expressions/conditionalExpression.yaml
326    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsDynamicFunctionType.yaml
327    ${LIBGEN_DIR}/gen/headers/ir/expressions/callExpression.yaml
328    ${LIBGEN_DIR}/gen/headers/ir/expressions/literals/bigIntLiteral.yaml
329    ${LIBGEN_DIR}/gen/headers/ir/base/classElement.yaml
330    ${LIBGEN_DIR}/gen/headers/checker/types/ets/types.yaml
331    ${LIBGEN_DIR}/gen/headers/ir/ts/tsImportType.yaml
332    ${LIBGEN_DIR}/gen/headers/ir/expressions/taggedTemplateExpression.yaml
333    ${LIBGEN_DIR}/gen/headers/ir/visitor/IterateAstVisitor.yaml
334    ${LIBGEN_DIR}/gen/headers/ir/statements/functionDeclaration.yaml
335    ${LIBGEN_DIR}/gen/headers/ir/ets/etsTypeReference.yaml
336    ${LIBGEN_DIR}/gen/headers/checker/types/ts/tupleType.yaml
337    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTypeReference.yaml
338    ${LIBGEN_DIR}/gen/headers/checker/types/ts/functionType.yaml
339    ${LIBGEN_DIR}/gen/headers/ir/as/namedType.yaml
340    ${LIBGEN_DIR}/gen/headers/ir/expressions/literals/numberLiteral.yaml
341    ${LIBGEN_DIR}/gen/headers/ir/ts/tsFunctionType.yaml
342    ${LIBGEN_DIR}/gen/headers/ir/base/templateElement.yaml
343    ${LIBGEN_DIR}/gen/headers/ir/ts/tsInterfaceDeclaration.yaml
344    ${LIBGEN_DIR}/gen/headers/checker/types/ts/typeReference.yaml
345    ${LIBGEN_DIR}/gen/headers/ir/statements/variableDeclaration.yaml
346    ${LIBGEN_DIR}/gen/headers/checker/types/ts/booleanType.yaml
347    ${LIBGEN_DIR}/gen/headers/checker/types/ts/neverType.yaml
348    ${LIBGEN_DIR}/gen/headers/checker/types/ts/numberType.yaml
349    ${LIBGEN_DIR}/gen/headers/ir/expressions/literals/undefinedLiteral.yaml
350    ${LIBGEN_DIR}/gen/headers/allEnums.yaml
351    ${LIBGEN_DIR}/gen/headers/checker/types/ts/indexInfo.yaml
352    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsFunctionType.yaml
353    ${LIBGEN_DIR}/gen/headers/ir/expressions/memberExpression.yaml
354    ${LIBGEN_DIR}/gen/headers/ir/ts/tsClassImplements.yaml
355    ${LIBGEN_DIR}/gen/headers/ir/ts/tsObjectKeyword.yaml
356    ${LIBGEN_DIR}/gen/headers/checker/types/ts/unionType.yaml
357    ${LIBGEN_DIR}/gen/headers/ir/ets/etsUnionType.yaml
358    ${LIBGEN_DIR}/gen/headers/ir/ets/etsKeyofType.yaml
359    ${LIBGEN_DIR}/gen/headers/ir/base/tsPropertySignature.yaml
360    ${LIBGEN_DIR}/gen/headers/checker/types/ts/objectDescriptor.yaml
361    ${LIBGEN_DIR}/gen/headers/ir/ts/tsConditionalType.yaml
362    ${LIBGEN_DIR}/gen/headers/ir/ts/tsLiteralType.yaml
363    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTypeAliasDeclaration.yaml
364    ${LIBGEN_DIR}/gen/headers/ir/statements/debuggerStatement.yaml
365    ${LIBGEN_DIR}/gen/headers/checker/types/ts/elementFlags.yaml
366    ${LIBGEN_DIR}/gen/headers/ir/statements/returnStatement.yaml
367    ${LIBGEN_DIR}/gen/headers/ir/module/exportDefaultDeclaration.yaml
368    ${LIBGEN_DIR}/gen/headers/ir/base/scriptFunction.yaml
369    ${LIBGEN_DIR}/gen/headers/ir/base/classDefinition.yaml
370    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsArrayType.yaml
371    ${LIBGEN_DIR}/gen/headers/checker/types/ts/interfaceType.yaml
372    ${LIBGEN_DIR}/gen/headers/ir/expressions/arrayExpression.yaml
373    ${LIBGEN_DIR}/gen/headers/ir/ts/tsInterfaceBody.yaml
374    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTypeQuery.yaml
375    ${LIBGEN_DIR}/gen/headers/ir/ts/tsBigintKeyword.yaml
376    ${LIBGEN_DIR}/gen/headers/ir/base/property.yaml
377    ${LIBGEN_DIR}/gen/headers/ir/statements/variableDeclarator.yaml
378    ${LIBGEN_DIR}/gen/headers/ir/expressions/literals/stringLiteral.yaml
379    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTypeAssertion.yaml
380    ${LIBGEN_DIR}/gen/headers/ir/ts/tsExternalModuleReference.yaml
381    ${LIBGEN_DIR}/gen/headers/ir/ts/tsUndefinedKeyword.yaml
382    ${LIBGEN_DIR}/gen/headers/checker/types/signature.yaml
383    ${LIBGEN_DIR}/gen/headers/ir/ets/etsTuple.yaml
384    ${LIBGEN_DIR}/gen/headers/ir/ets/etsStringLiteralType.yaml
385    ${LIBGEN_DIR}/gen/headers/util/language.yaml
386    ${LIBGEN_DIR}/gen/headers/ir/statements/tryStatement.yaml
387    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsBigIntType.yaml
388    ${LIBGEN_DIR}/gen/headers/checker/types/ts/anyType.yaml
389    ${LIBGEN_DIR}/gen/headers/checker/types/globalTypesHolder.yaml
390    ${LIBGEN_DIR}/gen/headers/checker/types/ets/longType.yaml
391    ${LIBGEN_DIR}/gen/headers/ir/astNode.yaml
392    ${LIBGEN_DIR}/gen/headers/ir/expressions/unaryExpression.yaml
393    ${LIBGEN_DIR}/gen/headers/ir/statements/forInStatement.yaml
394    ${LIBGEN_DIR}/gen/headers/ir/expressions/thisExpression.yaml
395    ${LIBGEN_DIR}/gen/headers/ir/base/tsMethodSignature.yaml
396    ${LIBGEN_DIR}/gen/headers/ir/expressions/binaryExpression.yaml
397    ${LIBGEN_DIR}/gen/headers/checker/types/ts/bigintLiteralType.yaml
398    ${LIBGEN_DIR}/gen/headers/ir/expressions/superExpression.yaml
399    ${LIBGEN_DIR}/gen/headers/ir/statements/assertStatement.yaml
400    ${LIBGEN_DIR}/gen/headers/ir/ts/tsStringKeyword.yaml
401    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsAsyncFuncReturnType.yaml
402    ${LIBGEN_DIR}/gen/headers/ir/expressions/assignmentExpression.yaml
403    ${LIBGEN_DIR}/gen/headers/checker/types/ts/voidType.yaml
404    ${LIBGEN_DIR}/gen/headers/checker/types/ets/doubleType.yaml
405    ${LIBGEN_DIR}/gen/headers/ir/statements/expressionStatement.yaml
406    ${LIBGEN_DIR}/gen/headers/ir/ets/etsModule.yaml
407    ${LIBGEN_DIR}/gen/headers/ir/base/metaProperty.yaml
408    ${LIBGEN_DIR}/gen/headers/ir/ts/tsArrayType.yaml
409    ${LIBGEN_DIR}/gen/headers/ir/base/tsSignatureDeclaration.yaml
410    ${LIBGEN_DIR}/gen/headers/ir/module/exportAllDeclaration.yaml
411    ${LIBGEN_DIR}/gen/headers/ir/module/exportSpecifier.yaml
412    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTupleType.yaml
413    ${LIBGEN_DIR}/gen/headers/ir/expressions/functionExpression.yaml
414    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsExtensionFuncHelperType.yaml
415    ${LIBGEN_DIR}/gen/headers/ir/base/tsIndexSignature.yaml
416    ${LIBGEN_DIR}/gen/headers/checker/types/ts/nullType.yaml
417    ${LIBGEN_DIR}/gen/headers/ir/ts/tsModuleDeclaration.yaml
418    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsVoidType.yaml
419    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsNonNullishType.yaml
420    ${LIBGEN_DIR}/gen/headers/checker/types/ts/bigintType.yaml
421    ${LIBGEN_DIR}/gen/headers/ir/module/importDeclaration.yaml
422    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsStringType.yaml
423    ${LIBGEN_DIR}/gen/headers/ir/ts/tsParenthesizedType.yaml
424    ${LIBGEN_DIR}/gen/headers/ir/astNodeFlags.yaml
425    ${LIBGEN_DIR}/gen/headers/checker/types/ts/typeParameter.yaml
426    ${LIBGEN_DIR}/gen/headers/ir/expressions/literal.yaml
427    ${LIBGEN_DIR}/gen/headers/ir/expressions/literals/charLiteral.yaml
428    ${LIBGEN_DIR}/gen/headers/checker/types/ets/intType.yaml
429    ${LIBGEN_DIR}/gen/headers/checker/types/ts/objectLiteralType.yaml
430    ${LIBGEN_DIR}/gen/headers/checker/types/typeFlag.yaml
431    ${LIBGEN_DIR}/gen/headers/ir/ets/etsPackageDeclaration.yaml
432    ${LIBGEN_DIR}/gen/headers/ir/ets/etsImportDeclaration.yaml
433    ${LIBGEN_DIR}/gen/headers/ir/ets/etsStructDeclaration.yaml
434    ${LIBGEN_DIR}/gen/headers/ir/ts/tsModuleBlock.yaml
435    ${LIBGEN_DIR}/gen/headers/ir/ets/etsNewArrayInstanceExpression.yaml
436    ${LIBGEN_DIR}/gen/headers/ir/statements/loopStatement.yaml
437    ${LIBGEN_DIR}/gen/headers/ir/statements/annotationDeclaration.yaml
438    ${LIBGEN_DIR}/gen/headers/ir/statements/annotationUsage.yaml
439    ${LIBGEN_DIR}/gen/headers/ir/statements/emptyStatement.yaml
440    ${LIBGEN_DIR}/gen/headers/ir/statements/whileStatement.yaml
441    ${LIBGEN_DIR}/gen/headers/ir/base/scriptFunctionSignature.yaml
442    ${LIBGEN_DIR}/gen/headers/checker/types/ts/numberLiteralType.yaml
443    ${LIBGEN_DIR}/gen/headers/ir/expressions/chainExpression.yaml
444    ${LIBGEN_DIR}/gen/headers/ir/ts/tsIntersectionType.yaml
445    ${LIBGEN_DIR}/gen/headers/ir/expressions/updateExpression.yaml
446    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsEnumType.yaml
447    ${LIBGEN_DIR}/gen/headers/ir/expressions/blockExpression.yaml
448    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTypeLiteral.yaml
449    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTypeParameter.yaml
450    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsDynamicType.yaml
451    ${LIBGEN_DIR}/gen/headers/checker/types/ets/charType.yaml
452    ${LIBGEN_DIR}/gen/headers/ir/ts/tsBooleanKeyword.yaml
453    ${LIBGEN_DIR}/gen/headers/ir/base/spreadElement.yaml
454    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTypePredicate.yaml
455    ${LIBGEN_DIR}/gen/headers/ir/module/importNamespaceSpecifier.yaml
456    ${LIBGEN_DIR}/gen/headers/ir/module/exportNamedDeclaration.yaml
457    ${LIBGEN_DIR}/gen/headers/ir/ets/etsParameterExpression.yaml
458    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTypeParameterInstantiation.yaml
459    ${LIBGEN_DIR}/gen/headers/ir/expressions/literals/nullLiteral.yaml
460    ${LIBGEN_DIR}/gen/headers/ir/ts/tsInferType.yaml
461    ${LIBGEN_DIR}/gen/headers/ir/statements/switchCaseStatement.yaml
462    ${LIBGEN_DIR}/gen/headers/ir/expressions/yieldExpression.yaml
463    ${LIBGEN_DIR}/gen/headers/checker/types/ts/undefinedType.yaml
464    ${LIBGEN_DIR}/gen/headers/ir/ts/tsImportEqualsDeclaration.yaml
465    ${LIBGEN_DIR}/gen/headers/checker/types/ts/stringType.yaml
466    ${LIBGEN_DIR}/gen/headers/ir/expressions/literals/booleanLiteral.yaml
467    ${LIBGEN_DIR}/gen/headers/ir/ts/tsNumberKeyword.yaml
468    ${LIBGEN_DIR}/gen/headers/checker/types/ts/nonPrimitiveType.yaml
469    ${LIBGEN_DIR}/gen/headers/ir/base/classStaticBlock.yaml
470    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsNullishTypes.yaml
471    ${LIBGEN_DIR}/gen/headers/checker/types/type.yaml
472    ${LIBGEN_DIR}/gen/headers/ir/ts/tsNonNullExpression.yaml
473    ${LIBGEN_DIR}/gen/headers/ir/as/prefixAssertionExpression.yaml
474    ${LIBGEN_DIR}/gen/headers/checker/types/typeFacts.yaml
475    ${LIBGEN_DIR}/gen/headers/ir/expressions/classExpression.yaml
476    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsTupleType.yaml
477    ${LIBGEN_DIR}/gen/headers/pathsToHeaders.yaml
478    ${LIBGEN_DIR}/gen/headers/ir/statements/forOfStatement.yaml
479    ${LIBGEN_DIR}/gen/headers/checker/types/typeRelation.yaml
480    ${LIBGEN_DIR}/gen/headers/ir/expressions/templateLiteral.yaml
481    ${LIBGEN_DIR}/gen/headers/ir/ts/tsUnionType.yaml
482    ${LIBGEN_DIR}/gen/headers/ir/ts/tsUnknownKeyword.yaml
483    ${LIBGEN_DIR}/gen/headers/ir/expressions/identifier.yaml
484    ${LIBGEN_DIR}/gen/headers/ir/opaqueTypeNode.yaml
485    ${LIBGEN_DIR}/gen/headers/ir/statements/blockStatement.yaml
486    ${LIBGEN_DIR}/gen/headers/ir/statement.yaml
487    ${LIBGEN_DIR}/gen/headers/ir/expressions/directEvalExpression.yaml
488    ${LIBGEN_DIR}/gen/headers/ir/ts/tsTypeParameterDeclaration.yaml
489    ${LIBGEN_DIR}/gen/headers/ir/base/methodDefinition.yaml
490    ${LIBGEN_DIR}/gen/headers/ir/ts/tsNullKeyword.yaml
491    ${LIBGEN_DIR}/gen/headers/ir/ts/tsInterfaceHeritage.yaml
492    ${LIBGEN_DIR}/gen/headers/checker/types/ts/enumLiteralType.yaml
493    ${LIBGEN_DIR}/gen/headers/ir/expression.yaml
494    ${LIBGEN_DIR}/gen/headers/ir/srcDump.yaml
495    ${LIBGEN_DIR}/gen/headers/checker/types/ts/types.yaml
496    ${LIBGEN_DIR}/gen/headers/checker/types/ets/floatType.yaml
497    ${LIBGEN_DIR}/gen/headers/ir/ets/etsClassLiteral.yaml
498    ${LIBGEN_DIR}/gen/headers/ir/irnode.yaml
499    ${LIBGEN_DIR}/gen/headers/ir/statements/breakStatement.yaml
500    ${LIBGEN_DIR}/gen/headers/checker/types/ets/byteType.yaml
501    ${LIBGEN_DIR}/gen/headers/ir/expressions/literals/regExpLiteral.yaml
502    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsTypeParameter.yaml
503    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsObjectTypeConstants.yaml
504    ${LIBGEN_DIR}/gen/headers/ir/ts/tsMappedType.yaml
505    ${LIBGEN_DIR}/gen/headers/ir/opcodeMap.yaml
506    ${LIBGEN_DIR}/gen/headers/ir/ts/tsAnyKeyword.yaml
507    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsUnionType.yaml
508    ${LIBGEN_DIR}/gen/headers/ir/statements/classDeclaration.yaml
509    ${LIBGEN_DIR}/gen/headers/checker/types/ts/enumType.yaml
510    ${LIBGEN_DIR}/gen/headers/ir/ts/tsIndexedAccessType.yaml
511    ${LIBGEN_DIR}/gen/headers/ir/ts/tsQualifiedName.yaml
512    ${LIBGEN_DIR}/gen/headers/ir/expressions/awaitExpression.yaml
513    ${LIBGEN_DIR}/gen/headers/ir/validationInfo.yaml
514    ${LIBGEN_DIR}/gen/headers/ir/statements/continueStatement.yaml
515    ${LIBGEN_DIR}/gen/headers/ir/ets/etsNewMultiDimArrayInstanceExpression.yaml
516    ${LIBGEN_DIR}/gen/headers/ir/ts/tsNamedTupleMember.yaml
517    ${LIBGEN_DIR}/gen/headers/ir/expressions/importExpression.yaml
518    ${LIBGEN_DIR}/gen/headers/ir/astDump.yaml
519    ${LIBGEN_DIR}/gen/headers/ir/ets/etsNullishTypes.yaml
520    ${LIBGEN_DIR}/gen/headers/ir/expressions/typeofExpression.yaml
521    ${LIBGEN_DIR}/gen/headers/ir/ts/tsEnumMember.yaml
522    ${LIBGEN_DIR}/gen/headers/checker/types/ets/wildcardType.yaml
523    ${LIBGEN_DIR}/gen/headers/lexer/regexp/regexp.yaml
524    ${LIBGEN_DIR}/gen/headers/ir/statements/switchStatement.yaml
525    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsBooleanType.yaml
526    ${LIBGEN_DIR}/gen/headers/ir/statements/doWhileStatement.yaml
527    ${LIBGEN_DIR}/gen/headers/ir/base/catchClause.yaml
528    ${LIBGEN_DIR}/gen/headers/checker/types/ts/constructorType.yaml
529    ${LIBGEN_DIR}/gen/headers/ir/visitor/AstVisitor.yaml
530    ${LIBGEN_DIR}/gen/headers/ir/expressions/sequenceExpression.yaml
531    ${LIBGEN_DIR}/gen/headers/ir/expressions/arrowFunctionExpression.yaml
532    ${LIBGEN_DIR}/gen/headers/checker/types/ts/booleanLiteralType.yaml
533    ${LIBGEN_DIR}/gen/headers/checker/types/ets/etsObjectType.yaml
534    ${LIBGEN_DIR}/gen/headers/ir/expressions/omittedExpression.yaml
535    ${LIBGEN_DIR}/gen/headers/checker/types/ts/arrayType.yaml
536    ${LIBGEN_DIR}/gen/headers/tokenType.yaml
537    ${LIBGEN_DIR}/gen/headers/ir/ets/etsNewClassInstanceExpression.yaml
538    ${LIBGEN_DIR}/gen/headers/ir/ts/tsAsExpression.yaml
539    ${LIBGEN_DIR}/gen/headers/ir/statements/forUpdateStatement.yaml
540    ${LIBGEN_DIR}/gen/headers/ir/ets/etsTypeReferencePart.yaml
541    ${LIBGEN_DIR}/gen/headers/ir/ets/etsReExportDeclaration.yaml
542    ${LIBGEN_DIR}/gen/headers/ir/ets/etsPrimitiveType.yaml
543    ${LIBGEN_DIR}/gen/headers/ir/typeNode.yaml
544    ${LIBGEN_DIR}/gen/headers/ir/expressions/newExpression.yaml
545    ${LIBGEN_DIR}/gen/headers/ir/ts/tsParameterProperty.yaml
546    ${LIBGEN_DIR}/gen/headers/ir/ets/etsWildcardType.yaml
547    ${LIBGEN_DIR}/gen/headers/checker/types/ets/shortType.yaml
548    ${LIBGEN_DIR}/gen/headers/ir/ts/tsThisType.yaml
549    ${LIBGEN_DIR}/gen/headers/varbinder/variable.yaml
550    ${LIBGEN_DIR}/gen/headers/varbinder/scope.yaml
551    ${LIBGEN_DIR}/gen/headers/varbinder/varbinder.yaml
552    ${LIBGEN_DIR}/gen/headers/varbinder/ETSBinder.yaml
553    ${LIBGEN_DIR}/gen/headers/varbinder/declaration.yaml
554    ${LIBGEN_DIR}/gen/headers/varbinder/recordTable.yaml
555    ${LIBGEN_DIR}/gen/headers/checker/checker.yaml
556    ${LIBGEN_DIR}/gen/headers/checker/ETSchecker.yaml
557    ${LIBGEN_DIR}/gen/headers/checker/checkerContext.yaml
558    ${LIBGEN_DIR}/gen/headers/checker/resolveResult.yaml
559    ${LIBGEN_DIR}/gen/headers/parser/parserFlags.yaml
560    ${LIBGEN_DIR}/gen/headers/parser/ETSparser.yaml
561    ${LIBGEN_DIR}/gen/headers/parser/program/program.yaml
562    ${LIBGEN_DIR}/gen/headers/ast_verifier/ASTVerifier.yaml
563    ${LIBGEN_DIR}/gen/headers/util/importPathManager.yaml
564    ${LIBGEN_DIR}/gen/headers/util/path.yaml
565    ${LIBGEN_DIR}/gen/headers/util/arktsconfig.yaml
566    )
567
568
569list(APPEND ES2PANDA_API ${ES2PANDA_API_GENERATED})
570foreach(_ IN LISTS ES2PANDA_API)
571    list(APPEND RB_LIST "${CMAKE_CURRENT_SOURCE_DIR}/${LIB_NAME}.rb")
572endforeach()
573
574set (ES2PANDA_INC
575    ${LIB_NAME}_include.inc.erb
576    ${LIB_NAME}_decl.inc.erb
577    ${LIB_NAME}_enums.inc.erb
578    ${LIB_NAME}_impl.inc.erb
579    ${LIB_NAME}_list.inc.erb
580    ${LIB_NAME}.idl.erb
581)
582
583panda_gen(
584    DATA ${ES2PANDA_API}
585    TARGET_NAME gen_api
586    TEMPLATES ${ES2PANDA_INC}
587    API ${RB_LIST}
588    DESTINATION ${LIBGEN_DIR}
589    SOURCE ${CMAKE_CURRENT_SOURCE_DIR}
590    EXTRA_DEPENDENCIES gen_yamls ${CMAKE_CURRENT_SOURCE_DIR}/enums.rb
591)
592
593set(HEADERS_PARSER_SOURCES
594    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/cpp_keywords.py
595    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/cpp_parser.py
596    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/file_tools.py
597    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/line_iterator.py
598    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/log_tools.py
599    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/main.py
600    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/parse_arguments.py
601    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/parse_class.py
602    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/parse_define.py
603    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/parse_enum.py
604    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/parse_method.py
605    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/parse_namespace.py
606    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/parse_struct.py
607    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/parse_using.py
608    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/prepare_header.py
609    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/runtime_collections.py
610    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/supported_types.py
611    ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/text_tools.py
612)
613
614add_custom_command(
615    OUTPUT ${ES2PANDA_API_GENERATED}
616    COMMAND python3 -B ${CMAKE_CURRENT_SOURCE_DIR}/headers_parser/main.py
617        --es2panda-root "${ES2PANDA_ROOT}" --lib-gen-dir "${LIBGEN_DIR}" --headers ${HEADERS_TO_BE_PARSED}
618    DEPENDS ${HEADERS_TO_BE_PARSED} ${HEADERS_PARSER_SOURCES}
619)
620
621add_custom_target(gen_yamls DEPENDS es2panda_options_gen es2panda_keywords ${ES2PANDA_API_GENERATED} ${HEADERS_PARSER_SOURCES})
622
623
624set(ES2PANDA_PUBLIC_SOURCES
625    ${LIB_NAME}.cpp
626    ../declgen_ets2ts/declgenEts2Ts.cpp
627    ../util/generateBin.cpp
628    ../util/options.cpp
629    ../util/plugin.cpp
630)
631
632
633panda_add_library(es2panda-public ${PANDA_DEFAULT_LIB_TYPE} ${ES2PANDA_PUBLIC_SOURCES})
634add_dependencies(es2panda-lib gen_api)
635add_dependencies(es2panda-public es2panda-lib)
636
637
638panda_target_include_directories(es2panda-public
639    PRIVATE ${ES2PANDA_ROOT}/
640    PRIVATE ${OUTPUT_DIR}
641)
642
643panda_target_compile_options(es2panda-public
644  PRIVATE -fexceptions -Werror=shadow
645)
646
647panda_target_link_libraries(es2panda-public
648  PUBLIC arkbase es2panda-lib
649  PRIVATE arkbytecodeopt
650)
651
652panda_add_sanitizers(TARGET es2panda-public SANITIZERS
653  ${PANDA_SANITIZERS_LIST})
654