Skip to content

Commit 6c109e5

Browse files
committed
feat(CMake): added STATUS for messages
1 parent ad035a2 commit 6c109e5

1 file changed

Lines changed: 54 additions & 54 deletions

File tree

CMakeLists.txt

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,55 @@
1-
cmake_minimum_required(VERSION 3.20)
2-
3-
project(AsyncLogger LANGUAGES CXX VERSION 0.0.1 DESCRIPTION "A lightweight C++20 asyncronous logger.")
4-
5-
set(SRC_DIR "${PROJECT_SOURCE_DIR}/src")
6-
set(PUBLIC_HEADER_DIR "${PROJECT_SOURCE_DIR}/include")
7-
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-
16-
file(GLOB_RECURSE SRC_FILES
17-
"${SRC_DIR}/**.cpp"
18-
"${SRC_DIR}/**.hpp"
19-
)
20-
file(GLOB_RECURSE PUBLIC_HEADER_FILES
21-
"${PUBLIC_HEADER_DIR}/**.hpp"
22-
)
23-
24-
add_library(${PROJECT_NAME} STATIC ${SRC_FILES} ${PUBLIC_HEADER_FILES})
25-
26-
if(CXX_FORMAT_SUPPORT)
27-
message("Using std::format for formatting, you can set USE_FMT to force fmt::format instead.")
28-
else()
29-
message("Using fmt::format for formatting.")
30-
include(FetchContent)
31-
32-
FetchContent_Declare(
33-
fmt
34-
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
35-
GIT_TAG 9.1.0
36-
GIT_PROGRESS TRUE
37-
)
38-
FetchContent_MakeAvailable(fmt)
39-
40-
target_link_libraries(${PROJECT_NAME} fmt)
41-
endif()
42-
43-
# does the -lpthread linking for us on Linux
44-
find_package(Threads REQUIRED)
45-
target_link_libraries(${PROJECT_NAME} Threads::Threads )
46-
47-
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 20)
48-
49-
target_include_directories(${PROJECT_NAME} PRIVATE "${PUBLIC_HEADER_DIR}/AsyncLogger/")
50-
target_include_directories(${PROJECT_NAME} PUBLIC "${SRC_DIR}")
51-
target_precompile_headers(${PROJECT_NAME} PRIVATE "${SRC_DIR}/common.hpp")
52-
53-
# public stuff
54-
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}")
1+
cmake_minimum_required(VERSION 3.20)
2+
3+
project(AsyncLogger LANGUAGES CXX VERSION 0.0.1 DESCRIPTION "A lightweight C++20 asyncronous logger.")
4+
5+
set(SRC_DIR "${PROJECT_SOURCE_DIR}/src")
6+
set(PUBLIC_HEADER_DIR "${PROJECT_SOURCE_DIR}/include")
7+
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+
16+
file(GLOB_RECURSE SRC_FILES
17+
"${SRC_DIR}/**.cpp"
18+
"${SRC_DIR}/**.hpp"
19+
)
20+
file(GLOB_RECURSE PUBLIC_HEADER_FILES
21+
"${PUBLIC_HEADER_DIR}/**.hpp"
22+
)
23+
24+
add_library(${PROJECT_NAME} STATIC ${SRC_FILES} ${PUBLIC_HEADER_FILES})
25+
26+
if(CXX_FORMAT_SUPPORT)
27+
message(STATUS "Using std::format for formatting, you can set USE_FMT to force fmt::format instead.")
28+
else()
29+
message(STATUS "Using fmt::format for formatting.")
30+
include(FetchContent)
31+
32+
FetchContent_Declare(
33+
fmt
34+
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
35+
GIT_TAG 9.1.0
36+
GIT_PROGRESS TRUE
37+
)
38+
FetchContent_MakeAvailable(fmt)
39+
40+
target_link_libraries(${PROJECT_NAME} fmt)
41+
endif()
42+
43+
# does the -lpthread linking for us on Linux
44+
find_package(Threads REQUIRED)
45+
target_link_libraries(${PROJECT_NAME} Threads::Threads )
46+
47+
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 20)
48+
49+
target_include_directories(${PROJECT_NAME} PRIVATE "${PUBLIC_HEADER_DIR}/AsyncLogger/")
50+
target_include_directories(${PROJECT_NAME} PUBLIC "${SRC_DIR}")
51+
target_precompile_headers(${PROJECT_NAME} PRIVATE "${SRC_DIR}/common.hpp")
52+
53+
# public stuff
54+
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}")
5555
target_include_directories(${PROJECT_NAME} PUBLIC "${PUBLIC_HEADER_DIR}")

0 commit comments

Comments
 (0)