Add option to link against libtcmalloc.so

Implementation done by Alberto Griggio (agriggio)
for his fork at https://bitbucket.org/agriggio/art

libtcmalloc.so comes with google's perftools:
https://github.com/gperftools/gperftools

This should fix issues where glibc won't give
memory back to the OS.
Related issue: #4416
This commit is contained in:
Franz Trischberger
2019-09-21 08:44:53 +03:00
parent e10c3b2f66
commit 706c16510f
2 changed files with 22 additions and 0 deletions

View File

@@ -136,6 +136,9 @@ option(TRACE_MYRWMUTEX "Trace custom R/W Mutex (Debug builds only); redirecting
option(AUTO_GDK_FLUSH "Use gdk_flush on all gdk_thread_leave other than the GUI thread; set it ON if you experience X Server warning/errors" OFF)
#option(TARGET32BIT "Build for 32-bit architecture when ON, otherwise 64-bit. Default is OFF" OFF)
option(ENABLE_TCMALLOC "Use the tcmalloc library if available" OFF)
set(TCMALLOC_LIB_DIR "" CACHE PATH "Custom path for the tcmalloc library")
# Set installation directories:
if(WIN32 OR APPLE)
if(BUILD_BUNDLE)
@@ -564,6 +567,23 @@ int main()
return 0;
}" LENSFUN_HAS_LOAD_DIRECTORY)
set(TCMALLOC_LIB_DIR)
if(ENABLE_TCMALLOC)
if(TCMALLOC_LIB_DIR)
find_library(TCMALLOC_LIBRARIES tcmalloc PATHS ${TCMALLOC_LIB_DIR} NO_DEFAULT_PATH)
else()
find_library(TCMALLOC_LIBRARIES tcmalloc)
endif()
if(TCMALLOC_LIBRARIES)
message(STATUS "using tcmalloc library in ${TCMALLOC_LIBRARIES}")
else()
set(TCMALLOC_LIBRARIES "" CACHE INTERNAL "" FORCE)
message(STATUS "tcmalloc not found")
endif()
else()
set(TCMALLOC_LIBRARIES "" CACHE INTERNAL "" FORCE)
endif()
add_subdirectory(rtexif)
add_subdirectory(rtengine)