13af6ab5fSopenharmony_ci# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
23af6ab5fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
33af6ab5fSopenharmony_ci# you may not use this file except in compliance with the License.
43af6ab5fSopenharmony_ci# You may obtain a copy of the License at
53af6ab5fSopenharmony_ci#
63af6ab5fSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0
73af6ab5fSopenharmony_ci#
83af6ab5fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
93af6ab5fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
103af6ab5fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
113af6ab5fSopenharmony_ci# See the License for the specific language governing permissions and
123af6ab5fSopenharmony_ci# limitations under the License.
133af6ab5fSopenharmony_ci
143af6ab5fSopenharmony_cicmake_minimum_required (VERSION 3.5.0)
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ciinclude(cmake/coverage.cmake)
173af6ab5fSopenharmony_ci
183af6ab5fSopenharmony_ciproject (es2panda)
193af6ab5fSopenharmony_ciset(CMAKE_EXPORT_COMPILE_COMMANDS ON)
203af6ab5fSopenharmony_ci
213af6ab5fSopenharmony_ciset(ES2PANDA_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
223af6ab5fSopenharmony_ciset(ES2PANDA_BINARY_ROOT ${CMAKE_CURRENT_BINARY_DIR})
233af6ab5fSopenharmony_ci
243af6ab5fSopenharmony_ciset(OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
253af6ab5fSopenharmony_ciset(GENERATED_DIR ${OUTPUT_DIR}/generated)
263af6ab5fSopenharmony_ciset(GENERATED_STAMP ${OUTPUT_DIR}/gen_dir.stamp)
273af6ab5fSopenharmony_ciif(CMAKE_CROSSCOMPILING)
283af6ab5fSopenharmony_ci    ExternalProject_Get_Property(panda_host_tools binary_dir)
293af6ab5fSopenharmony_ci    set(DEFAULT_ARKTSCONFIG    "${binary_dir}/tools/es2panda/aot")
303af6ab5fSopenharmony_cielse()
313af6ab5fSopenharmony_ci    set(DEFAULT_ARKTSCONFIG "${CMAKE_BINARY_DIR}/bin")
323af6ab5fSopenharmony_ciendif()
333af6ab5fSopenharmony_cifile(MAKE_DIRECTORY "${GENERATED_DIR}")
343af6ab5fSopenharmony_ciif(PANDA_WITH_ETS)
353af6ab5fSopenharmony_ci  file(WRITE "${GENERATED_DIR}/arktsconfig.json"
363af6ab5fSopenharmony_ci      "{\n"
373af6ab5fSopenharmony_ci      "  \"compilerOptions\": {\n"
383af6ab5fSopenharmony_ci      "    \"baseUrl\": \"${PANDA_ROOT}\",\n"
393af6ab5fSopenharmony_ci      "    \"paths\": {\n"
403af6ab5fSopenharmony_ci      "      \"std\": [\"${PANDA_ROOT}/plugins/ets/stdlib/std\"],\n"
413af6ab5fSopenharmony_ci      "      \"escompat\": [\"${PANDA_ROOT}/plugins/ets/stdlib/escompat\"],\n"
423af6ab5fSopenharmony_ci      "      \"import_tests\": [\"${CMAKE_CURRENT_SOURCE_DIR}/test/parser/ets/import_tests\"],\n"
433af6ab5fSopenharmony_ci      "      \"dynamic_import_tests\": [\"${CMAKE_CURRENT_SOURCE_DIR}/test/parser/ets/dynamic_import_tests\"]\n"
443af6ab5fSopenharmony_ci      "    },\n"
453af6ab5fSopenharmony_ci      "    \"dynamicPaths\": {\n"
463af6ab5fSopenharmony_ci      "      \"dynamic_js_import_tests\": {\"language\": \"js\", \"hasDecl\": false},\n"
473af6ab5fSopenharmony_ci      "      \"${CMAKE_CURRENT_SOURCE_DIR}/test/parser/ets/dynamic_import_tests\": {\"language\": \"js\", \"hasDecl\": true}\n"
483af6ab5fSopenharmony_ci      "    }\n"
493af6ab5fSopenharmony_ci      "  }\n"
503af6ab5fSopenharmony_ci      "}\n"
513af6ab5fSopenharmony_ci  )
523af6ab5fSopenharmony_ci  file(COPY "${GENERATED_DIR}/arktsconfig.json" DESTINATION "${DEFAULT_ARKTSCONFIG}/")
533af6ab5fSopenharmony_ci  file(COPY "${GENERATED_DIR}/arktsconfig.json" DESTINATION "${CMAKE_BINARY_DIR}/bin")
543af6ab5fSopenharmony_ciendif()
553af6ab5fSopenharmony_ci
563af6ab5fSopenharmony_ciif(NOT PANDA_PRODUCT_BUILD)
573af6ab5fSopenharmony_ci  execute_process(
583af6ab5fSopenharmony_ci    COMMAND date "+%Y-%m-%d_%H:%M:%S"
593af6ab5fSopenharmony_ci    OUTPUT_VARIABLE CURRENT_DATE
603af6ab5fSopenharmony_ci    OUTPUT_STRIP_TRAILING_WHITESPACE
613af6ab5fSopenharmony_ci  )
623af6ab5fSopenharmony_ci  execute_process(
633af6ab5fSopenharmony_ci    COMMAND git rev-parse HEAD
643af6ab5fSopenharmony_ci    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
653af6ab5fSopenharmony_ci    OUTPUT_VARIABLE LAST_COMMIT_HASH
663af6ab5fSopenharmony_ci    OUTPUT_STRIP_TRAILING_WHITESPACE
673af6ab5fSopenharmony_ci  )
683af6ab5fSopenharmony_ci
693af6ab5fSopenharmony_ci  set_source_files_properties(
703af6ab5fSopenharmony_ci    util/options.cpp
713af6ab5fSopenharmony_ci    PROPERTIES COMPILE_DEFINITIONS "ES2PANDA_DATE=\"${CURRENT_DATE}\";ES2PANDA_HASH=\"${LAST_COMMIT_HASH}\""
723af6ab5fSopenharmony_ci  )
733af6ab5fSopenharmony_ciendif()
743af6ab5fSopenharmony_ci
753af6ab5fSopenharmony_ciadd_custom_command(
763af6ab5fSopenharmony_ci  OUTPUT ${GENERATED_STAMP}
773af6ab5fSopenharmony_ci  COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
783af6ab5fSopenharmony_ci  COMMAND ${CMAKE_COMMAND} -E make_directory ${GENERATED_DIR}
793af6ab5fSopenharmony_ci  COMMAND ${CMAKE_COMMAND} -E touch ${GENERATED_STAMP}
803af6ab5fSopenharmony_ci)
813af6ab5fSopenharmony_ci
823af6ab5fSopenharmony_ciset(TEMPLATES
833af6ab5fSopenharmony_ci  isa.h.erb
843af6ab5fSopenharmony_ci  formats.h.erb
853af6ab5fSopenharmony_ci)
863af6ab5fSopenharmony_ci
873af6ab5fSopenharmony_cipanda_isa_gen(
883af6ab5fSopenharmony_ci  TEMPLATES ${TEMPLATES}
893af6ab5fSopenharmony_ci  SOURCE ${CMAKE_CURRENT_LIST_DIR}/compiler/templates
903af6ab5fSopenharmony_ci  DESTINATION ${GENERATED_DIR}
913af6ab5fSopenharmony_ci  EXTRA_DEPENDENCIES ${GENERATED_STAMP}
923af6ab5fSopenharmony_ci)
933af6ab5fSopenharmony_ci
943af6ab5fSopenharmony_cipanda_gen(
953af6ab5fSopenharmony_ci    DATA ${CMAKE_CURRENT_SOURCE_DIR}/lexer/scripts/keywords.yaml
963af6ab5fSopenharmony_ci    TARGET_NAME es2panda_keywords
973af6ab5fSopenharmony_ci    TEMPLATES keywords.h.erb
983af6ab5fSopenharmony_ci    API
993af6ab5fSopenharmony_ci       ${CMAKE_CURRENT_SOURCE_DIR}/lexer/scripts/keywords.rb
1003af6ab5fSopenharmony_ci    SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/lexer/templates
1013af6ab5fSopenharmony_ci    DESTINATION ${GENERATED_DIR}
1023af6ab5fSopenharmony_ci)
1033af6ab5fSopenharmony_ci
1043af6ab5fSopenharmony_cipanda_gen(
1053af6ab5fSopenharmony_ci    DATA ${CMAKE_CURRENT_SOURCE_DIR}/compiler/scripts/signatures.yaml
1063af6ab5fSopenharmony_ci    TARGET_NAME es2panda_signatures
1073af6ab5fSopenharmony_ci    TEMPLATES signatures.h.erb
1083af6ab5fSopenharmony_ci    API
1093af6ab5fSopenharmony_ci       ${CMAKE_CURRENT_SOURCE_DIR}/compiler/scripts/signatures.rb
1103af6ab5fSopenharmony_ci    SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/compiler/templates
1113af6ab5fSopenharmony_ci    DESTINATION ${GENERATED_DIR}
1123af6ab5fSopenharmony_ci)
1133af6ab5fSopenharmony_ci
1143af6ab5fSopenharmony_ciset(ES2PANDA_LIB_SRC
1153af6ab5fSopenharmony_ci  ast_verifier/ASTVerifier.cpp
1163af6ab5fSopenharmony_ci  ast_verifier/arithmeticOperationValid.cpp
1173af6ab5fSopenharmony_ci  ast_verifier/checkAbstractMethod.cpp
1183af6ab5fSopenharmony_ci  ast_verifier/checkContext.cpp
1193af6ab5fSopenharmony_ci  ast_verifier/checkInfiniteLoop.cpp
1203af6ab5fSopenharmony_ci  ast_verifier/checkScopeDeclaration.cpp
1213af6ab5fSopenharmony_ci  ast_verifier/everyChildHasValidParent.cpp
1223af6ab5fSopenharmony_ci  ast_verifier/everyChildInParentRange.cpp
1233af6ab5fSopenharmony_ci  ast_verifier/getterSetterValidation.cpp
1243af6ab5fSopenharmony_ci  ast_verifier/helpers.cpp
1253af6ab5fSopenharmony_ci  ast_verifier/identifierHasVariable.cpp
1263af6ab5fSopenharmony_ci  ast_verifier/importExportAccessValid.cpp
1273af6ab5fSopenharmony_ci  ast_verifier/nodeHasParent.cpp
1283af6ab5fSopenharmony_ci  ast_verifier/nodeHasSourceRange.cpp
1293af6ab5fSopenharmony_ci  ast_verifier/nodeHasType.cpp
1303af6ab5fSopenharmony_ci  ast_verifier/referenceTypeAnnotationIsNull.cpp
1313af6ab5fSopenharmony_ci  ast_verifier/forLoopCorrectlyInitialized.cpp
1323af6ab5fSopenharmony_ci  ast_verifier/modifierAccessValid.cpp
1333af6ab5fSopenharmony_ci  ast_verifier/sequenceExpressionHasLastType.cpp
1343af6ab5fSopenharmony_ci  ast_verifier/variableHasEnclosingScope.cpp
1353af6ab5fSopenharmony_ci  ast_verifier/variableHasScope.cpp
1363af6ab5fSopenharmony_ci  ast_verifier/variableNameIdentifierNameSame.cpp
1373af6ab5fSopenharmony_ci  es2panda.cpp
1383af6ab5fSopenharmony_ci  varbinder/ASBinder.cpp
1393af6ab5fSopenharmony_ci  varbinder/TSBinder.cpp
1403af6ab5fSopenharmony_ci  varbinder/TypedBinder.cpp
1413af6ab5fSopenharmony_ci  varbinder/ETSBinder.cpp
1423af6ab5fSopenharmony_ci  varbinder/JSBinder.cpp
1433af6ab5fSopenharmony_ci  varbinder/varbinder.cpp
1443af6ab5fSopenharmony_ci  varbinder/declaration.cpp
1453af6ab5fSopenharmony_ci  varbinder/recordTable.cpp
1463af6ab5fSopenharmony_ci  varbinder/scope.cpp
1473af6ab5fSopenharmony_ci  varbinder/variable.cpp
1483af6ab5fSopenharmony_ci  compiler/base/catchTable.cpp
1493af6ab5fSopenharmony_ci  compiler/base/condition.cpp
1503af6ab5fSopenharmony_ci  compiler/base/destructuring.cpp
1513af6ab5fSopenharmony_ci  compiler/base/hoisting.cpp
1523af6ab5fSopenharmony_ci  compiler/base/iterators.cpp
1533af6ab5fSopenharmony_ci  compiler/base/lexenv.cpp
1543af6ab5fSopenharmony_ci  compiler/base/literals.cpp
1553af6ab5fSopenharmony_ci  compiler/base/lreference.cpp
1563af6ab5fSopenharmony_ci  compiler/base/optionalChain.cpp
1573af6ab5fSopenharmony_ci  compiler/core/codeGen.cpp
1583af6ab5fSopenharmony_ci  compiler/core/compileJob.cpp
1593af6ab5fSopenharmony_ci  compiler/core/compileQueue.cpp
1603af6ab5fSopenharmony_ci  compiler/core/compilerImpl.cpp
1613af6ab5fSopenharmony_ci  compiler/core/dynamicContext.cpp
1623af6ab5fSopenharmony_ci  compiler/core/emitter.cpp
1633af6ab5fSopenharmony_ci  compiler/core/JSCompiler.cpp
1643af6ab5fSopenharmony_ci  compiler/core/JSCompilerUnreachable.cpp
1653af6ab5fSopenharmony_ci  compiler/core/JSemitter.cpp
1663af6ab5fSopenharmony_ci  compiler/core/envScope.cpp
1673af6ab5fSopenharmony_ci  compiler/core/function.cpp
1683af6ab5fSopenharmony_ci  compiler/core/labelTarget.cpp
1693af6ab5fSopenharmony_ci  compiler/core/moduleContext.cpp
1703af6ab5fSopenharmony_ci  compiler/core/pandagen.cpp
1713af6ab5fSopenharmony_ci  compiler/core/programElement.cpp
1723af6ab5fSopenharmony_ci  compiler/core/regAllocator.cpp
1733af6ab5fSopenharmony_ci  compiler/core/regScope.cpp
1743af6ab5fSopenharmony_ci  compiler/core/regSpiller.cpp
1753af6ab5fSopenharmony_ci  compiler/core/ETSCompiler.cpp
1763af6ab5fSopenharmony_ci  compiler/core/ETSCompilerUnrechable.cpp
1773af6ab5fSopenharmony_ci  compiler/core/ETSemitter.cpp
1783af6ab5fSopenharmony_ci  compiler/core/ETSGen.cpp
1793af6ab5fSopenharmony_ci  compiler/core/ETSfunction.cpp
1803af6ab5fSopenharmony_ci  compiler/core/switchBuilder.cpp
1813af6ab5fSopenharmony_ci  compiler/core/targetTypeContext.cpp
1823af6ab5fSopenharmony_ci  compiler/core/vReg.cpp
1833af6ab5fSopenharmony_ci  compiler/debugger/debuginfoDumper.cpp
1843af6ab5fSopenharmony_ci  compiler/function/asyncFunctionBuilder.cpp
1853af6ab5fSopenharmony_ci  compiler/function/asyncGeneratorFunctionBuilder.cpp
1863af6ab5fSopenharmony_ci  compiler/function/functionBuilder.cpp
1873af6ab5fSopenharmony_ci  compiler/function/generatorFunctionBuilder.cpp
1883af6ab5fSopenharmony_ci  compiler/lowering/checkerPhase.cpp
1893af6ab5fSopenharmony_ci  compiler/lowering/scopesInit/savedBindingsCtx.cpp
1903af6ab5fSopenharmony_ci  compiler/lowering/scopesInit/scopesInitPhase.cpp
1913af6ab5fSopenharmony_ci  compiler/lowering/phase.cpp
1923af6ab5fSopenharmony_ci  compiler/lowering/plugin_phase.cpp
1933af6ab5fSopenharmony_ci  compiler/lowering/resolveIdentifiers.cpp
1943af6ab5fSopenharmony_ci  compiler/lowering/util.cpp
1953af6ab5fSopenharmony_ci  compiler/lowering/ets/topLevelStmts/importExportDecls.cpp
1963af6ab5fSopenharmony_ci  compiler/lowering/ets/topLevelStmts/globalClassHandler.cpp
1973af6ab5fSopenharmony_ci  compiler/lowering/ets/topLevelStmts/globalDeclTransformer.cpp
1983af6ab5fSopenharmony_ci  compiler/lowering/ets/topLevelStmts/topLevelStmts.cpp
1993af6ab5fSopenharmony_ci  compiler/lowering/ets/expressionLambdaLowering.cpp
2003af6ab5fSopenharmony_ci  compiler/lowering/ets/genericBridgesLowering.cpp
2013af6ab5fSopenharmony_ci  compiler/lowering/ets/boxingForLocals.cpp
2023af6ab5fSopenharmony_ci  compiler/lowering/ets/capturedVariables.cpp
2033af6ab5fSopenharmony_ci  compiler/lowering/ets/lambdaLowering.cpp
2043af6ab5fSopenharmony_ci  compiler/lowering/ets/spreadLowering.cpp
2053af6ab5fSopenharmony_ci  compiler/lowering/ets/localClassLowering.cpp
2063af6ab5fSopenharmony_ci  compiler/lowering/ets/objectIndexAccess.cpp
2073af6ab5fSopenharmony_ci  compiler/lowering/ets/objectIterator.cpp
2083af6ab5fSopenharmony_ci  compiler/lowering/ets/interfacePropertyDeclarations.cpp
2093af6ab5fSopenharmony_ci  compiler/lowering/ets/opAssignment.cpp
2103af6ab5fSopenharmony_ci  compiler/lowering/ets/ambientLowering.cpp
2113af6ab5fSopenharmony_ci  compiler/lowering/ets/bigintLowering.cpp
2123af6ab5fSopenharmony_ci  compiler/lowering/ets/constStringToCharLowering.cpp
2133af6ab5fSopenharmony_ci  compiler/lowering/ets/recordLowering.cpp
2143af6ab5fSopenharmony_ci  compiler/lowering/ets/tupleLowering.cpp
2153af6ab5fSopenharmony_ci  compiler/lowering/ets/unionLowering.cpp
2163af6ab5fSopenharmony_ci  compiler/lowering/ets/optionalLowering.cpp
2173af6ab5fSopenharmony_ci  compiler/lowering/ets/expandBrackets.cpp
2183af6ab5fSopenharmony_ci  compiler/lowering/ets/packageImplicitImport.cpp
2193af6ab5fSopenharmony_ci  compiler/lowering/ets/partialExportClassGen.cpp
2203af6ab5fSopenharmony_ci  compiler/lowering/ets/promiseVoid.cpp
2213af6ab5fSopenharmony_ci  compiler/lowering/ets/structLowering.cpp
2223af6ab5fSopenharmony_ci  compiler/lowering/ets/defaultParameterLowering.cpp
2233af6ab5fSopenharmony_ci  compiler/lowering/ets/objectLiteralLowering.cpp
2243af6ab5fSopenharmony_ci  compiler/lowering/ets/interfaceObjectLiteralLowering.cpp
2253af6ab5fSopenharmony_ci  compiler/lowering/ets/stringComparison.cpp
2263af6ab5fSopenharmony_ci  compiler/lowering/ets/stringConstructorLowering.cpp
2273af6ab5fSopenharmony_ci  compiler/lowering/ets/enumLowering.cpp
2283af6ab5fSopenharmony_ci  compiler/lowering/ets/enumPostCheckLowering.cpp
2293af6ab5fSopenharmony_ci  ir/astDump.cpp
2303af6ab5fSopenharmony_ci  ir/srcDump.cpp
2313af6ab5fSopenharmony_ci  ir/astNode.cpp
2323af6ab5fSopenharmony_ci  ir/irnode.cpp
2333af6ab5fSopenharmony_ci  ir/typeNode.cpp
2343af6ab5fSopenharmony_ci  ir/opaqueTypeNode.cpp
2353af6ab5fSopenharmony_ci  ir/base/catchClause.cpp
2363af6ab5fSopenharmony_ci  ir/base/classElement.cpp
2373af6ab5fSopenharmony_ci  ir/base/classDefinition.cpp
2383af6ab5fSopenharmony_ci  ir/base/classProperty.cpp
2393af6ab5fSopenharmony_ci  ir/base/classStaticBlock.cpp
2403af6ab5fSopenharmony_ci  ir/base/decorator.cpp
2413af6ab5fSopenharmony_ci  ir/base/metaProperty.cpp
2423af6ab5fSopenharmony_ci  ir/base/methodDefinition.cpp
2433af6ab5fSopenharmony_ci  ir/base/namespaceDefinition.cpp
2443af6ab5fSopenharmony_ci  ir/base/property.cpp
2453af6ab5fSopenharmony_ci  ir/base/scriptFunction.cpp
2463af6ab5fSopenharmony_ci  ir/base/scriptFunctionSignature.cpp
2473af6ab5fSopenharmony_ci  ir/base/spreadElement.cpp
2483af6ab5fSopenharmony_ci  ir/base/templateElement.cpp
2493af6ab5fSopenharmony_ci  ir/base/tsIndexSignature.cpp
2503af6ab5fSopenharmony_ci  ir/base/tsMethodSignature.cpp
2513af6ab5fSopenharmony_ci  ir/base/tsPropertySignature.cpp
2523af6ab5fSopenharmony_ci  ir/base/tsSignatureDeclaration.cpp
2533af6ab5fSopenharmony_ci  ir/expression.cpp
2543af6ab5fSopenharmony_ci  ir/expressions/arrayExpression.cpp
2553af6ab5fSopenharmony_ci  ir/expressions/arrowFunctionExpression.cpp
2563af6ab5fSopenharmony_ci  ir/expressions/assignmentExpression.cpp
2573af6ab5fSopenharmony_ci  ir/expressions/awaitExpression.cpp
2583af6ab5fSopenharmony_ci  ir/expressions/binaryExpression.cpp
2593af6ab5fSopenharmony_ci  ir/expressions/blockExpression.cpp
2603af6ab5fSopenharmony_ci  ir/expressions/callExpression.cpp
2613af6ab5fSopenharmony_ci  ir/expressions/chainExpression.cpp
2623af6ab5fSopenharmony_ci  ir/expressions/classExpression.cpp
2633af6ab5fSopenharmony_ci  ir/expressions/conditionalExpression.cpp
2643af6ab5fSopenharmony_ci  ir/expressions/directEvalExpression.cpp
2653af6ab5fSopenharmony_ci  ir/expressions/functionExpression.cpp
2663af6ab5fSopenharmony_ci  ir/expressions/identifier.cpp
2673af6ab5fSopenharmony_ci  ir/expressions/dummyNode.cpp
2683af6ab5fSopenharmony_ci  ir/expressions/importExpression.cpp
2693af6ab5fSopenharmony_ci  ir/expressions/literal.cpp
2703af6ab5fSopenharmony_ci  ir/expressions/literals/bigIntLiteral.cpp
2713af6ab5fSopenharmony_ci  ir/expressions/literals/booleanLiteral.cpp
2723af6ab5fSopenharmony_ci  ir/expressions/literals/charLiteral.cpp
2733af6ab5fSopenharmony_ci  ir/expressions/literals/nullLiteral.cpp
2743af6ab5fSopenharmony_ci  ir/expressions/literals/numberLiteral.cpp
2753af6ab5fSopenharmony_ci  ir/expressions/literals/regExpLiteral.cpp
2763af6ab5fSopenharmony_ci  ir/expressions/literals/stringLiteral.cpp
2773af6ab5fSopenharmony_ci  ir/expressions/literals/undefinedLiteral.cpp
2783af6ab5fSopenharmony_ci  ir/expressions/memberExpression.cpp
2793af6ab5fSopenharmony_ci  ir/expressions/newExpression.cpp
2803af6ab5fSopenharmony_ci  ir/expressions/objectExpression.cpp
2813af6ab5fSopenharmony_ci  ir/expressions/omittedExpression.cpp
2823af6ab5fSopenharmony_ci  ir/expressions/sequenceExpression.cpp
2833af6ab5fSopenharmony_ci  ir/expressions/superExpression.cpp
2843af6ab5fSopenharmony_ci  ir/expressions/taggedTemplateExpression.cpp
2853af6ab5fSopenharmony_ci  ir/expressions/templateLiteral.cpp
2863af6ab5fSopenharmony_ci  ir/expressions/thisExpression.cpp
2873af6ab5fSopenharmony_ci  ir/expressions/typeofExpression.cpp
2883af6ab5fSopenharmony_ci  ir/expressions/unaryExpression.cpp
2893af6ab5fSopenharmony_ci  ir/expressions/updateExpression.cpp
2903af6ab5fSopenharmony_ci  ir/expressions/yieldExpression.cpp
2913af6ab5fSopenharmony_ci  ir/module/exportAllDeclaration.cpp
2923af6ab5fSopenharmony_ci  ir/module/exportDefaultDeclaration.cpp
2933af6ab5fSopenharmony_ci  ir/module/exportNamedDeclaration.cpp
2943af6ab5fSopenharmony_ci  ir/module/exportSpecifier.cpp
2953af6ab5fSopenharmony_ci  ir/module/importDeclaration.cpp
2963af6ab5fSopenharmony_ci  ir/module/importDefaultSpecifier.cpp
2973af6ab5fSopenharmony_ci  ir/module/importNamespaceSpecifier.cpp
2983af6ab5fSopenharmony_ci  ir/module/importSpecifier.cpp
2993af6ab5fSopenharmony_ci  ir/statement.cpp
3003af6ab5fSopenharmony_ci  ir/statements/assertStatement.cpp
3013af6ab5fSopenharmony_ci  ir/statements/blockStatement.cpp
3023af6ab5fSopenharmony_ci  ir/statements/breakStatement.cpp
3033af6ab5fSopenharmony_ci  ir/statements/classDeclaration.cpp
3043af6ab5fSopenharmony_ci  ir/ets/etsStructDeclaration.cpp
3053af6ab5fSopenharmony_ci  ir/ets/etsReExportDeclaration.cpp
3063af6ab5fSopenharmony_ci  ir/statements/continueStatement.cpp
3073af6ab5fSopenharmony_ci  ir/statements/debuggerStatement.cpp
3083af6ab5fSopenharmony_ci  ir/statements/doWhileStatement.cpp
3093af6ab5fSopenharmony_ci  ir/statements/emptyStatement.cpp
3103af6ab5fSopenharmony_ci  ir/statements/expressionStatement.cpp
3113af6ab5fSopenharmony_ci  ir/statements/forInStatement.cpp
3123af6ab5fSopenharmony_ci  ir/statements/forOfStatement.cpp
3133af6ab5fSopenharmony_ci  ir/statements/forUpdateStatement.cpp
3143af6ab5fSopenharmony_ci  ir/statements/functionDeclaration.cpp
3153af6ab5fSopenharmony_ci  ir/statements/ifStatement.cpp
3163af6ab5fSopenharmony_ci  ir/statements/labelledStatement.cpp
3173af6ab5fSopenharmony_ci  ir/statements/loopStatement.cpp
3183af6ab5fSopenharmony_ci  ir/statements/namespaceDeclaration.cpp
3193af6ab5fSopenharmony_ci  ir/statements/returnStatement.cpp
3203af6ab5fSopenharmony_ci  ir/statements/switchCaseStatement.cpp
3213af6ab5fSopenharmony_ci  ir/statements/switchStatement.cpp
3223af6ab5fSopenharmony_ci  ir/statements/throwStatement.cpp
3233af6ab5fSopenharmony_ci  ir/statements/tryStatement.cpp
3243af6ab5fSopenharmony_ci  ir/statements/variableDeclaration.cpp
3253af6ab5fSopenharmony_ci  ir/statements/variableDeclarator.cpp
3263af6ab5fSopenharmony_ci  ir/statements/whileStatement.cpp
3273af6ab5fSopenharmony_ci  ir/as/namedType.cpp
3283af6ab5fSopenharmony_ci  ir/as/prefixAssertionExpression.cpp
3293af6ab5fSopenharmony_ci  ir/ets/etsClassLiteral.cpp
3303af6ab5fSopenharmony_ci  ir/ets/etsFunctionType.cpp
3313af6ab5fSopenharmony_ci  ir/ets/etsLaunchExpression.cpp
3323af6ab5fSopenharmony_ci  ir/ets/etsNewArrayInstanceExpression.cpp
3333af6ab5fSopenharmony_ci  ir/ets/etsNewClassInstanceExpression.cpp
3343af6ab5fSopenharmony_ci  ir/ets/etsNewMultiDimArrayInstanceExpression.cpp
3353af6ab5fSopenharmony_ci  ir/ets/etsPackageDeclaration.cpp
3363af6ab5fSopenharmony_ci  ir/ets/etsParameterExpression.cpp
3373af6ab5fSopenharmony_ci  ir/ets/etsPrimitiveType.cpp
3383af6ab5fSopenharmony_ci  ir/ets/etsNullishTypes.cpp
3393af6ab5fSopenharmony_ci  ir/ets/etsScript.cpp
3403af6ab5fSopenharmony_ci  ir/ets/etsStringLiteralType.cpp
3413af6ab5fSopenharmony_ci  ir/ets/etsTuple.cpp
3423af6ab5fSopenharmony_ci  ir/ets/etsTypeReference.cpp
3433af6ab5fSopenharmony_ci  ir/ets/etsTypeReferencePart.cpp
3443af6ab5fSopenharmony_ci  ir/ets/etsUnionType.cpp
3453af6ab5fSopenharmony_ci  ir/ets/etsWildcardType.cpp
3463af6ab5fSopenharmony_ci  ir/ets/etsImportSource.cpp
3473af6ab5fSopenharmony_ci  ir/ts/tsAnyKeyword.cpp
3483af6ab5fSopenharmony_ci  ir/ts/tsArrayType.cpp
3493af6ab5fSopenharmony_ci  ir/ts/tsAsExpression.cpp
3503af6ab5fSopenharmony_ci  ir/ts/tsBigintKeyword.cpp
3513af6ab5fSopenharmony_ci  ir/ts/tsBooleanKeyword.cpp
3523af6ab5fSopenharmony_ci  ir/ts/tsClassImplements.cpp
3533af6ab5fSopenharmony_ci  ir/ts/tsConditionalType.cpp
3543af6ab5fSopenharmony_ci  ir/ts/tsConstructorType.cpp
3553af6ab5fSopenharmony_ci  ir/ts/tsEnumDeclaration.cpp
3563af6ab5fSopenharmony_ci  ir/ts/tsEnumMember.cpp
3573af6ab5fSopenharmony_ci  ir/ts/tsExternalModuleReference.cpp
3583af6ab5fSopenharmony_ci  ir/ts/tsFunctionType.cpp
3593af6ab5fSopenharmony_ci  ir/ts/tsImportEqualsDeclaration.cpp
3603af6ab5fSopenharmony_ci  ir/ts/tsImportType.cpp
3613af6ab5fSopenharmony_ci  ir/ts/tsIndexedAccessType.cpp
3623af6ab5fSopenharmony_ci  ir/ts/tsInferType.cpp
3633af6ab5fSopenharmony_ci  ir/ts/tsInterfaceBody.cpp
3643af6ab5fSopenharmony_ci  ir/ts/tsInterfaceDeclaration.cpp
3653af6ab5fSopenharmony_ci  ir/ts/tsInterfaceHeritage.cpp
3663af6ab5fSopenharmony_ci  ir/ts/tsIntersectionType.cpp
3673af6ab5fSopenharmony_ci  ir/ts/tsLiteralType.cpp
3683af6ab5fSopenharmony_ci  ir/ts/tsMappedType.cpp
3693af6ab5fSopenharmony_ci  ir/ts/tsModuleBlock.cpp
3703af6ab5fSopenharmony_ci  ir/ts/tsModuleDeclaration.cpp
3713af6ab5fSopenharmony_ci  ir/ts/tsNamedTupleMember.cpp
3723af6ab5fSopenharmony_ci  ir/ts/tsNeverKeyword.cpp
3733af6ab5fSopenharmony_ci  ir/ts/tsNonNullExpression.cpp
3743af6ab5fSopenharmony_ci  ir/ts/tsNullKeyword.cpp
3753af6ab5fSopenharmony_ci  ir/ts/tsNumberKeyword.cpp
3763af6ab5fSopenharmony_ci  ir/ts/tsObjectKeyword.cpp
3773af6ab5fSopenharmony_ci  ir/ts/tsParameterProperty.cpp
3783af6ab5fSopenharmony_ci  ir/ts/tsParenthesizedType.cpp
3793af6ab5fSopenharmony_ci  ir/ts/tsQualifiedName.cpp
3803af6ab5fSopenharmony_ci  ir/ts/tsStringKeyword.cpp
3813af6ab5fSopenharmony_ci  ir/ts/tsThisType.cpp
3823af6ab5fSopenharmony_ci  ir/ts/tsTupleType.cpp
3833af6ab5fSopenharmony_ci  ir/ts/tsTypeAliasDeclaration.cpp
3843af6ab5fSopenharmony_ci  ir/ts/tsTypeAssertion.cpp
3853af6ab5fSopenharmony_ci  ir/ts/tsTypeLiteral.cpp
3863af6ab5fSopenharmony_ci  ir/ts/tsTypeOperator.cpp
3873af6ab5fSopenharmony_ci  ir/ts/tsTypeParameter.cpp
3883af6ab5fSopenharmony_ci  ir/ts/tsTypeParameterDeclaration.cpp
3893af6ab5fSopenharmony_ci  ir/ts/tsTypeParameterInstantiation.cpp
3903af6ab5fSopenharmony_ci  ir/ts/tsTypePredicate.cpp
3913af6ab5fSopenharmony_ci  ir/ts/tsTypeQuery.cpp
3923af6ab5fSopenharmony_ci  ir/ts/tsTypeReference.cpp
3933af6ab5fSopenharmony_ci  ir/ts/tsUndefinedKeyword.cpp
3943af6ab5fSopenharmony_ci  ir/ts/tsUnionType.cpp
3953af6ab5fSopenharmony_ci  ir/ts/tsUnknownKeyword.cpp
3963af6ab5fSopenharmony_ci  ir/ts/tsVoidKeyword.cpp
3973af6ab5fSopenharmony_ci  lexer/ASLexer.cpp
3983af6ab5fSopenharmony_ci  lexer/keywords.cpp
3993af6ab5fSopenharmony_ci  lexer/keywordsUtil.cpp
4003af6ab5fSopenharmony_ci  lexer/lexer.cpp
4013af6ab5fSopenharmony_ci  lexer/ETSLexer.cpp
4023af6ab5fSopenharmony_ci  lexer/TSLexer.cpp
4033af6ab5fSopenharmony_ci  lexer/regexp/regexp.cpp
4043af6ab5fSopenharmony_ci  lexer/token/number.cpp
4053af6ab5fSopenharmony_ci  lexer/token/sourceLocation.cpp
4063af6ab5fSopenharmony_ci  lexer/token/token.cpp
4073af6ab5fSopenharmony_ci  parser/context/classPrivateContext.cpp
4083af6ab5fSopenharmony_ci  parser/context/parserContext.cpp
4093af6ab5fSopenharmony_ci  parser/expressionParser.cpp
4103af6ab5fSopenharmony_ci  parser/expressionTSParser.cpp
4113af6ab5fSopenharmony_ci  parser/ASparser.cpp
4123af6ab5fSopenharmony_ci  parser/JSparser.cpp
4133af6ab5fSopenharmony_ci  parser/parserImpl.cpp
4143af6ab5fSopenharmony_ci  parser/ETSFormattedParser.cpp
4153af6ab5fSopenharmony_ci  parser/ETSparser.cpp
4163af6ab5fSopenharmony_ci  parser/ETSparserClasses.cpp
4173af6ab5fSopenharmony_ci  parser/ETSparserEnums.cpp
4183af6ab5fSopenharmony_ci  parser/ETSparserExpressions.cpp
4193af6ab5fSopenharmony_ci  parser/ETSparserNamespaces.cpp
4203af6ab5fSopenharmony_ci  parser/ETSparserStatements.cpp
4213af6ab5fSopenharmony_ci  parser/ETSparserTypes.cpp
4223af6ab5fSopenharmony_ci  parser/ETSNolintParser.cpp
4233af6ab5fSopenharmony_ci  parser/TSparser.cpp
4243af6ab5fSopenharmony_ci  parser/TypedParser.cpp
4253af6ab5fSopenharmony_ci  parser/program/entityNameVisitor.cpp
4263af6ab5fSopenharmony_ci  parser/program/program.cpp
4273af6ab5fSopenharmony_ci  parser/statementParser.cpp
4283af6ab5fSopenharmony_ci  parser/statementTSParser.cpp
4293af6ab5fSopenharmony_ci  checker/checker.cpp
4303af6ab5fSopenharmony_ci  checker/checkerContext.cpp
4313af6ab5fSopenharmony_ci  checker/ETSAnalyzer.cpp
4323af6ab5fSopenharmony_ci  checker/ETSAnalyzerHelpers.cpp
4333af6ab5fSopenharmony_ci  checker/ETSAnalyzerUnreachable.cpp
4343af6ab5fSopenharmony_ci  checker/ETSchecker.cpp
4353af6ab5fSopenharmony_ci  checker/TSchecker.cpp
4363af6ab5fSopenharmony_ci  checker/ASchecker.cpp
4373af6ab5fSopenharmony_ci  checker/TSAnalyzer.cpp
4383af6ab5fSopenharmony_ci  checker/TSAnalyzerUnreachable.cpp
4393af6ab5fSopenharmony_ci  checker/JSchecker.cpp
4403af6ab5fSopenharmony_ci  checker/typeChecker/TypeChecker.cpp
4413af6ab5fSopenharmony_ci  checker/ets/aliveAnalyzer.cpp
4423af6ab5fSopenharmony_ci  checker/ets/etsWarningAnalyzer.cpp
4433af6ab5fSopenharmony_ci  checker/ets/arithmetic.cpp
4443af6ab5fSopenharmony_ci  checker/ets/assignAnalyzer.cpp
4453af6ab5fSopenharmony_ci  checker/ets/baseAnalyzer.cpp
4463af6ab5fSopenharmony_ci  checker/ets/boxingConverter.cpp
4473af6ab5fSopenharmony_ci  checker/ets/castingContext.cpp
4483af6ab5fSopenharmony_ci  checker/ets/conversion.cpp
4493af6ab5fSopenharmony_ci  checker/ets/dynamic.cpp
4503af6ab5fSopenharmony_ci  checker/ets/dynamic/dynamicCall.cpp
4513af6ab5fSopenharmony_ci  checker/ets/function.cpp
4523af6ab5fSopenharmony_ci  checker/ets/validateHelpers.cpp
4533af6ab5fSopenharmony_ci  checker/ets/typeCheckingHelpers.cpp
4543af6ab5fSopenharmony_ci  checker/ets/helpers.cpp
4553af6ab5fSopenharmony_ci  checker/ets/narrowingConverter.cpp
4563af6ab5fSopenharmony_ci  checker/ets/narrowingWideningConverter.cpp
4573af6ab5fSopenharmony_ci  checker/ets/object.cpp
4583af6ab5fSopenharmony_ci  checker/ets/primitiveWrappers.cpp
4593af6ab5fSopenharmony_ci  checker/ets/typeConverter.cpp
4603af6ab5fSopenharmony_ci  checker/ets/typeCreation.cpp
4613af6ab5fSopenharmony_ci  checker/ets/typeRelationContext.cpp
4623af6ab5fSopenharmony_ci  checker/ets/unboxingConverter.cpp
4633af6ab5fSopenharmony_ci  checker/ets/utilityTypeHandlers.cpp
4643af6ab5fSopenharmony_ci  checker/ets/wideningConverter.cpp
4653af6ab5fSopenharmony_ci  checker/ts/binaryLikeExpression.cpp
4663af6ab5fSopenharmony_ci  checker/ts/destructuringContext.cpp
4673af6ab5fSopenharmony_ci  checker/ts/function.cpp
4683af6ab5fSopenharmony_ci  checker/ts/helpers.cpp
4693af6ab5fSopenharmony_ci  checker/ts/object.cpp
4703af6ab5fSopenharmony_ci  checker/ts/typeCreation.cpp
4713af6ab5fSopenharmony_ci  checker/ts/typeElaborationContext.cpp
4723af6ab5fSopenharmony_ci  checker/ts/util.cpp
4733af6ab5fSopenharmony_ci  checker/types/signature.cpp
4743af6ab5fSopenharmony_ci  checker/types/type.cpp
4753af6ab5fSopenharmony_ci  checker/types/typeRelation.cpp
4763af6ab5fSopenharmony_ci  checker/types/globalTypesHolder.cpp
4773af6ab5fSopenharmony_ci  checker/types/ets/byteType.cpp
4783af6ab5fSopenharmony_ci  checker/types/ets/charType.cpp
4793af6ab5fSopenharmony_ci  checker/types/ets/doubleType.cpp
4803af6ab5fSopenharmony_ci  checker/types/ets/floatType.cpp
4813af6ab5fSopenharmony_ci  checker/types/ets/intType.cpp
4823af6ab5fSopenharmony_ci  checker/types/ets/longType.cpp
4833af6ab5fSopenharmony_ci  checker/types/ets/shortType.cpp
4843af6ab5fSopenharmony_ci  checker/types/ets/etsArrayType.cpp
4853af6ab5fSopenharmony_ci  checker/types/ets/etsBooleanType.cpp
4863af6ab5fSopenharmony_ci  checker/types/ets/etsDynamicType.cpp
4873af6ab5fSopenharmony_ci  checker/types/ets/etsEnumType.cpp
4883af6ab5fSopenharmony_ci  checker/types/ets/etsExtensionFuncHelperType.cpp
4893af6ab5fSopenharmony_ci  checker/types/ets/etsFunctionType.cpp
4903af6ab5fSopenharmony_ci  checker/types/ets/etsNonNullishType.cpp
4913af6ab5fSopenharmony_ci  checker/types/ets/etsReadonlyType.cpp
4923af6ab5fSopenharmony_ci  checker/types/ets/etsNullishTypes.cpp
4933af6ab5fSopenharmony_ci  checker/types/ets/etsObjectType.cpp
4943af6ab5fSopenharmony_ci  checker/types/ets/etsStringType.cpp
4953af6ab5fSopenharmony_ci  checker/types/ets/etsBigIntType.cpp
4963af6ab5fSopenharmony_ci  checker/types/ets/etsTupleType.cpp
4973af6ab5fSopenharmony_ci  checker/types/ets/etsTypeParameter.cpp
4983af6ab5fSopenharmony_ci  checker/types/ets/etsUnionType.cpp
4993af6ab5fSopenharmony_ci  checker/types/ets/etsVoidType.cpp
5003af6ab5fSopenharmony_ci  checker/types/ets/wildcardType.cpp
5013af6ab5fSopenharmony_ci  checker/types/ets/etsAsyncFuncReturnType.cpp
5023af6ab5fSopenharmony_ci  checker/types/ts/anyType.cpp
5033af6ab5fSopenharmony_ci  checker/types/ts/arrayType.cpp
5043af6ab5fSopenharmony_ci  checker/types/ts/bigintLiteralType.cpp
5053af6ab5fSopenharmony_ci  checker/types/ts/bigintType.cpp
5063af6ab5fSopenharmony_ci  checker/types/ts/booleanLiteralType.cpp
5073af6ab5fSopenharmony_ci  checker/types/ts/booleanType.cpp
5083af6ab5fSopenharmony_ci  checker/types/ts/constructorType.cpp
5093af6ab5fSopenharmony_ci  checker/types/ts/enumLiteralType.cpp
5103af6ab5fSopenharmony_ci  checker/types/ts/enumType.cpp
5113af6ab5fSopenharmony_ci  checker/types/ts/functionType.cpp
5123af6ab5fSopenharmony_ci  checker/types/ts/indexInfo.cpp
5133af6ab5fSopenharmony_ci  checker/types/ts/interfaceType.cpp
5143af6ab5fSopenharmony_ci  checker/types/ts/neverType.cpp
5153af6ab5fSopenharmony_ci  checker/types/ts/nonPrimitiveType.cpp
5163af6ab5fSopenharmony_ci  checker/types/ts/nullType.cpp
5173af6ab5fSopenharmony_ci  checker/types/ts/numberLiteralType.cpp
5183af6ab5fSopenharmony_ci  checker/types/ts/numberType.cpp
5193af6ab5fSopenharmony_ci  checker/types/ts/objectDescriptor.cpp
5203af6ab5fSopenharmony_ci  checker/types/ts/objectLiteralType.cpp
5213af6ab5fSopenharmony_ci  checker/types/ts/objectType.cpp
5223af6ab5fSopenharmony_ci  checker/types/ts/stringLiteralType.cpp
5233af6ab5fSopenharmony_ci  checker/types/ts/stringType.cpp
5243af6ab5fSopenharmony_ci  checker/types/ts/tupleType.cpp
5253af6ab5fSopenharmony_ci  checker/types/ts/typeParameter.cpp
5263af6ab5fSopenharmony_ci  checker/types/ts/typeReference.cpp
5273af6ab5fSopenharmony_ci  checker/types/ts/undefinedType.cpp
5283af6ab5fSopenharmony_ci  checker/types/ts/unionType.cpp
5293af6ab5fSopenharmony_ci  checker/types/ts/unknownType.cpp
5303af6ab5fSopenharmony_ci  checker/types/ts/voidType.cpp
5313af6ab5fSopenharmony_ci  util/arktsconfig.cpp
5323af6ab5fSopenharmony_ci  util/bitset.cpp
5333af6ab5fSopenharmony_ci  util/errorHandler.cpp
5343af6ab5fSopenharmony_ci  util/errorLogger.cpp
5353af6ab5fSopenharmony_ci  util/helpers.cpp
5363af6ab5fSopenharmony_ci  util/importPathManager.cpp
5373af6ab5fSopenharmony_ci  util/path.cpp
5383af6ab5fSopenharmony_ci  util/ustring.cpp
5393af6ab5fSopenharmony_ci  test/utils/panda_executable_path_getter.cpp
5403af6ab5fSopenharmony_ci  evaluate/debugInfoDeserialization/debugInfoDeserializer.cpp
5413af6ab5fSopenharmony_ci  evaluate/debugInfoDeserialization/inheritanceResolution.cpp
5423af6ab5fSopenharmony_ci  evaluate/debugInfoDeserialization/methodBuilder.cpp
5433af6ab5fSopenharmony_ci  evaluate/debugInfoDeserialization/classBuilder.cpp
5443af6ab5fSopenharmony_ci  evaluate/debugInfoStorage.cpp
5453af6ab5fSopenharmony_ci  evaluate/helpers.cpp
5463af6ab5fSopenharmony_ci  evaluate/pathResolver.cpp
5473af6ab5fSopenharmony_ci  evaluate/irCheckHelper.cpp
5483af6ab5fSopenharmony_ci  evaluate/proxyProgramsCache.cpp
5493af6ab5fSopenharmony_ci  evaluate/scopedDebugInfoPlugin.cpp
5503af6ab5fSopenharmony_ci  evaluate/entityDeclarator.cpp
5513af6ab5fSopenharmony_ci  evaluate/evaluateContext.cpp
5523af6ab5fSopenharmony_ci)
5533af6ab5fSopenharmony_ci
5543af6ab5fSopenharmony_ci# libes2panda does not include bytecode optimizer, because it is used in
5553af6ab5fSopenharmony_ci# libarkruntime, and conflict with JIT setup ensues
5563af6ab5fSopenharmony_cipanda_add_library(es2panda-lib ${PANDA_DEFAULT_LIB_TYPE} ${ES2PANDA_LIB_SRC})
5573af6ab5fSopenharmony_ciadd_dependencies(es2panda-lib isa_gen_es2panda es2panda_keywords es2panda_signatures)
5583af6ab5fSopenharmony_ci
5593af6ab5fSopenharmony_ciset(ICU_INCLUDE_DIRS
5603af6ab5fSopenharmony_ci    ${PANDA_THIRD_PARTY_SOURCES_DIR}/icu/icu4c/source/common
5613af6ab5fSopenharmony_ci    ${PANDA_THIRD_PARTY_SOURCES_DIR}/icu/icu4c/source/i18n
5623af6ab5fSopenharmony_ci    ${PANDA_THIRD_PARTY_SOURCES_DIR}/icu/icu4c/source
5633af6ab5fSopenharmony_ci)
5643af6ab5fSopenharmony_ci
5653af6ab5fSopenharmony_cipanda_target_include_directories(es2panda-lib SYSTEM
5663af6ab5fSopenharmony_ci  PRIVATE ${ICU_INCLUDE_DIRS}
5673af6ab5fSopenharmony_ci)
5683af6ab5fSopenharmony_ci
5693af6ab5fSopenharmony_cipanda_target_include_directories(es2panda-lib
5703af6ab5fSopenharmony_ci  PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
5713af6ab5fSopenharmony_ci  PRIVATE ${OUTPUT_DIR}
5723af6ab5fSopenharmony_ci)
5733af6ab5fSopenharmony_ci
5743af6ab5fSopenharmony_cipanda_target_compile_options(es2panda-lib
5753af6ab5fSopenharmony_ci  PRIVATE -fexceptions -Werror=shadow
5763af6ab5fSopenharmony_ci)
5773af6ab5fSopenharmony_ci
5783af6ab5fSopenharmony_cipanda_target_link_libraries(es2panda-lib
5793af6ab5fSopenharmony_ci  PUBLIC arkbase hmicuuc.z
5803af6ab5fSopenharmony_ci  PRIVATE arkassembler arkdisassembler arkfile
5813af6ab5fSopenharmony_ci)
5823af6ab5fSopenharmony_ci
5833af6ab5fSopenharmony_ciif((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.1) OR
5843af6ab5fSopenharmony_ci   (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0))
5853af6ab5fSopenharmony_ci    panda_target_link_libraries(es2panda-lib
5863af6ab5fSopenharmony_ci      PUBLIC stdc++fs
5873af6ab5fSopenharmony_ci    )
5883af6ab5fSopenharmony_ciendif()
5893af6ab5fSopenharmony_ci
5903af6ab5fSopenharmony_ciif (PANDA_FUZZILLI)
5913af6ab5fSopenharmony_ci  panda_target_compile_options(es2panda-lib
5923af6ab5fSopenharmony_ci      PRIVATE -fPIC
5933af6ab5fSopenharmony_ci  )
5943af6ab5fSopenharmony_ciendif()
5953af6ab5fSopenharmony_cipanda_add_sanitizers(TARGET es2panda-lib SANITIZERS
5963af6ab5fSopenharmony_ci  ${PANDA_SANITIZERS_LIST})
5973af6ab5fSopenharmony_ci
5983af6ab5fSopenharmony_ciSET(ES2PANDA_LIB_DIR public)
5993af6ab5fSopenharmony_ciadd_subdirectory(${ES2PANDA_LIB_DIR})
6003af6ab5fSopenharmony_ci
6013af6ab5fSopenharmony_ciadd_subdirectory(aot)
6023af6ab5fSopenharmony_ciadd_subdirectory(declgen_ets2ts)
6033af6ab5fSopenharmony_ci
6043af6ab5fSopenharmony_ciif(PANDA_WITH_TESTS)
6053af6ab5fSopenharmony_ci  add_subdirectory(test)
6063af6ab5fSopenharmony_ciendif()
607