This is an automated email from the ASF dual-hosted git repository.
swebb2066 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
The following commit(s) were added to refs/heads/master by this push:
new a033f5b9 Support performance benchmarking using std::format (#315)
a033f5b9 is described below
commit a033f5b9acf82506348fe4f94ac49a0a24a47fe3
Author: Stephen Webb <[email protected]>
AuthorDate: Wed Dec 20 10:52:56 2023 +1100
Support performance benchmarking using std::format (#315)
---
src/test/cpp/benchmark/CMakeLists.txt | 23 +++++++++++++----------
src/test/cpp/benchmark/benchmark.cpp | 4 ++--
2 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/src/test/cpp/benchmark/CMakeLists.txt
b/src/test/cpp/benchmark/CMakeLists.txt
index 9acae364..6653d110 100644
--- a/src/test/cpp/benchmark/CMakeLists.txt
+++ b/src/test/cpp/benchmark/CMakeLists.txt
@@ -20,12 +20,17 @@ option(BUILD_BENCHMARK_CHECKS "Build google benchmark
checks" OFF)
if( NOT BUILD_BENCHMARK_CHECKS )
return()
endif()
+
find_package(benchmark REQUIRED)
-find_package(fmt QUIET)
-if(fmt_FOUND)
- set(LOG4CXX_HAS_FMT 1)
-else()
- set(LOG4CXX_HAS_FMT 0)
+set(BENCHMARK_TARGETS benchmark::benchmark benchmark::benchmark_main)
+
+set(LOG4CXX_HAS_FMT 0)
+if(NOT LOG4CXX_USE_STANDARD_FORMAT)
+ find_package(fmt QUIET)
+ if(fmt_FOUND)
+ set(LOG4CXX_HAS_FMT 1)
+ list(APPEND BENCHMARK_TARGETS fmt::fmt)
+ endif()
endif()
add_executable(benchmark benchmark.cpp)
@@ -40,12 +45,10 @@ add_executable(benchmark benchmark.cpp)
if( WIN32 )
get_filename_component(APR_DLL_DIR "${APR_DLL}" DIRECTORY)
get_filename_component(APR_UTIL_DLL_DIR "${APR_UTIL_DLL}" DIRECTORY)
- get_filename_component(EXPAT_LIB_DIR "${EXPAT_LIBRARY}" DIRECTORY)
-
set(EXPAT_DLL_DIR "${EXPAT_LIB_DIR}/../bin")
set(LOG4CXX_DLL_DIR "$<SHELL_PATH:$<TARGET_FILE_DIR:log4cxx>>;")
- set(PATH_FOR_TESTS
${CMAKE_PROGRAM_PATH};${APR_DLL_DIR};${APR_UTIL_DLL_DIR};${LOG4CXX_DLL_DIR};${EXPAT_DLL_DIR}\;)
+ set(PATH_FOR_TESTS
${CMAKE_PROGRAM_PATH};${APR_DLL_DIR};${APR_UTIL_DLL_DIR};${LOG4CXX_DLL_DIR}\;)
list(REMOVE_DUPLICATES PATH_FOR_TESTS)
set(NORMAL_PATH $ENV{PATH})
set(ESCAPED_PATH "")
@@ -60,5 +63,5 @@ add_custom_target(run-benchmarks COMMAND benchmark DEPENDS
benchmark)
endif( WIN32 )
target_compile_definitions(benchmark PRIVATE
"LOG4CXX_HAS_FMT=${LOG4CXX_HAS_FMT}" ${LOG4CXX_COMPILE_DEFINITIONS}
${APR_COMPILE_DEFINITIONS} ${APR_UTIL_COMPILE_DEFINITIONS} )
-target_include_directories(benchmark PRIVATE ${CMAKE_CURRENT_LIST_DIR}
$<TARGET_PROPERTY:log4cxx,INCLUDE_DIRECTORIES>)
-target_link_libraries(benchmark PRIVATE log4cxx ${APR_LIBRARIES}
${APR_SYSTEM_LIBS} Threads::Threads fmt::fmt benchmark::benchmark
benchmark::benchmark_main)
+target_include_directories(benchmark PRIVATE
$<TARGET_PROPERTY:log4cxx,INCLUDE_DIRECTORIES>)
+target_link_libraries(benchmark PRIVATE log4cxx ${APR_LIBRARIES}
${APR_SYSTEM_LIBS} Threads::Threads ${BENCHMARK_TARGETS})
diff --git a/src/test/cpp/benchmark/benchmark.cpp
b/src/test/cpp/benchmark/benchmark.cpp
index 3c5a28d0..132c5ea6 100644
--- a/src/test/cpp/benchmark/benchmark.cpp
+++ b/src/test/cpp/benchmark/benchmark.cpp
@@ -6,7 +6,7 @@
#include <log4cxx/asyncappender.h>
#if LOG4CXX_USING_STD_FORMAT
#include <format>
-#else
+#elif LOG4CXX_HAS_FMT
#include <fmt/format.h>
#endif
#include <benchmark/benchmark.h>
@@ -135,7 +135,7 @@ BENCHMARK_DEFINE_F(benchmarker,
logStaticString)(benchmark::State& state)
}
BENCHMARK_REGISTER_F(benchmarker, logStaticString)->Name("Logging static
string");
-#if LOG4CXX_HAS_FMT
+#if LOG4CXX_USING_STD_FORMAT || LOG4CXX_HAS_FMT
BENCHMARK_DEFINE_F(benchmarker, logStaticStringFMT)(benchmark::State& state)
{
for (auto _ : state)