79 lines
1.7 KiB
CMake
79 lines
1.7 KiB
CMake
#
|
|
# This file is part of the AzerothCore Project. See AUTHORS file for Copyright information
|
|
#
|
|
# This file is free software; as a special exception the author gives
|
|
# unlimited permission to copy and/or distribute it, with or without
|
|
# modifications, as long as this notice is preserved.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
#
|
|
|
|
include(CheckSymbolExists)
|
|
|
|
set(strtod_l_headers stdlib.h)
|
|
|
|
if (APPLE)
|
|
set(strtod_l_headers ${strtod_l_headers} xlocale.h)
|
|
endif ()
|
|
|
|
if(WIN32)
|
|
check_symbol_exists(_strtod_l "${strtod_l_headers}" HAVE_STRTOD_L)
|
|
else()
|
|
check_symbol_exists(strtod_l "${strtod_l_headers}" HAVE_STRTOD_L)
|
|
endif()
|
|
|
|
function(add_headers VAR)
|
|
set(headers ${${VAR}})
|
|
foreach (header ${ARGN})
|
|
set(headers ${headers} include/fmt/${header})
|
|
endforeach()
|
|
set(${VAR} ${headers} PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
# Define the fmt library, its includes and the needed defines.
|
|
add_headers(FMT_HEADERS
|
|
args.h
|
|
chrono.h
|
|
color.h
|
|
compile.h
|
|
core.h
|
|
format.h
|
|
format-inl.h
|
|
locale.h os.h
|
|
ostream.h
|
|
printf.h
|
|
ranges.h
|
|
xchar.h)
|
|
|
|
set(FMT_SOURCES
|
|
src/format.cc
|
|
src/os.cc)
|
|
|
|
add_library(fmt STATIC ${FMT_SOURCES} ${FMT_HEADERS})
|
|
|
|
if (HAVE_STRTOD_L)
|
|
target_compile_definitions(fmt
|
|
PUBLIC
|
|
FMT_LOCALE)
|
|
endif()
|
|
|
|
# Define FMT_CONSTEVAL for current using in c++20
|
|
target_compile_definitions(fmt
|
|
PUBLIC
|
|
FMT_CONSTEVAL=)
|
|
|
|
target_include_directories(fmt
|
|
PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include)
|
|
|
|
target_link_libraries(fmt
|
|
PRIVATE
|
|
acore-dependency-interface)
|
|
|
|
set_target_properties(fmt
|
|
PROPERTIES
|
|
FOLDER
|
|
"deps")
|