view fmt/CMakeLists.txt @ 67:01ba3c658576

fmt: upgrade to 5.1.0, closes #883 @20m
author David Demelier <markand@malikania.fr>
date Fri, 13 Jul 2018 13:15:12 +0200
parents 58ade32642d6
children ce077d93ce14
line wrap: on
line source

cmake_minimum_required(VERSION 3.1.0)
project(fmt)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
  "${CMAKE_CURRENT_SOURCE_DIR}/support/cmake")

include(cxx14)
include(CheckCXXCompilerFlag)

include(CheckSymbolExists)

if (WIN32)
    check_symbol_exists(open io.h HAVE_OPEN)
else ()
    check_symbol_exists(open fcntl.h HAVE_OPEN)
endif ()

set(
    HEADERS
    ${libfmt_SOURCE_DIR}/include/fmt/core.h
    ${libfmt_SOURCE_DIR}/include/fmt/format.h
    ${libfmt_SOURCE_DIR}/include/fmt/format-inl.h
    ${libfmt_SOURCE_DIR}/include/fmt/ostream.h
    ${libfmt_SOURCE_DIR}/include/fmt/printf.h
    ${libfmt_SOURCE_DIR}/include/fmt/time.h
    ${libfmt_SOURCE_DIR}/include/fmt/ranges.h
)

set(FMT_SOURCES ${libfmt_SOURCE_DIR}/src/format.cc)

if (HAVE_OPEN)
    set(FMT_HEADERS ${FMT_HEADERS} ${libfmt_SOURCE_DIR}/include/fmt/posix.h)
    set(FMT_SOURCES ${FMT_SOURCES} ${libfmt_SOURCE_DIR}/src/posix.cc)
endif ()

add_library(libfmt ${FMT_SOURCES} ${FMT_HEADERS})
set_target_properties(libfmt PROPERTIES PREFIX "")

target_include_directories(
    libfmt
    PUBLIC
        $<BUILD_INTERFACE:${fmt_SOURCE_DIR}/include>
)

if (BUILD_SHARED_LIBS)
    if (UNIX AND NOT APPLE)
        # Fix rpmlint warning:
        # unused-direct-shlib-dependency /usr/lib/libformat.so.1.1.0 /lib/libm.so.6.
        target_link_libraries(libfmt -Wl,--as-needed)
    endif ()
    target_compile_definitions(libfmt PRIVATE FMT_EXPORT INTERFACE FMT_SHARED)
endif ()