Warning, /sdk/heaptrack/src/track/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # heaptrack: bash script to inject/preload
0002 configure_file(heaptrack.sh.cmake
0003 ${PROJECT_BINARY_DIR}/${BIN_INSTALL_DIR}/heaptrack @ONLY
0004 )
0005
0006 install(PROGRAMS ${PROJECT_BINARY_DIR}/${BIN_INSTALL_DIR}/heaptrack
0007 DESTINATION ${BIN_INSTALL_DIR}
0008 )
0009
0010 if (HEAPTRACK_USE_LIBUNWIND)
0011 add_library(heaptrack_unwind STATIC trace_libunwind.cpp)
0012 target_include_directories(heaptrack_unwind PRIVATE ${LIBUNWIND_INCLUDE_DIRS})
0013 target_link_libraries(heaptrack_unwind PRIVATE ${LIBUNWIND_LIBRARIES})
0014 else()
0015 add_library(heaptrack_unwind STATIC trace_unwind_tables.cpp)
0016 endif()
0017
0018 if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
0019 set(LIBUTIL_LIBRARY "util")
0020 endif()
0021
0022 set_property(TARGET heaptrack_unwind PROPERTY POSITION_INDEPENDENT_CODE ON)
0023
0024 # heaptrack_env: runtime environment tests
0025 add_executable(heaptrack_env heaptrack_env.cpp)
0026
0027 install(TARGETS heaptrack_env
0028 RUNTIME DESTINATION ${LIBEXEC_INSTALL_DIR}
0029 )
0030
0031 set_target_properties(heaptrack_env PROPERTIES
0032 RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${LIBEXEC_INSTALL_DIR}"
0033 )
0034
0035 # heaptrack_preload: track a newly started process
0036 add_library(heaptrack_preload MODULE
0037 heaptrack_preload.cpp
0038 libheaptrack.cpp
0039 )
0040
0041 target_link_libraries(heaptrack_preload LINK_PRIVATE
0042 ${CMAKE_DL_LIBS}
0043 ${CMAKE_THREAD_LIBS_INIT}
0044 ${LIBUTIL_LIBRARY}
0045 heaptrack_unwind
0046 rt
0047 )
0048
0049 set_target_properties(heaptrack_preload PROPERTIES
0050 VERSION ${HEAPTRACK_LIB_VERSION}
0051 SOVERSION ${HEAPTRACK_LIB_SOVERSION}
0052 LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${LIB_INSTALL_DIR}/heaptrack"
0053 )
0054
0055 install(TARGETS heaptrack_preload
0056 LIBRARY DESTINATION ${LIB_INSTALL_DIR}/heaptrack/
0057 )
0058
0059 # heaptrack_inject: track an already running process
0060 add_library(heaptrack_inject MODULE
0061 heaptrack_inject.cpp
0062 libheaptrack.cpp
0063 )
0064
0065 target_link_libraries(heaptrack_inject PRIVATE
0066 ${CMAKE_DL_LIBS}
0067 ${CMAKE_THREAD_LIBS_INIT}
0068 ${LIBUTIL_LIBRARY}
0069 heaptrack_unwind
0070 rt
0071 tsl::robin_map
0072 )
0073
0074 set_target_properties(heaptrack_inject PROPERTIES
0075 VERSION ${HEAPTRACK_LIB_VERSION}
0076 SOVERSION ${HEAPTRACK_LIB_SOVERSION}
0077 LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${LIB_INSTALL_DIR}/heaptrack"
0078 )
0079
0080 install(TARGETS heaptrack_inject
0081 LIBRARY DESTINATION ${LIB_INSTALL_DIR}/heaptrack/
0082 )
0083
0084 # public API for custom pool allocators or static binaries
0085 install(FILES heaptrack_api.h
0086 DESTINATION ${CMAKE_INSTALL_PREFIX}/include
0087 )