13af6ab5fSopenharmony_ci# Copyright (c) 2021-2022 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_ciproject (es2panda) 173af6ab5fSopenharmony_ciset(CMAKE_EXPORT_COMPILE_COMMANDS ON) 183af6ab5fSopenharmony_ci 193af6ab5fSopenharmony_ciset(OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/out) 203af6ab5fSopenharmony_ciset(GENERATED_DIR ${OUTPUT_DIR}/gen) 213af6ab5fSopenharmony_ciset(GENERATED_STAMP ${OUTPUT_DIR}/gen_dir.stamp) 223af6ab5fSopenharmony_ciadd_custom_target(es2panda-gen) 233af6ab5fSopenharmony_ci 243af6ab5fSopenharmony_ciadd_custom_command( 253af6ab5fSopenharmony_ci OUTPUT ${GENERATED_STAMP} 263af6ab5fSopenharmony_ci COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR} 273af6ab5fSopenharmony_ci COMMAND ${CMAKE_COMMAND} -E make_directory ${GENERATED_DIR} 283af6ab5fSopenharmony_ci COMMAND ${CMAKE_COMMAND} -E touch ${GENERATED_STAMP} 293af6ab5fSopenharmony_ci) 303af6ab5fSopenharmony_ci 313af6ab5fSopenharmony_ciset(TEMPLATES 323af6ab5fSopenharmony_ci isa.h.erb 333af6ab5fSopenharmony_ci formats.h.erb 343af6ab5fSopenharmony_ci) 353af6ab5fSopenharmony_ci 363af6ab5fSopenharmony_cipanda_isa_gen( 373af6ab5fSopenharmony_ci TEMPLATES ${TEMPLATES} 383af6ab5fSopenharmony_ci SOURCE ${CMAKE_CURRENT_LIST_DIR}/compiler/templates 393af6ab5fSopenharmony_ci DESTINATION ${GENERATED_DIR} 403af6ab5fSopenharmony_ci EXTRA_DEPENDENCIES ${GENERATED_STAMP} 413af6ab5fSopenharmony_ci) 423af6ab5fSopenharmony_ci 433af6ab5fSopenharmony_ciadd_dependencies(es2panda-gen isa_gen_es2panda) 443af6ab5fSopenharmony_ci 453af6ab5fSopenharmony_cifunction(gen_keywords TEMPLATE OUT_DIR) 463af6ab5fSopenharmony_ci set(TEMPLATE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lexer/templates/${TEMPLATE}) 473af6ab5fSopenharmony_ci 483af6ab5fSopenharmony_ci string(REGEX REPLACE "\.erb$" "" NAME ${TEMPLATE}) 493af6ab5fSopenharmony_ci string(REPLACE "\." "_" CUSTOM_TARGET ${NAME}) 503af6ab5fSopenharmony_ci string(REPLACE "/" "_" CUSTOM_TARGET ${CUSTOM_TARGET}) 513af6ab5fSopenharmony_ci set(CUSTOM_TARGET "panda_es2panda_parser_gen_${CUSTOM_TARGET}") 523af6ab5fSopenharmony_ci 533af6ab5fSopenharmony_ci set(OUT_FILE ${OUT_DIR}/${NAME}) 543af6ab5fSopenharmony_ci set(GENERATOR ${CMAKE_CURRENT_SOURCE_DIR}/lexer/scripts/keywords.rb) 553af6ab5fSopenharmony_ci 563af6ab5fSopenharmony_ci add_custom_command(OUTPUT ${OUT_FILE} 573af6ab5fSopenharmony_ci COMMAND ruby ${GENERATOR} ${TEMPLATE_FILE} ${OUT_FILE} 583af6ab5fSopenharmony_ci DEPENDS ${GENERATED_STAMP} ${GENERATOR} ${TEMPLATE_FILE} 593af6ab5fSopenharmony_ci ) 603af6ab5fSopenharmony_ci 613af6ab5fSopenharmony_ci add_custom_target(${CUSTOM_TARGET} DEPENDS ${OUT_FILE}) 623af6ab5fSopenharmony_ci add_dependencies(es2panda-gen ${CUSTOM_TARGET}) 633af6ab5fSopenharmony_ciendfunction() 643af6ab5fSopenharmony_ci 653af6ab5fSopenharmony_cigen_keywords(keywords.h.erb ${GENERATED_DIR}) 663af6ab5fSopenharmony_cigen_keywords(keywordsMap.h.erb ${GENERATED_DIR}) 673af6ab5fSopenharmony_ci 683af6ab5fSopenharmony_ciset(ES2PANDA_LIB_SRC 693af6ab5fSopenharmony_ci es2panda.cpp 703af6ab5fSopenharmony_ci binder/binder.cpp 713af6ab5fSopenharmony_ci binder/declaration.cpp 723af6ab5fSopenharmony_ci binder/scope.cpp 733af6ab5fSopenharmony_ci binder/variable.cpp 743af6ab5fSopenharmony_ci compiler/base/catchTable.cpp 753af6ab5fSopenharmony_ci compiler/base/condition.cpp 763af6ab5fSopenharmony_ci compiler/base/destructuring.cpp 773af6ab5fSopenharmony_ci compiler/base/hoisting.cpp 783af6ab5fSopenharmony_ci compiler/base/iterators.cpp 793af6ab5fSopenharmony_ci compiler/base/lexenv.cpp 803af6ab5fSopenharmony_ci compiler/base/literals.cpp 813af6ab5fSopenharmony_ci compiler/base/lreference.cpp 823af6ab5fSopenharmony_ci compiler/core/compileQueue.cpp 833af6ab5fSopenharmony_ci compiler/core/compilerContext.cpp 843af6ab5fSopenharmony_ci compiler/core/compilerImpl.cpp 853af6ab5fSopenharmony_ci compiler/core/dynamicContext.cpp 863af6ab5fSopenharmony_ci compiler/core/emitter.cpp 873af6ab5fSopenharmony_ci compiler/core/envScope.cpp 883af6ab5fSopenharmony_ci compiler/core/function.cpp 893af6ab5fSopenharmony_ci compiler/core/inlineCache.cpp 903af6ab5fSopenharmony_ci compiler/core/labelTarget.cpp 913af6ab5fSopenharmony_ci compiler/core/moduleContext.cpp 923af6ab5fSopenharmony_ci compiler/core/pandagen.cpp 933af6ab5fSopenharmony_ci compiler/core/regAllocator.cpp 943af6ab5fSopenharmony_ci compiler/core/regScope.cpp 953af6ab5fSopenharmony_ci compiler/core/switchBuilder.cpp 963af6ab5fSopenharmony_ci compiler/debugger/debuginfoDumper.cpp 973af6ab5fSopenharmony_ci compiler/function/asyncFunctionBuilder.cpp 983af6ab5fSopenharmony_ci compiler/function/asyncGeneratorFunctionBuilder.cpp 993af6ab5fSopenharmony_ci compiler/function/functionBuilder.cpp 1003af6ab5fSopenharmony_ci compiler/function/generatorFunctionBuilder.cpp 1013af6ab5fSopenharmony_ci ir/astDump.cpp 1023af6ab5fSopenharmony_ci ir/base/annotation.cpp 1033af6ab5fSopenharmony_ci ir/base/catchClause.cpp 1043af6ab5fSopenharmony_ci ir/base/classDefinition.cpp 1053af6ab5fSopenharmony_ci ir/base/classProperty.cpp 1063af6ab5fSopenharmony_ci ir/base/decorator.cpp 1073af6ab5fSopenharmony_ci ir/base/metaProperty.cpp 1083af6ab5fSopenharmony_ci ir/base/methodDefinition.cpp 1093af6ab5fSopenharmony_ci ir/base/property.cpp 1103af6ab5fSopenharmony_ci ir/base/scriptFunction.cpp 1113af6ab5fSopenharmony_ci ir/base/spreadElement.cpp 1123af6ab5fSopenharmony_ci ir/base/templateElement.cpp 1133af6ab5fSopenharmony_ci ir/expression.cpp 1143af6ab5fSopenharmony_ci ir/expressions/arrayExpression.cpp 1153af6ab5fSopenharmony_ci ir/expressions/arrowFunctionExpression.cpp 1163af6ab5fSopenharmony_ci ir/expressions/assignmentExpression.cpp 1173af6ab5fSopenharmony_ci ir/expressions/awaitExpression.cpp 1183af6ab5fSopenharmony_ci ir/expressions/binaryExpression.cpp 1193af6ab5fSopenharmony_ci ir/expressions/callExpression.cpp 1203af6ab5fSopenharmony_ci ir/expressions/chainExpression.cpp 1213af6ab5fSopenharmony_ci ir/expressions/classExpression.cpp 1223af6ab5fSopenharmony_ci ir/expressions/conditionalExpression.cpp 1233af6ab5fSopenharmony_ci ir/expressions/functionExpression.cpp 1243af6ab5fSopenharmony_ci ir/expressions/identifier.cpp 1253af6ab5fSopenharmony_ci ir/expressions/importExpression.cpp 1263af6ab5fSopenharmony_ci ir/expressions/literal.cpp 1273af6ab5fSopenharmony_ci ir/expressions/literals/bigIntLiteral.cpp 1283af6ab5fSopenharmony_ci ir/expressions/literals/booleanLiteral.cpp 1293af6ab5fSopenharmony_ci ir/expressions/literals/nullLiteral.cpp 1303af6ab5fSopenharmony_ci ir/expressions/literals/numberLiteral.cpp 1313af6ab5fSopenharmony_ci ir/expressions/literals/regExpLiteral.cpp 1323af6ab5fSopenharmony_ci ir/expressions/literals/stringLiteral.cpp 1333af6ab5fSopenharmony_ci ir/expressions/literals/taggedLiteral.cpp 1343af6ab5fSopenharmony_ci ir/expressions/memberExpression.cpp 1353af6ab5fSopenharmony_ci ir/expressions/newExpression.cpp 1363af6ab5fSopenharmony_ci ir/expressions/objectExpression.cpp 1373af6ab5fSopenharmony_ci ir/expressions/omittedExpression.cpp 1383af6ab5fSopenharmony_ci ir/expressions/sequenceExpression.cpp 1393af6ab5fSopenharmony_ci ir/expressions/superExpression.cpp 1403af6ab5fSopenharmony_ci ir/expressions/taggedTemplateExpression.cpp 1413af6ab5fSopenharmony_ci ir/expressions/templateLiteral.cpp 1423af6ab5fSopenharmony_ci ir/expressions/thisExpression.cpp 1433af6ab5fSopenharmony_ci ir/expressions/unaryExpression.cpp 1443af6ab5fSopenharmony_ci ir/expressions/updateExpression.cpp 1453af6ab5fSopenharmony_ci ir/expressions/yieldExpression.cpp 1463af6ab5fSopenharmony_ci ir/module/exportAllDeclaration.cpp 1473af6ab5fSopenharmony_ci ir/module/exportDefaultDeclaration.cpp 1483af6ab5fSopenharmony_ci ir/module/exportNamedDeclaration.cpp 1493af6ab5fSopenharmony_ci ir/module/exportSpecifier.cpp 1503af6ab5fSopenharmony_ci ir/module/importDeclaration.cpp 1513af6ab5fSopenharmony_ci ir/module/importDefaultSpecifier.cpp 1523af6ab5fSopenharmony_ci ir/module/importNamespaceSpecifier.cpp 1533af6ab5fSopenharmony_ci ir/module/importSpecifier.cpp 1543af6ab5fSopenharmony_ci ir/statement.cpp 1553af6ab5fSopenharmony_ci ir/statements/blockStatement.cpp 1563af6ab5fSopenharmony_ci ir/statements/breakStatement.cpp 1573af6ab5fSopenharmony_ci ir/statements/classDeclaration.cpp 1583af6ab5fSopenharmony_ci ir/statements/continueStatement.cpp 1593af6ab5fSopenharmony_ci ir/statements/debuggerStatement.cpp 1603af6ab5fSopenharmony_ci ir/statements/doWhileStatement.cpp 1613af6ab5fSopenharmony_ci ir/statements/emptyStatement.cpp 1623af6ab5fSopenharmony_ci ir/statements/expressionStatement.cpp 1633af6ab5fSopenharmony_ci ir/statements/forInStatement.cpp 1643af6ab5fSopenharmony_ci ir/statements/forOfStatement.cpp 1653af6ab5fSopenharmony_ci ir/statements/forUpdateStatement.cpp 1663af6ab5fSopenharmony_ci ir/statements/functionDeclaration.cpp 1673af6ab5fSopenharmony_ci ir/statements/ifStatement.cpp 1683af6ab5fSopenharmony_ci ir/statements/labelledStatement.cpp 1693af6ab5fSopenharmony_ci ir/statements/loopStatement.cpp 1703af6ab5fSopenharmony_ci ir/statements/returnStatement.cpp 1713af6ab5fSopenharmony_ci ir/statements/switchCaseStatement.cpp 1723af6ab5fSopenharmony_ci ir/statements/switchStatement.cpp 1733af6ab5fSopenharmony_ci ir/statements/throwStatement.cpp 1743af6ab5fSopenharmony_ci ir/statements/tryStatement.cpp 1753af6ab5fSopenharmony_ci ir/statements/variableDeclaration.cpp 1763af6ab5fSopenharmony_ci ir/statements/variableDeclarator.cpp 1773af6ab5fSopenharmony_ci ir/statements/whileStatement.cpp 1783af6ab5fSopenharmony_ci ir/ts/tsAnyKeyword.cpp 1793af6ab5fSopenharmony_ci ir/ts/tsArrayType.cpp 1803af6ab5fSopenharmony_ci ir/ts/tsAsExpression.cpp 1813af6ab5fSopenharmony_ci ir/ts/tsBigintKeyword.cpp 1823af6ab5fSopenharmony_ci ir/ts/tsBooleanKeyword.cpp 1833af6ab5fSopenharmony_ci ir/ts/tsClassImplements.cpp 1843af6ab5fSopenharmony_ci ir/ts/tsConditionalType.cpp 1853af6ab5fSopenharmony_ci ir/ts/tsConstructorType.cpp 1863af6ab5fSopenharmony_ci ir/ts/tsEnumDeclaration.cpp 1873af6ab5fSopenharmony_ci ir/ts/tsEnumMember.cpp 1883af6ab5fSopenharmony_ci ir/ts/tsExternalModuleReference.cpp 1893af6ab5fSopenharmony_ci ir/ts/tsFunctionType.cpp 1903af6ab5fSopenharmony_ci ir/ts/tsImportEqualsDeclaration.cpp 1913af6ab5fSopenharmony_ci ir/ts/tsImportType.cpp 1923af6ab5fSopenharmony_ci ir/ts/tsIndexSignature.cpp 1933af6ab5fSopenharmony_ci ir/ts/tsIndexedAccessType.cpp 1943af6ab5fSopenharmony_ci ir/ts/tsInferType.cpp 1953af6ab5fSopenharmony_ci ir/ts/tsInterfaceBody.cpp 1963af6ab5fSopenharmony_ci ir/ts/tsInterfaceDeclaration.cpp 1973af6ab5fSopenharmony_ci ir/ts/tsInterfaceHeritage.cpp 1983af6ab5fSopenharmony_ci ir/ts/tsIntersectionType.cpp 1993af6ab5fSopenharmony_ci ir/ts/tsLiteralType.cpp 2003af6ab5fSopenharmony_ci ir/ts/tsMappedType.cpp 2013af6ab5fSopenharmony_ci ir/ts/tsMethodSignature.cpp 2023af6ab5fSopenharmony_ci ir/ts/tsModuleBlock.cpp 2033af6ab5fSopenharmony_ci ir/ts/tsModuleDeclaration.cpp 2043af6ab5fSopenharmony_ci ir/ts/tsNamedTupleMember.cpp 2053af6ab5fSopenharmony_ci ir/ts/tsNeverKeyword.cpp 2063af6ab5fSopenharmony_ci ir/ts/tsNonNullExpression.cpp 2073af6ab5fSopenharmony_ci ir/ts/tsNullKeyword.cpp 2083af6ab5fSopenharmony_ci ir/ts/tsNumberKeyword.cpp 2093af6ab5fSopenharmony_ci ir/ts/tsObjectKeyword.cpp 2103af6ab5fSopenharmony_ci ir/ts/tsOptionalType.cpp 2113af6ab5fSopenharmony_ci ir/ts/tsParameterProperty.cpp 2123af6ab5fSopenharmony_ci ir/ts/tsParenthesizedType.cpp 2133af6ab5fSopenharmony_ci ir/ts/tsPrivateIdentifier.cpp 2143af6ab5fSopenharmony_ci ir/ts/tsPropertySignature.cpp 2153af6ab5fSopenharmony_ci ir/ts/tsQualifiedName.cpp 2163af6ab5fSopenharmony_ci ir/ts/tsRestType.cpp 2173af6ab5fSopenharmony_ci ir/ts/tsSignatureDeclaration.cpp 2183af6ab5fSopenharmony_ci ir/ts/tsStringKeyword.cpp 2193af6ab5fSopenharmony_ci ir/ts/tsSymbolKeyword.cpp 2203af6ab5fSopenharmony_ci ir/ts/tsTemplateLiteralType.cpp 2213af6ab5fSopenharmony_ci ir/ts/tsThisType.cpp 2223af6ab5fSopenharmony_ci ir/ts/tsTupleType.cpp 2233af6ab5fSopenharmony_ci ir/ts/tsTypeAliasDeclaration.cpp 2243af6ab5fSopenharmony_ci ir/ts/tsTypeAssertion.cpp 2253af6ab5fSopenharmony_ci ir/ts/tsTypeLiteral.cpp 2263af6ab5fSopenharmony_ci ir/ts/tsTypeOperator.cpp 2273af6ab5fSopenharmony_ci ir/ts/tsTypeParameter.cpp 2283af6ab5fSopenharmony_ci ir/ts/tsTypeParameterDeclaration.cpp 2293af6ab5fSopenharmony_ci ir/ts/tsTypeParameterInstantiation.cpp 2303af6ab5fSopenharmony_ci ir/ts/tsTypePredicate.cpp 2313af6ab5fSopenharmony_ci ir/ts/tsTypeQuery.cpp 2323af6ab5fSopenharmony_ci ir/ts/tsTypeReference.cpp 2333af6ab5fSopenharmony_ci ir/ts/tsUndefinedKeyword.cpp 2343af6ab5fSopenharmony_ci ir/ts/tsUnionType.cpp 2353af6ab5fSopenharmony_ci ir/ts/tsUnknownKeyword.cpp 2363af6ab5fSopenharmony_ci ir/ts/tsVoidKeyword.cpp 2373af6ab5fSopenharmony_ci lexer/keywordsUtil.cpp 2383af6ab5fSopenharmony_ci lexer/lexer.cpp 2393af6ab5fSopenharmony_ci lexer/regexp/regexp.cpp 2403af6ab5fSopenharmony_ci lexer/token/sourceLocation.cpp 2413af6ab5fSopenharmony_ci lexer/token/token.cpp 2423af6ab5fSopenharmony_ci parser/context/parserContext.cpp 2433af6ab5fSopenharmony_ci parser/expressionParser.cpp 2443af6ab5fSopenharmony_ci parser/parserImpl.cpp 2453af6ab5fSopenharmony_ci parser/program/program.cpp 2463af6ab5fSopenharmony_ci parser/statementParser.cpp 2473af6ab5fSopenharmony_ci parser/transformer/transformer.cpp 2483af6ab5fSopenharmony_ci typescript/checker.cpp 2493af6ab5fSopenharmony_ci typescript/core/binaryLikeExpression.cpp 2503af6ab5fSopenharmony_ci typescript/core/destructuringContext.cpp 2513af6ab5fSopenharmony_ci typescript/core/function.cpp 2523af6ab5fSopenharmony_ci typescript/core/helpers.cpp 2533af6ab5fSopenharmony_ci typescript/core/object.cpp 2543af6ab5fSopenharmony_ci typescript/core/typeCreation.cpp 2553af6ab5fSopenharmony_ci typescript/core/typeElaborationContext.cpp 2563af6ab5fSopenharmony_ci typescript/core/typeRelation.cpp 2573af6ab5fSopenharmony_ci typescript/core/util.cpp 2583af6ab5fSopenharmony_ci typescript/types/anyType.cpp 2593af6ab5fSopenharmony_ci typescript/types/arrayType.cpp 2603af6ab5fSopenharmony_ci typescript/types/bigintLiteralType.cpp 2613af6ab5fSopenharmony_ci typescript/types/bigintType.cpp 2623af6ab5fSopenharmony_ci typescript/types/booleanLiteralType.cpp 2633af6ab5fSopenharmony_ci typescript/types/booleanType.cpp 2643af6ab5fSopenharmony_ci typescript/types/constructorType.cpp 2653af6ab5fSopenharmony_ci typescript/types/enumLiteralType.cpp 2663af6ab5fSopenharmony_ci typescript/types/enumType.cpp 2673af6ab5fSopenharmony_ci typescript/types/functionType.cpp 2683af6ab5fSopenharmony_ci typescript/types/globalTypesHolder.cpp 2693af6ab5fSopenharmony_ci typescript/types/indexInfo.cpp 2703af6ab5fSopenharmony_ci typescript/types/interfaceType.cpp 2713af6ab5fSopenharmony_ci typescript/types/neverType.cpp 2723af6ab5fSopenharmony_ci typescript/types/nonPrimitiveType.cpp 2733af6ab5fSopenharmony_ci typescript/types/nullType.cpp 2743af6ab5fSopenharmony_ci typescript/types/numberLiteralType.cpp 2753af6ab5fSopenharmony_ci typescript/types/numberType.cpp 2763af6ab5fSopenharmony_ci typescript/types/objectDescriptor.cpp 2773af6ab5fSopenharmony_ci typescript/types/objectLiteralType.cpp 2783af6ab5fSopenharmony_ci typescript/types/objectType.cpp 2793af6ab5fSopenharmony_ci typescript/types/signature.cpp 2803af6ab5fSopenharmony_ci typescript/types/stringLiteralType.cpp 2813af6ab5fSopenharmony_ci typescript/types/stringType.cpp 2823af6ab5fSopenharmony_ci typescript/types/symbolType.cpp 2833af6ab5fSopenharmony_ci typescript/types/tupleType.cpp 2843af6ab5fSopenharmony_ci typescript/types/type.cpp 2853af6ab5fSopenharmony_ci typescript/types/typeParameter.cpp 2863af6ab5fSopenharmony_ci typescript/types/typeReference.cpp 2873af6ab5fSopenharmony_ci typescript/types/typeRelation.cpp 2883af6ab5fSopenharmony_ci typescript/types/undefinedType.cpp 2893af6ab5fSopenharmony_ci typescript/types/unionType.cpp 2903af6ab5fSopenharmony_ci typescript/types/unknownType.cpp 2913af6ab5fSopenharmony_ci typescript/types/voidType.cpp 2923af6ab5fSopenharmony_ci util/bitset.cpp 2933af6ab5fSopenharmony_ci util/helpers.cpp 2943af6ab5fSopenharmony_ci util/ustring.cpp 2953af6ab5fSopenharmony_ci) 2963af6ab5fSopenharmony_ci 2973af6ab5fSopenharmony_ciadd_library(es2panda-lib ${PANDA_DEFAULT_LIB_TYPE} ${ES2PANDA_LIB_SRC}) 2983af6ab5fSopenharmony_ciadd_dependencies(es2panda-lib es2panda-gen) 2993af6ab5fSopenharmony_ci 3003af6ab5fSopenharmony_ciset(ICU_INCLUDE_DIRS 3013af6ab5fSopenharmony_ci ${PANDA_THIRD_PARTY_SOURCES_DIR}/icu/icu4c/source/common 3023af6ab5fSopenharmony_ci ${PANDA_THIRD_PARTY_SOURCES_DIR}/icu/icu4c/source/i18n 3033af6ab5fSopenharmony_ci ${PANDA_THIRD_PARTY_SOURCES_DIR}/icu/icu4c/source 3043af6ab5fSopenharmony_ci) 3053af6ab5fSopenharmony_ci 3063af6ab5fSopenharmony_citarget_include_directories(es2panda-lib 3073af6ab5fSopenharmony_ci PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} 3083af6ab5fSopenharmony_ci PRIVATE ${OUTPUT_DIR} 3093af6ab5fSopenharmony_ci PRIVATE ${ICU_INCLUDE_DIRS} 3103af6ab5fSopenharmony_ci) 3113af6ab5fSopenharmony_ci 3123af6ab5fSopenharmony_citarget_compile_options(es2panda-lib 3133af6ab5fSopenharmony_ci PRIVATE -fexceptions -Werror=shadow 3143af6ab5fSopenharmony_ci) 3153af6ab5fSopenharmony_ci 3163af6ab5fSopenharmony_citarget_link_libraries(es2panda-lib 3173af6ab5fSopenharmony_ci PUBLIC arkbase hmicuuc.z 3183af6ab5fSopenharmony_ci PRIVATE arkassembler 3193af6ab5fSopenharmony_ci) 3203af6ab5fSopenharmony_ci 3213af6ab5fSopenharmony_ciif (PANDA_FUZZILLI) 3223af6ab5fSopenharmony_ci target_compile_options(es2panda-lib 3233af6ab5fSopenharmony_ci PRIVATE -fPIC 3243af6ab5fSopenharmony_ci ) 3253af6ab5fSopenharmony_ciendif() 3263af6ab5fSopenharmony_ci 3273af6ab5fSopenharmony_cipanda_add_sanitizers(TARGET es2panda-lib SANITIZERS ${PANDA_SANITIZERS_LIST}) 3283af6ab5fSopenharmony_cipanda_add_to_clang_tidy(TARGET es2panda-lib CHECKS 3293af6ab5fSopenharmony_ci "-modernize-use-trailing-return-type" 3303af6ab5fSopenharmony_ci "-llvmlibc-restrict-system-libc-headers" 3313af6ab5fSopenharmony_ci "-llvmlibc-callee-namespace" 3323af6ab5fSopenharmony_ci "-cert-dcl21-cpp" 3333af6ab5fSopenharmony_ci "-cppcoreguidelines-macro-usage" 3343af6ab5fSopenharmony_ci "-cppcoreguidelines-pro-bounds-pointer-arithmetic" 3353af6ab5fSopenharmony_ci "-fuchsia-default-arguments-calls" 3363af6ab5fSopenharmony_ci "-fuchsia-default-arguments-declarations" 3373af6ab5fSopenharmony_ci "-readability-implicit-bool-conversion" 3383af6ab5fSopenharmony_ci "-misc-non-private-member-variables-in-classes" 3393af6ab5fSopenharmony_ci "-hicpp-signed-bitwise" 3403af6ab5fSopenharmony_ci "-altera-struct-pack-align" 3413af6ab5fSopenharmony_ci) 3423af6ab5fSopenharmony_ci 3433af6ab5fSopenharmony_ciadd_subdirectory(aot) 344