3 ${LIBUNWIND_INCLUDE_DIR}
6 # heaptrack: bash script to inject/preload
7 configure_file(heaptrack.sh.cmake
8 ${PROJECT_BINARY_DIR}/${BIN_INSTALL_DIR}/heaptrack @ONLY
12 install(PROGRAMS ${PROJECT_BINARY_DIR}/${BIN_INSTALL_DIR}/heaptrack
13 DESTINATION ${BIN_INSTALL_DIR}
17 # heaptrack_preload: track a newly started process
18 add_library(heaptrack_preload MODULE
21 outstream/outstream.cpp
22 outstream/outstream_file.cpp
23 outstream/outstream_socket.cpp
26 target_compile_options(heaptrack_preload PRIVATE "-ftls-model=initial-exec")
28 target_link_libraries(heaptrack_preload LINK_PRIVATE
30 ${CMAKE_THREAD_LIBS_INIT}
33 -ftls-model=initial-exec
36 set_target_properties(heaptrack_preload PROPERTIES
37 VERSION ${HEAPTRACK_LIB_VERSION}
38 SOVERSION ${HEAPTRACK_LIB_SOVERSION}
39 LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${LIB_INSTALL_DIR}/heaptrack"
42 install(TARGETS heaptrack_preload
43 LIBRARY DESTINATION ${LIB_INSTALL_DIR}/heaptrack/
46 # heaptrack_inject: track an already running process
47 add_library(heaptrack_inject MODULE
50 outstream/outstream.cpp
51 outstream/outstream_file.cpp
52 outstream/outstream_socket.cpp
55 target_link_libraries(heaptrack_inject LINK_PRIVATE
57 ${CMAKE_THREAD_LIBS_INIT}
62 set_target_properties(heaptrack_inject PROPERTIES
63 VERSION ${HEAPTRACK_LIB_VERSION}
64 SOVERSION ${HEAPTRACK_LIB_SOVERSION}
65 LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${LIB_INSTALL_DIR}/heaptrack"
68 install(TARGETS heaptrack_inject
69 LIBRARY DESTINATION ${LIB_INSTALL_DIR}/heaptrack/
73 # public API for custom pool allocators or static binaries
74 install(FILES heaptrack_api.h
75 DESTINATION ${CMAKE_INSTALL_PREFIX}/include