-
Notifications
You must be signed in to change notification settings - Fork 2
/
gperftools.cmake
29 lines (27 loc) · 1.05 KB
/
gperftools.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
include("${CMAKE_CURRENT_LIST_DIR}/detect_compiler.cmake")
include(CMakeParseArguments)
function(gperftools_enable_tcmalloc)
set(optionalArgs)
set(singleArgs)
set(multiArgs TARGETS)
cmake_parse_arguments(gperftools_enable_tcmalloc "${optionalArgs}" "${singleArgs}" "${multiArgs}" ${ARGN})
check_compiling_with_gcc(gcc)
if(gcc)
set(disable_builtin_malloc "-fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free")
foreach(target ${gperftools_enable_tcmalloc_TARGETS})
target_compile_options(${target} PRIVATE "${disable_builtin_malloc}")
endforeach()
endif()
foreach(target ${gperftools_enable_tcmalloc_TARGETS})
target_link_libraries(${target} PRIVATE "tcmalloc")
endforeach()
endfunction()
function(gperftools_enable_profiler)
set(optionalArgs)
set(singleArgs)
set(multiArgs TARGETS)
cmake_parse_arguments(gperftools_enable_profiler "${optionalArgs}" "${singleArgs}" "${multiArgs}" ${ARGN})
foreach(target ${gperftools_enable_profiler_TARGETS})
target_link_libraries(${target} PRIVATE "profiler")
endforeach()
endfunction()