#if allocator is set on command line make sure it matches below strings
if(ALLOCATOR)
if(${ALLOCATOR} MATCHES "tcmalloc(_minimal)?")
- if(GPERFTOOLS_USE_STATIC_LIBS)
- include(Buildgperftools)
- else()
- find_package(gperftools REQUIRED)
- endif()
+ find_package(gperftools REQUIRED)
set(HAVE_LIBTCMALLOC ON)
elseif(${ALLOCATOR} STREQUAL "jemalloc")
find_package(JeMalloc REQUIRED)
message(FATAL_ERROR "Unsupported allocator selected: ${ALLOCATOR}")
endif()
else(ALLOCATOR)
- if(NOT GPERFTOOLS_USE_STATIC_LIBS)
- find_package(gperftools)
- set(HAVE_LIBTCMALLOC ${gperftools_FOUND})
- endif()
+ find_package(gperftools)
+ set(HAVE_LIBTCMALLOC ${gperftools_FOUND})
if(NOT gperftools_FOUND)
find_package(JeMalloc)
endif()
+++ /dev/null
-if(EXISTS ${CMAKE_SOURCE_DIR}/src/gperftools/configure)
- set(gperftools_SOURCE_DIR
- SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/gperftools)
-else()
- set(gperftools_SOURCE_DIR
- URL https://github.com/gperftools/gperftools/releases/download/gperftools-2.7/gperftools-2.7.tar.gz
- URL_HASH SHA256=1ee8c8699a0eff6b6a203e59b43330536b22bbcbe6448f54c7091e5efb0763c9)
-endif()
-
-set(gperftools_ROOT_DIR ${CMAKE_CURRENT_BINARY_DIR}/gperftools)
-include(ExternalProject)
-# override the $DESTDIR specified by debian's dh-make, as it sets $DESTDIR
-# environment variable globally, which instructs GNU automake to install the
-# artifacts to the specified $DESTDIR instead of <INSTALL_DIR>, where the
-# headers and libraries are expected. if $DESTDIR is specified, the artifacts
-# will be installed into ${DESTDIR}/${prefix}. and the default ${prefix} is
-# /user/local, so pass an empty string to "configure"
-ExternalProject_Add(gperftools_ext
- ${gperftools_SOURCE_DIR}
- CONFIGURE_COMMAND <SOURCE_DIR>/configure --disable-libunwind --disable-stacktrace-via-backtrace --enable-frame-pointers --prefix= CXXFLAGS=-fPIC
- BUILD_COMMAND $(MAKE)
- INSTALL_DIR ${gperftools_ROOT_DIR}
- INSTALL_COMMAND $(MAKE) install DESTDIR=<INSTALL_DIR>)
-
-# create the directory so cmake won't complain when looking at the imported
-# target
-file(MAKE_DIRECTORY ${gperftools_ROOT_DIR}/include)
-
-foreach(component tcmalloc tcmalloc_minimal profiler)
- add_library(gperftools::${component} STATIC IMPORTED)
- set_target_properties(gperftools::${component} PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES ${gperftools_ROOT_DIR}/include
- IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
- IMPORTED_LOCATION ${gperftools_ROOT_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${component}${CMAKE_STATIC_LIBRARY_SUFFIX})
- add_dependencies(gperftools::${component} gperftools_ext)
-endforeach()
-
-find_package(Threads)
-foreach(component tcmalloc profiler)
- set_target_properties(gperftools::${component} PROPERTIES
- INTERFACE_LINK_LIBRARIES "Threads::Threads")
-endforeach()
rm -rf src/boost
}
-download_gperftools() {
- version=$1
- shift
- sha256=$1
- shift
- dname=gperftools-$version
- fname=$dname.tar.gz
- url=https://github.com/gperftools/gperftools/releases/download/$dname/$fname
-
- if ! wget -c --no-verbose -O $fname $url; then
- echo "Download of $url failed"
- exit 1
- elif [ $(sha256sum $fname | awk '{print $1}') != $sha256 ]; then
- echo "Error: failed to download gperftools: SHA256 mismatch."
- exit 1
- fi
- tar xzf $fname -C src
- mv src/$dname src/gperftools
- tar cf ${outfile}.gperftools.tar ${outfile}/src/gperftools
- rm -rf src/gperftools
-}
-
_python_autoselect() {
python_command=
for interpreter in python2.7 python3 ; do
https://dl.bintray.com/boostorg/release/$boost_version/source \
https://downloads.sourceforge.net/project/boost/boost/$boost_version \
https://download.ceph.com/qa
-download_gperftools 2.7 1ee8c8699a0eff6b6a203e59b43330536b22bbcbe6448f54c7091e5efb0763c9
build_dashboard_frontend
tar --concatenate -f $outfile.all.tar $outfile.version.tar
tar --concatenate -f $outfile.all.tar $outfile.boost.tar
-tar --concatenate -f $outfile.all.tar $outfile.gperftools.tar
tar --concatenate -f $outfile.all.tar $outfile.tar
tar --concatenate -f $outfile.all.tar dashboard_frontend.tar
mv $outfile.all.tar $outfile.tar
option(WITH_PROFILER "build extra profiler binaries" OFF)
if(WITH_PROFILER)
- if(GPERFTOOLS_USE_STATIC_LIBS)
- if(NOT TARGET gperftools::profiler)
- include(Buildgperftools)
- endif()
- else()
- find_package(gperftools REQUIRED profiler)
- endif()
+ find_package(gperftools REQUIRED profiler)
add_library(cpu_profiler STATIC
cpu_profiler.cc)
target_link_libraries(cpu_profiler