# # This file is distributed under the MIT License. See LICENSE.md for details. # # Define revngEarlyFunctionAnalysis library revng_add_analyses_library_internal( revngEarlyFunctionAnalysis AAWriterPass.cpp AnalyzeRegisterUsage.cpp AttachDebugInfo.cpp CFGAnalyzer.cpp CollectCFG.cpp CollectFunctionsFromCalleesPass.cpp CollectFunctionsFromUnusedAddressesPass.cpp ControlFlowGraph.cpp ControlFlowGraphCache.cpp DetectABI.cpp FunctionSummaryOracle.cpp IndirectBranchInfoPrinterPass.cpp Outliner.cpp PromoteGlobalToLocalVars.cpp SegregateDirectStackAccesses.cpp ${GENERATED_IMPLS}) llvm_map_components_to_libnames( LLVM_LIBRARIES Analysis TransformUtils ScalarOpts InstCombine Passes CodeGen) target_link_libraries( revngEarlyFunctionAnalysis revngBasicAnalyses revngABI revngInlineHelpers revngSupport revngModel revngPipes ${LLVM_LIBRARIES}) # Header files containing efa YAML must be added here set(EFA_HEADERS_DIR "${CMAKE_SOURCE_DIR}/include/revng/EarlyFunctionAnalysis") set(OUTPUT_DIR "${CMAKE_BINARY_DIR}/include/revng/EarlyFunctionAnalysis/Generated") set(SCHEMA_PATH "${CMAKE_SOURCE_DIR}/include/revng/EarlyFunctionAnalysis/efa-schema.yml") target_tuple_tree_generator( revngEarlyFunctionAnalysis INSTALL HEADER_DIRECTORY EarlyFunctionAnalysis NAMESPACE efa SCHEMA_PATH ${SCHEMA_PATH} SEPARATE_STRING_TYPES "BasicBlockID" "MetaAddress" SCALAR_TYPES "BasicBlockID" "MetaAddress" "model::FunctionAttribute::Values") install(DIRECTORY ${OUTPUT_DIR} DESTINATION include/revng/EarlyFunctionAnalysis)