Files
2025-10-13 18:33:10 +03:00

91 lines
2.2 KiB
CMake

#
# This file is distributed under the MIT License. See LICENSE.md for details.
#
revng_add_library_internal(
revngYield
SHARED
Assembly/DisassemblyHelper.cpp
Assembly/LLVMDisassemblerInterface.cpp
Assembly/LLVMTagsToPTML.cpp
CallGraphs/CallGraphSlices.cpp
ControlFlow/ConvertFromEFA.cpp
ControlFlow/Extraction.cpp
ControlFlow/FallthroughDetection.cpp
CrossRelations.cpp
HexDump.cpp
PTML.cpp
SVG.cpp
Verify.cpp)
set(DISASSEMBLER_ARCHITECTURE_SUPPORT "")
foreach(CURRENT_ARCHITECTURE AArch64 ARM Mips SystemZ X86)
set(DISASSEMBLER_ARCHITECTURE_SUPPORT
${DISASSEMBLER_ARCHITECTURE_SUPPORT}
"${CURRENT_ARCHITECTURE}Disassembler" "${CURRENT_ARCHITECTURE}Info"
"${CURRENT_ARCHITECTURE}Desc")
endforeach(CURRENT_ARCHITECTURE)
llvm_map_components_to_libnames(
LLVM_LIBRARIES
Core
MC
MCDisassembler
Support
Target
${DISASSEMBLER_ARCHITECTURE_SUPPORT})
target_link_libraries(
revngYield
revngEarlyFunctionAnalysis
revngModelPasses
revngPTML
revngSupport
revngSugiyamaGraphLayout
revngLift
${LLVM_LIBRARIES})
set(INTERNAL_ASSEMBLY_HEADERS "${CMAKE_SOURCE_DIR}/include/revng/Yield")
target_tuple_tree_generator(
revngYield
INSTALL
HEADER_DIRECTORY
"Yield"
NAMESPACE
"yield"
SCHEMA_PATH
"${CMAKE_SOURCE_DIR}/include/revng/Yield/yield-internal-schema.yml"
SEPARATE_STRING_TYPES
"BasicBlockID"
"MetaAddress"
SCALAR_TYPES
"BasicBlockID"
"MetaAddress"
"yield::ByteContainer"
"model::FunctionAttribute::Values")
set(INTERNAL_ASSEMBLY_HEADERS
"${CMAKE_SOURCE_DIR}/include/revng/Yield/CrossRelations")
target_tuple_tree_generator(
revngYield
INSTALL
HEADER_DIRECTORY
"Yield/CrossRelations"
NAMESPACE
"yield::crossrelations"
SCHEMA_PATH
"${CMAKE_SOURCE_DIR}/include/revng/Yield/CrossRelations/yield-cross-relations.yml"
SEPARATE_STRING_TYPES
"MetaAddress"
SCALAR_TYPES
"BasicBlockID"
"MetaAddress"
"yield::ByteContainer")
revng_add_analyses_library_internal(
revngYieldPipes SHARED Pipes/AssemblyPipes.cpp Pipes/CallGraphPipes.cpp
Pipes/CFGPipes.cpp)
target_link_libraries(revngYieldPipes revngYield revngFunctionIsolation
revngPipes revngSupport)