-
Notifications
You must be signed in to change notification settings - Fork 663
/
Copy pathValgrind.cmake
80 lines (71 loc) · 3.13 KB
/
Valgrind.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# Enable these jobs on command-line by configuring with 'cmake -S . -B build -DENABLE_VALGRIND=ON'
# Launch with `cmake --build <your build folder> --target valgrind_memcheck_xi_search`, or whichever target you need below
option(ENABLE_VALGRIND "Run the server with Valgrind." OFF)
message(STATUS "ENABLE_VALGRIND: ${ENABLE_VALGRIND}")
if(ENABLE_VALGRIND)
find_program(VALGRIND_COMMAND NAMES valgrind)
message(STATUS "VALGRIND_COMMAND: ${VALGRIND_COMMAND}")
if(NOT VALGRIND_COMMAND)
message(FATAL_ERROR "ENABLE_VALGRIND is ON but valgrind is not found!")
endif()
add_custom_target(
valgrind_memcheck_xi_connect
COMMAND ${VALGRIND_COMMAND} --tool=memcheck --leak-check=full --show-reachable=yes
--undef-value-errors=yes --track-origins=yes --child-silent-after-fork=no
--trace-children=yes
--log-file=${CMAKE_SOURCE_DIR}/xi_connect.memcheck.log
./xi_connect
COMMENT "Writing memcheck log to: ${CMAKE_SOURCE_DIR}/xi_connect.memcheck.log"
DEPENDS xi_connect
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
add_custom_target(
valgrind_callgrind_xi_connect
COMMAND ${VALGRIND_COMMAND} --tool=callgrind
--log-file=${CMAKE_SOURCE_DIR}/xi_connect.callgrind.log
./xi_connect
COMMENT "Writing callgrind log to: ${CMAKE_SOURCE_DIR}/xi_connect.callgrind.log"
DEPENDS xi_connect
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
add_custom_target(
valgrind_memcheck_xi_map
COMMAND ${VALGRIND_COMMAND} --tool=memcheck --leak-check=full --show-reachable=yes
--undef-value-errors=yes --track-origins=yes --child-silent-after-fork=no
--trace-children=yes
--log-file=${CMAKE_SOURCE_DIR}/xi_map.memcheck.log
./xi_map
COMMENT "Writing memcheck log to: ${CMAKE_SOURCE_DIR}/xi_map.memcheck.log"
DEPENDS xi_map
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
add_custom_target(
valgrind_callgrind_xi_map
COMMAND ${VALGRIND_COMMAND} --tool=callgrind
--log-file=${CMAKE_SOURCE_DIR}/xi_map.callgrind.log
./xi_map
COMMENT "Writing callgrind log to: ${CMAKE_SOURCE_DIR}/xi_map.callgrind.log"
DEPENDS xi_map
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
add_custom_target(
valgrind_memcheck_xi_search
COMMAND ${VALGRIND_COMMAND} --tool=memcheck --leak-check=full --show-reachable=yes
--undef-value-errors=yes --track-origins=yes --child-silent-after-fork=no
--trace-children=yes
--log-file=${CMAKE_SOURCE_DIR}/xi_search.memcheck.log
./xi_search
COMMENT "Writing memcheck log to: ${CMAKE_SOURCE_DIR}/xi_search.memcheck.log"
DEPENDS xi_search
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
add_custom_target(
valgrind_callgrind_xi_search
COMMAND ${VALGRIND_COMMAND} --tool=callgrind
--log-file=${CMAKE_SOURCE_DIR}/xi_search.callgrind.log
./xi_search
COMMENT "Writing callgrind log to: ${CMAKE_SOURCE_DIR}/xi_search.callgrind.log"
DEPENDS xi_search
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
endif(ENABLE_VALGRIND)