mxwcore-wotlk/deps/fmt/CMakeLists.txt

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")