Files
TheRock/rocm-systems/projects/rocprofiler-systems/external/dyninst/dyninstAPI/CMakeLists.txt
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

329 lines
7.9 KiB
CMake

include_guard(GLOBAL)
# dyninstAPI doesn't work with symlite
if(LIGHTWEIGHT_SYMTAB)
message(STATUS "LIGHTWEIGHT_SYMTAB enabled; dyninstAPI not built.")
return()
endif()
include(DyninstLibrary)
set(_public_headers
h/BPatch_addressSpace.h
h/BPatch_basicBlock.h
h/BPatch_basicBlockLoop.h
h/BPatch_binaryEdit.h
h/BPatch_callbacks.h
h/BPatch_dll.h
h/BPatch_edge.h
h/BPatch_enums.h
h/BPatch_flowGraph.h
h/BPatch_frame.h
h/BPatch_function.h
h/BPatch.h
h/BPatch_image.h
h/BPatch_instruction.h
h/BPatch_loopTreeNode.h
h/BPatch_memoryAccess_NP.h
h/BPatch_module.h
h/BPatch_object.h
h/BPatch_parRegion.h
h/BPatch_point.h
h/BPatch_process.h
h/BPatch_Set.h
h/BPatch_snippet.h
h/BPatch_sourceBlock.h
h/BPatch_sourceObj.h
h/BPatch_statement.h
h/BPatch_thread.h
h/BPatch_type.h
h/BPatch_Vector.h
h/StackMod.h)
set(_private_headers
src/addressSpace.h
src/arch-forward-decl.h
src/ast.h
src/baseTramp.h
src/binaryEdit.h
src/block.h
src/BPatch_collections.h
src/BPatch_libInfo.h
src/BPatch_memoryAccessAdapter.h
src/BPatch_private.h
src/codegen-aarch64.h
src/codegen.h
src/codegen-power.h
src/codegen-x86.h
src/codeRange.h
src/debug.h
src/dynProcess.h
src/dynThread.h
src/ELF_Section.h
src/emit-aarch64.h
src/emit-power.h
src/emitter.h
src/emit-x86.h
src/frameChecker.h
src/frame.h
src/freebsd.h
src/freebsd-x86.h
src/function.h
src/hybridAnalysis.h
src/IAPI_to_AST.h
src/image.h
src/infHeap.h
src/inst-aarch64.h
src/inst.h
src/instP.h
src/instPoint.h
src/inst-power.h
src/inst-x86.h
src/legacy-instruction.h
src/LinearVariable.h
src/linux-aarch64.h
src/linux.h
src/linux-power.h
src/linux-x86.h
src/mapped_module.h
src/mapped_object.h
src/nt_signal_emul.h
src/opcode.h
src/os.h
src/parRegion.h
src/parse-cfg.h
src/Parsing.h
src/patch.h
src/Patching.h
src/pcEventHandler.h
src/pcEventMuxer.h
src/pcrel.h
src/pdwinnt.h
src/RegisterConversion.h
src/registerSpace.h
src/syscallNotification.h
src/syscalltrap.h
src/trapMappings.h
src/unix.h
src/util.h)
set(_sources
src/addressSpace.C
src/ast.C
src/baseTramp.C
src/binaryEdit.C
src/block.C
src/codeRange.C
src/codegen.C
src/debug.C
src/dynProcess.C
src/dynThread.C
src/edge.C
src/frame.C
src/frameChecker.C
src/function.C
src/hybridCallbacks.C
src/hybridInstrumentation.C
src/hybridOverwrites.C
src/image.C
src/infHeap.C
src/inst.C
src/instPoint.C
src/mapped_module.C
src/mapped_object.C
src/parRegion.C
src/parse-cfg.C
src/pcEventHandler.C
src/pcEventMuxer.C
src/registerSpace.C
src/util.C
src/variable.C
src/BPatch.C
src/BPatch_addressSpace.C
src/BPatch_basicBlock.C
src/BPatch_basicBlockLoop.C
src/BPatch_binaryEdit.C
src/BPatch_collections.C
src/BPatch_edge.C
src/BPatch_flowGraph.C
src/BPatch_frame.C
src/BPatch_function.C
src/BPatch_image.C
src/BPatch_instruction.C
src/BPatch_loopTreeNode.C
src/BPatch_memoryAccess.C
src/BPatch_memoryAccessAdapter.C
src/BPatch_module.C
src/BPatch_object.C
src/BPatch_parRegion.C
src/BPatch_point.C
src/BPatch_process.C
src/BPatch_snippet.C
src/BPatch_sourceBlock.C
src/BPatch_statement.C
src/BPatch_thread.C
src/BPatch_type.C
src/Parsing-arch.C
src/Parsing.C
src/Patching.C
src/Relocation/CFG/RelocBlock.C
src/Relocation/CFG/RelocEdge.C
src/Relocation/CFG/RelocGraph.C
src/Relocation/CFG/RelocTarget.C
src/Relocation/CodeBuffer.C
src/Relocation/CodeMover.C
src/Relocation/CodeTracker.C
src/Relocation/DynAddrSpace.C
src/Relocation/DynCFGMaker.C
src/Relocation/DynInstrumenter.C
src/Relocation/DynObject.C
src/Relocation/DynPointMaker.C
src/Relocation/Springboard.C
src/Relocation/Transformers/Instrumenter.C
src/Relocation/Transformers/Modification.C
src/Relocation/Transformers/Movement-adhoc.C
src/Relocation/Transformers/Movement-analysis.C
src/Relocation/Transformers/Transformer.C
src/Relocation/Widgets/ASTWidget.C
src/Relocation/Widgets/CFWidget.C
src/Relocation/Widgets/CallbackWidget.C
src/Relocation/Widgets/InsnWidget.C
src/Relocation/Widgets/InstWidget.C
src/Relocation/Widgets/PCWidget.C
src/Relocation/Widgets/RelDataWidget.C
src/Relocation/Widgets/StackModWidget.C
src/Relocation/patchapi_debug.C)
list(FIND DYNINST_PLATFORM_CAPABILITIES "-Dcap_stack_mods" cap_stack_mods_found)
if(cap_stack_mods_found GREATER -1)
list(
APPEND
_sources
src/StackMod/OffsetVector.C
src/StackMod/StackAccess.C
src/StackMod/StackLocation.C
src/StackMod/StackMod.C
src/StackMod/StackModExpr.C
src/StackMod/StackModChecker.C
src/StackMod/TMap.C)
endif()
if(DYNINST_ARCH_i386 OR DYNINST_ARCH_x86_64)
list(
APPEND
_sources
src/RegisterConversion-x86.C
src/Relocation/Widgets/CFWidget-x86.C
src/Relocation/Widgets/PCWidget-x86.C
src/inst-x86.C
src/emit-x86.C
src/codegen-x86.C
src/stackwalk-x86.C
src/dynProcess-x86.C
src/parse-x86.C
src/IAPI_to_AST.C)
elseif(DYNINST_ARCH_ppc64le)
list(
APPEND
_sources
src/inst-power.C
src/codegen-power.C
src/parse-power.C
src/RegisterConversion-ppc.C
src/stackwalk-ppc.C
src/Relocation/Widgets/CFWidget-ppc.C
src/Relocation/Widgets/PCWidget-ppc.C)
elseif(DYNINST_ARCH_aarch64)
list(
APPEND
_sources
src/inst-aarch64.C
src/emit-aarch64.C
src/codegen-aarch64.C
src/parse-aarch64.C
src/RegisterConversion-aarch64.C
src/stackwalk-aarch64.C
src/Relocation/Widgets/CFWidget-aarch64.C
src/Relocation/Widgets/PCWidget-aarch64.C)
endif()
if(DYNINST_OS_FreeBSD)
list(
APPEND
_sources
src/freebsd.C
src/unix.C
src/freebsd-x86.C
src/syscallNotification.C
src/syscall-freebsd.C)
elseif(DYNINST_OS_Linux)
list(
APPEND
_sources
src/linux.C
src/inst-linux.C
src/unix.C
src/syscallNotification.C
src/syscall-linux.C)
if(DYNINST_ARCH_i386 OR DYNINST_ARCH_x86_64)
list(APPEND _sources src/linux-x86.C)
elseif(DYNINST_ARCH_ppc64le)
list(APPEND _sources src/linux-power.C)
elseif(DYNINST_ARCH_aarch64)
list(APPEND _sources src/linux-aarch64.C)
endif()
elseif(DYNINST_OS_Windows)
list(
APPEND
_sources
src/hybridCallbacks.C
src/hybridInstrumentation.C
src/hybridOverwrites.C
src/inst-winnt.C
src/pdwinnt.C
src/syscall-nt.C
src/Relocation/DynAddrSpace.C
src/Relocation/DynCFGMaker.C
src/Relocation/DynInstrumenter.C
src/Relocation/DynObject.C
src/Relocation/DynPointMaker.C)
endif()
if(DYNINST_ARCH_i386 AND DYNINST_OS_UNIX)
list(APPEND _sources src/cpuid-x86.S)
set_source_files_properties(src/cpuid-x86.S PROPERTIES LANGUAGE C)
endif()
# cmake-format: off
dyninst_library(
dyninstAPI
PUBLIC_HEADER_FILES ${_public_headers}
SOURCE_FILES ${_sources}
DEFINES BPATCH_DLL_BUILD
DYNINST_DEPS common instructionAPI stackwalk pcontrol patchAPI parseAPI symtabAPI
PUBLIC_DEPS
PRIVATE_DEPS Dyninst::ElfUtils Threads::Threads
)
# cmake-format: on
# gcc/clang search directories
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-search-dirs
OUTPUT_VARIABLE SEARCH_DIRS)
if(SEARCH_DIRS MATCHES "libraries:[ ]?[=]?(.+)\n")
set(DYNINST_COMPILER_SEARCH_DIRS ${CMAKE_MATCH_1})
endif()
endif()
foreach(t ${dyninstAPI_TARGETS})
if(DYNINST_OS_Windows)
target_link_libraries(${t} PRIVATE dbghelp WS2_32 imagehlp)
endif()
if(DYNINST_OS_UNIX)
target_link_libraries(${t} PRIVATE pthread)
target_compile_definitions(
${t} PRIVATE "DYNINST_COMPILER_SEARCH_DIRS=${DYNINST_COMPILER_SEARCH_DIRS}")
endif()
endforeach()