From d71555306af7c1922af92732d3bd761f040bf601 Mon Sep 17 00:00:00 2001 From: Gabi Melman Date: Sun, 12 Jan 2025 08:02:39 +0200 Subject: [PATCH] Added SPDLOG_FWRITE_UNLOCKED option to CMakeLists.txt (#3318) * Added SPDLOG_FWRITE_UNLOCKED option to CMakeLists.txt * Update CMakeLists.txt --- CMakeLists.txt | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e56c5699..ccb40885 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -133,6 +133,7 @@ option( "prevent spdlog from using of std::atomic log levels (use only if your code never modifies log levels concurrently" OFF) option(SPDLOG_DISABLE_DEFAULT_LOGGER "Disable default logger creation" OFF) +option(SPDLOG_FWRITE_UNLOCKED "Use the unlocked variant of fwrite. Leave this on unless your libc doesn't have it" ON) # clang-tidy option(SPDLOG_TIDY "run clang-tidy" OFF) @@ -241,15 +242,17 @@ endif() # --------------------------------------------------------------------------------------- # Check if fwrite_unlocked/_fwrite_nolock is available # --------------------------------------------------------------------------------------- -include(CheckSymbolExists) -if(WIN32) - check_symbol_exists(_fwrite_nolock "stdio.h" HAVE_FWRITE_UNLOCKED) -else () - check_symbol_exists(fwrite_unlocked "stdio.h" HAVE_FWRITE_UNLOCKED) -endif() -if(HAVE_FWRITE_UNLOCKED) - target_compile_definitions(spdlog PRIVATE SPDLOG_FWRITE_UNLOCKED) - target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_FWRITE_UNLOCKED) +if(SPDLOG_FWRITE_UNLOCKED) + include(CheckSymbolExists) + if(WIN32) + check_symbol_exists(_fwrite_nolock "stdio.h" HAVE_FWRITE_UNLOCKED) + else () + check_symbol_exists(fwrite_unlocked "stdio.h" HAVE_FWRITE_UNLOCKED) + endif() + if(HAVE_FWRITE_UNLOCKED) + target_compile_definitions(spdlog PRIVATE SPDLOG_FWRITE_UNLOCKED) + target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_FWRITE_UNLOCKED) + endif() endif() # ---------------------------------------------------------------------------------------