g3log/test_performance/Performance.cmake
2024-01-02 11:41:00 -07:00

76 lines
2.7 KiB
CMake

# g3log is a KjellKod Logger
# 2015 @author Kjell Hedström, hedstrom@kjellkod.cc
# ==================================================================
# 2015 by KjellKod.cc. This is PUBLIC DOMAIN to use at your own
# risk and comes with no warranties.
#
# This code is yours to share, use and modify with no strings attached
# and no restrictions or obligations.
# ===================================================================
# . performance test (average + worst case) for KjellKod's g3log
# Do 'cmake -DADD_G3LOG_BENCH_PERFORMANCE=ON' to enable this
option (ADD_G3LOG_BENCH_PERFORMANCE "g3log performance test" OFF)
# create the g3log's performance tests
# =========================
IF (ADD_G3LOG_BENCH_PERFORMANCE)
set(DIR_PERFORMANCE ${g3log_SOURCE_DIR}/test_performance)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
message( STATUS "-DADD_G3LOG_BENCH_PERFORMANCE=ON" )
include_directories (${DIR_PERFORMANCE})
find_library(TCMALLOC_LIBRARY NAMES tcmalloc)
if(NOT TCMALLOC_LIBRARY)
message(FATAL_ERROR "tcmalloc library not found")
else()
message( STATUS "tcmalloc: ${TCMALLOC_LIBRARY} was found" )
endif()
find_library(PROFILER NAMES profiler)
if(NOT PROFILER)
message(FATAL_ERROR "PROFILER library not found")
else()
message( STATUS "PROFILER: ${PROFILER} was found" )
endif()
# add_executable(your_executable ${YOUR_SOURCES})
# target_link_libraries(your_executable PRIVATE ${TCMALLOC_LIBRARY})
# MEAN PERFORMANCE TEST
add_executable(g3log-performance-threaded_mean
${DIR_PERFORMANCE}/main_threaded_mean.cpp
${DIR_PERFORMANCE}/performance.h)
# Turn on G3LOG performance flag
set_target_properties(g3log-performance-threaded_mean PROPERTIES
COMPILE_DEFINITIONS "G3LOG_PERFORMANCE=1")
target_link_libraries(g3log-performance-threaded_mean
${G3LOG_LIBRARY} ${PLATFORM_LINK_LIBRIES} ${PROFILER} )
# WORST CASE PERFORMANCE TEST
add_executable(g3log-performance-threaded_worst
${DIR_PERFORMANCE}/main_threaded_worst.cpp ${DIR_PERFORMANCE}/performance.h)
# Turn on G3LOG performance flag
set_target_properties(g3log-performance-threaded_worst PROPERTIES
COMPILE_DEFINITIONS "G3LOG_PERFORMANCE=1")
target_link_libraries(g3log-performance-threaded_worst
${G3LOG_LIBRARY} ${PLATFORM_LINK_LIBRIES} ${PROFILER})
ELSE()
message( STATUS "-DADD_G3LOG_BENCH_PERFORMANCE=OFF" )
ENDIF(ADD_G3LOG_BENCH_PERFORMANCE)