Skip to content

Commit 1137fde

Browse files
committed
fix: unable to properly set USE_FMT
1 parent 6fcfd90 commit 1137fde

2 files changed

Lines changed: 14 additions & 12 deletions

File tree

CMakeLists.txt

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
11
cmake_minimum_required(VERSION 3.20)
22

3+
option(USE_FMT "Use fmt::format instead of std::format" 0)
4+
35
project(AsyncLogger LANGUAGES CXX VERSION 0.0.1 DESCRIPTION "A lightweight C++20 asyncronous logger.")
46

57
set(SRC_DIR "${PROJECT_SOURCE_DIR}/src")
68
set(PUBLIC_HEADER_DIR "${PROJECT_SOURCE_DIR}/include")
79

8-
# check std::format support
9-
if(NOT USE_FMT)
10-
include(CheckIncludeFileCXX)
11-
check_include_file_cxx("format" CXX_FORMAT_SUPPORT)
12-
else()
13-
set(CXX_FORMAT_SUPPORT 0)
14-
endif()
15-
1610
file(GLOB_RECURSE SRC_FILES
1711
"${SRC_DIR}/**.cpp"
1812
"${SRC_DIR}/**.hpp"
@@ -23,7 +17,11 @@ file(GLOB_RECURSE PUBLIC_HEADER_FILES
2317

2418
add_library(${PROJECT_NAME} STATIC ${SRC_FILES} ${PUBLIC_HEADER_FILES})
2519

26-
if(CXX_FORMAT_SUPPORT)
20+
# check std::format support
21+
include(CheckIncludeFileCXX)
22+
check_include_file_cxx("format" CXX_FORMAT_SUPPORT)
23+
24+
if(CXX_FORMAT_SUPPORT AND NOT USE_FMT)
2725
message(STATUS "Using std::format for formatting, you can set USE_FMT to force fmt::format instead.")
2826
else()
2927
message(STATUS "Using fmt::format for formatting.")
@@ -37,12 +35,16 @@ else()
3735
)
3836
FetchContent_MakeAvailable(fmt)
3937

38+
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_FMT=1)
4039
target_link_libraries(${PROJECT_NAME} fmt)
4140
endif()
4241

42+
unset(USE_FMT CACHE)
43+
unset(CXX_FORMAT_SUPPORT CACHE)
44+
4345
# does the -lpthread linking for us on Linux
4446
find_package(Threads REQUIRED)
45-
target_link_libraries(${PROJECT_NAME} Threads::Threads )
47+
target_link_libraries(${PROJECT_NAME} Threads::Threads)
4648

4749
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 20)
4850

@@ -52,4 +54,4 @@ target_precompile_headers(${PROJECT_NAME} PRIVATE "${SRC_DIR}/common.hpp")
5254

5355
# public stuff
5456
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}")
55-
target_include_directories(${PROJECT_NAME} PUBLIC "${PUBLIC_HEADER_DIR}")
57+
target_include_directories(${PROJECT_NAME} PUBLIC "${PUBLIC_HEADER_DIR}")

include/AsyncLogger/Logger.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#pragma once
2-
#if !defined(USE_FMT) && CXX_FORMAT_SUPPORT
2+
#if !defined(USE_FMT)
33
#include <format>
44
#define FORMAT std::format
55
#define VFORMAT std::vformat

0 commit comments

Comments
 (0)