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-03-30 16:49:02 +0300
committergabime <gmelman1@gmail.com>2019-03-30 16:49:02 +0300
commitf36be4d5e4a2d3f6fbca5d1133939a8c0d6b1da9 (patch)
treec1e26c80a4074daaeb28c4df94c59d2d809322ab /CMakeLists.txt
parentc2b0e223faa3a10fb307d5bd2bef26cab3708e51 (diff)
Moved lite source to folders|
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt333
1 files changed, 166 insertions, 167 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c4093403..9aa992cf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,167 +1,166 @@
-#
-# Copyright(c) 2015 Ruslan Baratov.
-# Distributed under the MIT License (http://opensource.org/licenses/MIT)
-#
-
-cmake_minimum_required(VERSION 3.1)
-project(spdlog VERSION 1.3.1 LANGUAGES CXX)
-include(CMakeDependentOption)
-include(GNUInstallDirs)
-
-#---------------------------------------------------------------------------------------
-# set default build to release
-#---------------------------------------------------------------------------------------
-if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose Release or Debug" FORCE)
-endif()
-
-message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
-
-#---------------------------------------------------------------------------------------
-# compiler config
-#---------------------------------------------------------------------------------------
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-set(CMAKE_CXX_EXTENSIONS OFF)
-
-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
- add_compile_options("-Wall")
- add_compile_options("-Wextra")
- add_compile_options("-Wconversion")
- add_compile_options("-pedantic")
- add_compile_options("-Wfatal-errors")
-endif()
-
-#---------------------------------------------------------------------------------------
-# address sanitizers check
-#---------------------------------------------------------------------------------------
-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)
-if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
- set(SPDLOG_MASTER_PROJECT ON)
-endif()
-
-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})
-option(SPDLOG_BUILD_LITE "Build spdlog lite" ${SPDLOG_MASTER_PROJECT})
-
-
-if(SPDLOG_FMT_EXTERNAL AND NOT TARGET fmt::fmt)
- find_package(fmt REQUIRED CONFIG)
-endif()
-
-target_include_directories(
- spdlog
- INTERFACE
- "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
- "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
-)
-
-if(SPDLOG_FMT_EXTERNAL)
- target_compile_definitions(spdlog INTERFACE SPDLOG_FMT_EXTERNAL)
- target_link_libraries(spdlog INTERFACE fmt::fmt)
-endif()
-
-set(HEADER_BASE "${CMAKE_CURRENT_SOURCE_DIR}/include")
-
-if(SPDLOG_BUILD_EXAMPLES)
- add_subdirectory(example)
-endif()
-
-if(SPDLOG_BUILD_TESTS)
- include(CTest)
- add_subdirectory(tests)
-endif()
-
-if(SPDLOG_BUILD_BENCH)
- add_subdirectory(bench)
-endif()
-
-if(SPDLOG_BUILD_LITE)
- add_subdirectory(lite)
- add_subdirectory(lite-example)
-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})
+#
+# Copyright(c) 2015 Ruslan Baratov.
+# Distributed under the MIT License (http://opensource.org/licenses/MIT)
+#
+
+cmake_minimum_required(VERSION 3.1)
+project(spdlog VERSION 1.3.1 LANGUAGES CXX)
+include(CMakeDependentOption)
+include(GNUInstallDirs)
+
+#---------------------------------------------------------------------------------------
+# set default build to release
+#---------------------------------------------------------------------------------------
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose Release or Debug" FORCE)
+endif()
+
+message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
+
+#---------------------------------------------------------------------------------------
+# compiler config
+#---------------------------------------------------------------------------------------
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
+
+if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
+ add_compile_options("-Wall")
+ add_compile_options("-Wextra")
+ add_compile_options("-Wconversion")
+ add_compile_options("-pedantic")
+ add_compile_options("-Wfatal-errors")
+endif()
+
+#---------------------------------------------------------------------------------------
+# address sanitizers check
+#---------------------------------------------------------------------------------------
+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)
+if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
+ set(SPDLOG_MASTER_PROJECT ON)
+endif()
+
+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})
+option(SPDLOG_BUILD_LITE "Build spdlog lite" ${SPDLOG_MASTER_PROJECT})
+
+
+if(SPDLOG_FMT_EXTERNAL AND NOT TARGET fmt::fmt)
+ find_package(fmt REQUIRED CONFIG)
+endif()
+
+target_include_directories(
+ spdlog
+ INTERFACE
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
+)
+
+if(SPDLOG_FMT_EXTERNAL)
+ target_compile_definitions(spdlog INTERFACE SPDLOG_FMT_EXTERNAL)
+ target_link_libraries(spdlog INTERFACE fmt::fmt)
+endif()
+
+set(HEADER_BASE "${CMAKE_CURRENT_SOURCE_DIR}/include")
+
+if(SPDLOG_BUILD_EXAMPLES)
+ add_subdirectory(example)
+endif()
+
+if(SPDLOG_BUILD_TESTS)
+ include(CTest)
+ add_subdirectory(tests)
+endif()
+
+if(SPDLOG_BUILD_BENCH)
+ add_subdirectory(bench)
+endif()
+
+if(SPDLOG_BUILD_LITE)
+ add_subdirectory(spdlite)
+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})