Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gabime/spdlog.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgabime <gmelman1@gmail.com>2019-04-26 15:11:01 +0300
committergabime <gmelman1@gmail.com>2019-04-26 15:11:01 +0300
commitbaefe0b3f6c3ad5db3b77991e5354298626c053b (patch)
tree1ec96fc850a0aba9d4608442f8a1809450277699 /CMakeLists.txt
parent3e378f009d992dab6cec928f08a3e990860f54dd (diff)
wip
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt92
1 files changed, 14 insertions, 78 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 843a522f..20669a00 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,3 +1,4 @@
+
#
# Copyright(c) 2015 Ruslan Baratov.
# Distributed under the MIT License (http://opensource.org/licenses/MIT)
@@ -6,7 +7,6 @@
cmake_minimum_required(VERSION 3.1)
project(spdlog VERSION 1.3.1 LANGUAGES CXX)
include(CMakeDependentOption)
-include(GNUInstallDirs)
#---------------------------------------------------------------------------------------
# set default build to release
@@ -40,8 +40,6 @@ include(cmake/sanitizers.cmake)
#---------------------------------------------------------------------------------------
# spdlog target
#---------------------------------------------------------------------------------------
-add_library(spdlog INTERFACE)
-add_library(spdlog::spdlog ALIAS spdlog)
# Check if spdlog is being used directly or via add_subdirectory
set(SPDLOG_MASTER_PROJECT OFF)
@@ -49,12 +47,24 @@ if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
set(SPDLOG_MASTER_PROJECT ON)
endif()
+option(SPDLOG_HEADER_ONLY "Header only version. Turn OFF to build as static lib" OFF)
option(SPDLOG_BUILD_EXAMPLES "Build examples" ${SPDLOG_MASTER_PROJECT})
option(SPDLOG_BUILD_BENCH "Build benchmarks (Requires https://github.com/google/benchmark.git to be installed)" OFF)
option(SPDLOG_BUILD_TESTS "Build tests" ${SPDLOG_MASTER_PROJECT})
option(SPDLOG_FMT_EXTERNAL "Use external fmt library instead of bundled" OFF)
option(SPDLOG_INSTALL "Generate the install target." ${SPDLOG_MASTER_PROJECT})
+if(SPDLOG_HEADER_ONLY)
+ add_definitions(-DSPDLOG_HEADER_ONLY)
+ add_library(spdlog INTERFACE)
+ add_library(spdlog::spdlog ALIAS spdlog)
+
+else()
+ remove_definitions(-DSPDLOG_HEADER_ONLY)
+ file(GLOB SRC_FILES ${PROJECT_SOURCE_DIR}/src/*.cpp)
+ add_library(spdlog ${SRC_FILES} )
+ add_library(spdlog::spdlog ALIAS spdlog)
+endif()
if(SPDLOG_FMT_EXTERNAL AND NOT TARGET fmt::fmt)
find_package(fmt REQUIRED CONFIG)
@@ -62,9 +72,8 @@ endif()
target_include_directories(
spdlog
- INTERFACE
+ PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
- "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
)
if(SPDLOG_FMT_EXTERNAL)
@@ -86,76 +95,3 @@ endif()
if(SPDLOG_BUILD_BENCH)
add_subdirectory(bench)
endif()
-
-#---------------------------------------------------------------------------------------
-# Install/export targets and files
-#---------------------------------------------------------------------------------------
-if(SPDLOG_INSTALL)
- # set files and directories
- set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
- set(include_install_dir "${CMAKE_INSTALL_INCLUDEDIR}")
- set(pkgconfig_install_dir "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
- set(version_config "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
- set(project_config "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake")
- set(targets_config "${PROJECT_NAME}Targets.cmake")
- set(pkg_config "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc")
- set(targets_export_name "${PROJECT_NAME}Targets")
- set(namespace "${PROJECT_NAME}::")
-
- # generate package version file
- include(CMakePackageConfigHelpers)
- write_basic_package_version_file(
- "${version_config}" COMPATIBILITY SameMajorVersion
- )
-
- # configure pkg config file
- configure_file("cmake/spdlog.pc.in" "${pkg_config}" @ONLY)
- # configure spdlogConfig.cmake file
- configure_file("cmake/Config.cmake.in" "${project_config}" @ONLY)
-
- # install targets
- install(
- TARGETS spdlog
- EXPORT "${targets_export_name}"
- )
-
- # install headers
- install(
- DIRECTORY "${HEADER_BASE}/${PROJECT_NAME}"
- DESTINATION "${include_install_dir}"
- )
-
- # install project config and version file
- install(
- FILES "${project_config}" "${version_config}"
- DESTINATION "${config_install_dir}"
- )
-
- # install pkg config file
- install(
- FILES "${pkg_config}"
- DESTINATION "${pkgconfig_install_dir}"
- )
-
- # install targets config file
- install(
- EXPORT "${targets_export_name}"
- NAMESPACE "${namespace}"
- DESTINATION "${config_install_dir}"
- FILE ${targets_config}
- )
-
-# export build directory targets file
-export(
- EXPORT ${targets_export_name}
- NAMESPACE "${namespace}"
- FILE ${targets_config}
-)
-
-# register project in CMake user registry
-export(PACKAGE ${PROJECT_NAME})
-
-endif()
-
-file(GLOB_RECURSE spdlog_include_SRCS "${HEADER_BASE}/*.h")
-add_custom_target(spdlog_headers_for_ide SOURCES ${spdlog_include_SRCS})