Add TCP socket implementation for output stream. (#53)
[sdk/tools/heaptrack.git] / src / track / CMakeLists.txt
1 include_directories(
2     ${Boost_INCLUDE_DIRS}
3     ${LIBUNWIND_INCLUDE_DIR}
4 )
5
6 # heaptrack: bash script to inject/preload
7 configure_file(heaptrack.sh.cmake
8     ${PROJECT_BINARY_DIR}/${BIN_INSTALL_DIR}/heaptrack @ONLY
9 )
10
11 if (NOT TIZEN)
12     install(PROGRAMS ${PROJECT_BINARY_DIR}/${BIN_INSTALL_DIR}/heaptrack
13        DESTINATION ${BIN_INSTALL_DIR}
14     )
15 endif()
16
17 # heaptrack_preload: track a newly started process
18 add_library(heaptrack_preload MODULE
19     heaptrack_preload.cpp
20     libheaptrack.cpp
21     outstream/outstream.cpp
22     outstream/outstream_file.cpp
23     outstream/outstream_socket.cpp
24 )
25
26 target_compile_options(heaptrack_preload PRIVATE "-ftls-model=initial-exec")
27
28 target_link_libraries(heaptrack_preload LINK_PRIVATE
29     ${CMAKE_DL_LIBS}
30     ${CMAKE_THREAD_LIBS_INIT}
31     ${LIBUNWIND_LIBRARY}
32     rt
33     -ftls-model=initial-exec
34 )
35
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"
40 )
41
42 install(TARGETS heaptrack_preload
43     LIBRARY DESTINATION ${LIB_INSTALL_DIR}/heaptrack/
44 )
45
46 # heaptrack_inject: track an already running process
47 add_library(heaptrack_inject MODULE
48     heaptrack_inject.cpp
49     libheaptrack.cpp
50     outstream/outstream.cpp
51     outstream/outstream_file.cpp
52     outstream/outstream_socket.cpp
53 )
54
55 target_link_libraries(heaptrack_inject LINK_PRIVATE
56     ${CMAKE_DL_LIBS}
57     ${CMAKE_THREAD_LIBS_INIT}
58     ${LIBUNWIND_LIBRARY}
59     rt
60 )
61
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"
66 )
67
68 install(TARGETS heaptrack_inject
69     LIBRARY DESTINATION ${LIB_INSTALL_DIR}/heaptrack/
70 )
71
72 if (NOT TIZEN)
73     # public API for custom pool allocators or static binaries
74     install(FILES heaptrack_api.h
75        DESTINATION ${CMAKE_INSTALL_PREFIX}/include
76     )
77 endif()