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