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 )