CMake: Provide proper interface targets from dependencies

This commit is contained in:
Aokromes
2016-05-23 05:56:48 +02:00
parent aec309a533
commit 6564fcffdf
23 changed files with 465 additions and 237 deletions

View File

@@ -1,31 +1,37 @@
include(CheckCXXCompilerFlag)
# Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
#
# 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(FMT_SOURCES cppformat/format.cc cppformat/format.h)
# Use variadic templates
add_definitions(-DFMT_VARIADIC_TEMPLATES=1)
# Use deleted functions
add_definitions(-DFMT_USE_DELETED_FUNCTIONS=1)
# Use static assert
add_definitions(-DFMT_USE_STATIC_ASSERT=1)
if (WIN32)
check_symbol_exists(open io.h HAVE_OPEN)
else ()
check_symbol_exists(open fcntl.h HAVE_OPEN)
endif ()
set(FMT_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/cppformat/format.h
${CMAKE_CURRENT_SOURCE_DIR}/cppformat/format.cc)
if (HAVE_OPEN)
add_definitions(-DFMT_USE_FILE_DESCRIPTORS=1)
set(FMT_SOURCES ${FMT_SOURCES} cppformat/posix.cc cppformat/posix.h)
endif ()
set(FMT_SOURCES ${FMT_SOURCES}
${CMAKE_CURRENT_SOURCE_DIR}/cppformat/posix.h
${CMAKE_CURRENT_SOURCE_DIR}/cppformat/posix.cc)
endif()
add_library(cppformat STATIC ${FMT_SOURCES})
if (CMAKE_COMPILER_IS_GNUCXX)
set_target_properties(cppformat PROPERTIES COMPILE_FLAGS
"-Wall -Wextra -Wshadow -pedantic")
endif ()
target_include_directories(cppformat
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR})
set_target_properties(cppformat
PROPERTIES
FOLDER
"dep")