include_guard(GLOBAL) include(DyninstLibrary) configure_file(${PROJECT_SOURCE_DIR}/cmake/dyninstversion.h.in ${CMAKE_CURRENT_SOURCE_DIR}/h/dyninstversion.h) set(_public_headers h/Annotatable.h h/Architecture.h h/Buffer.h h/compiler_annotations.h h/compiler_diagnostics.h h/concurrent.h h/DynAST.h h/dyn_regs.h h/dyn_syscalls.h h/dyntypes.h h/Edge.h h/entryIDs.h h/Graph.h h/IBSTree-fast.h h/IBSTree.h h/MachSyscall.h h/mnemonics/aarch64_entryIDs.h h/mnemonics/ppc_entryIDs.h h/mnemonics/x86_entryIDs.h h/mnemonics/AMDGPU/gfx908_entryIDs.h h/mnemonics/AMDGPU/gfx90a_entryIDs.h h/mnemonics/AMDGPU/gfx940_entryIDs.h h/mnemonics/IntelGPU/generic_entryIDs.h h/mnemonics/NVIDIA/generic_entryIDs.h h/Node.h h/ProcReader.h h/registers/MachRegister.h h/registers/aarch64_regs.h h/registers/abstract_regs.h h/registers/AMDGPU/amdgpu_gfx908_regs.h h/registers/AMDGPU/amdgpu_gfx90a_regs.h h/registers/AMDGPU/amdgpu_gfx940_regs.h h/registers/cuda_regs.h h/registers/MachRegister.h h/registers/ppc32_regs.h h/registers/ppc64_regs.h h/registers/reg_def.h h/registers/x86_64_regs.h h/registers/x86_regs.h h/SymReader.h h/unaligned_memory_access.h h/util.h h/VariableLocation.h h/dyninstversion.h # generated by cmake/version.h.in at config time ) set(_private_headers src/addrtranslate.h src/addrtranslate-sysv.h src/arch-aarch64.h src/arch.h src/arch-power.h src/arch-x86.h src/debug_common.h src/dthread.h src/dyn_register.h src/freebsdHeaders.h src/freebsdKludges.h src/headers.h src/ia32_locations.h src/IntervalTree.h src/linuxHeaders.h src/linuxKludges.h src/lprintf.h src/lru_cache.h src/MappedFile.h src/NodeIterator.h src/ntHeaders.h src/parseauxv.h src/pathName.h src/pool_allocators.h src/registers/MachRegister.C src/sha1.h src/singleton_object_pool.h src/stats.h src/symbolDemangle.h src/symbolDemangleWithCache.h src/Timer.h src/vgannotations.h src/vm_maps.h) set(_sources src/pfq-rwlock.C src/concurrent.C src/Timer.C src/lprintf.C src/pathName.C src/stats.C src/Annotatable.C src/MappedFile.C src/sha1.C src/util.C src/Node.C src/Graph.C src/Edge.C src/DOT.C src/dyn_regs.C src/AST.C src/addrtranslate.C src/arch-x86.C src/arch-power.C src/arch-aarch64.C src/debug_common.C src/VariableLocation.C src/Buffer.C src/MachSyscall.C) if(DYNINST_OS_UNIX) list(APPEND _sources src/addrtranslate-sysv.C src/symbolDemangleWithCache.C src/symbolDemangle.c) endif() if(DYNINST_OS_FreeBSD) list(APPEND _sources src/freebsdKludges.C src/addrtranslate-freebsd.C) elseif(DYNINST_OS_Linux) list(APPEND _sources src/linuxKludges.C src/parseauxv.C src/addrtranslate-auxv.C src/addrtranslate-linux.C) elseif(DYNINST_OS_Windows) list(APPEND _sources src/ntKludges.C src/addrtranslate-win.C) endif() if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") if(${CMAKE_CXX_COMPILER_VERSION} MATCHES "^[789](\.|$)") # Disable var-tracking-assignments for arch-x86.C for gcc 7, 8, & 9. The default # max size for these compilers is too small so it fails, adjusting it using # # PROPERTIES COMPILE_FLAGS "--param=max-vartrack-size=600000000" # # succeeds, but just disable it. set_source_files_properties(src/arch-x86.C PROPERTIES COMPILE_FLAGS "-fno-var-tracking-assignments") endif() endif() # adjust warning threshold if set in cmake/warnings.cmake if(debugMaxFrameSizeOverrideSyscallInformation) set_source_files_properties( src/MachSyscall.C PROPERTIES COMPILE_FLAGS $<$:-Wframe-larger-than=${debugMaxFrameSizeOverrideSyscallInformation}> ) endif() if(nonDebugMaxFrameSizeOverrideSyscallInformation) set_source_files_properties( src/MachSyscall.C PROPERTIES COMPILE_FLAGS $<$>:-Wframe-larger-than=${nonDebugMaxFrameSizeOverrideSyscallInformation}> ) endif() # cmake-format: off dyninst_library( common PUBLIC_HEADER_FILES ${_public_headers} PRIVATE_HEADER_FILES ${_private_headers} SOURCE_FILES ${_sources} DEFINES COMMON_LIB PUBLIC_DEPS Dyninst::TBB PRIVATE_DEPS Dyninst::LibIberty OpenMP::OpenMP_CXX Dyninst::Valgrind Threads::Threads ) # cmake-format: on if(DYNINST_OS_Windows) foreach(t ${common_TARGETS}) target_compile_definitions(${t} PRIVATE "WIN32" "_WIN32_WINNT=0x500") target_link_libraries(${t} PRIVATE Psapi WS2_32 dbghelp) endforeach() endif()