Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
S
spdlog
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
spdlog
Commits
87eb5699
Commit
87eb5699
authored
May 19, 2019
by
gabime
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More updates to CMake (version support , cmake.in)
parent
dd2f293f
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
69 additions
and
59 deletions
+69
-59
CMakeLists.txt
CMakeLists.txt
+52
-19
Config.cmake.in
cmake/Config.cmake.in
+0
-31
SpdlogCPack.cmake
cmake/SpdlogCPack.cmake
+0
-0
spdlog.pc.in
cmake/spdlog.pc.in
+0
-6
spdlogConfig.cmake.in
cmake/spdlogConfig.cmake.in
+15
-0
CMakeLists.txt
example/CMakeLists.txt
+2
-2
.gitignore
example/logs/.gitignore
+0
-1
No files found.
CMakeLists.txt
View file @
87eb5699
...
@@ -29,15 +29,13 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCH
...
@@ -29,15 +29,13 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCH
add_compile_options
(
"-Wfatal-errors"
)
add_compile_options
(
"-Wfatal-errors"
)
endif
()
endif
()
#---------------------------------------------------------------------------------------
# address sanitizers check
#---------------------------------------------------------------------------------------
include
(
cmake/sanitizers.cmake
)
#---------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------
# spdlog target
# spdlog target
#---------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------
# Check if spdlog is being used directly or via add_subdirectory, but allow overriding
# Check if spdlog is being used directly or via add_subdirectory, but allow overriding
if
(
NOT DEFINED SPDLOG_MASTER_PROJECT
)
if
(
NOT DEFINED SPDLOG_MASTER_PROJECT
)
if
(
CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
if
(
CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
...
@@ -47,10 +45,9 @@ else()
...
@@ -47,10 +45,9 @@ else()
endif
()
endif
()
endif
()
endif
()
option
(
BUILD_SHARED_LIBS
"Global flag to cause add_library to create shared libraries if on."
ON
)
option
(
SPDLOG_BUILD_EXAMPLES
"Build examples"
${
SPDLOG_MASTER_PROJECT
}
)
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_BENCH
"Build benchmarks (Requires https://github.com/google/benchmark.git to be installed)"
OFF
)
option
(
SPDLOG_BUILD_TESTS
"Build tests"
O
N
)
option
(
SPDLOG_BUILD_TESTS
"Build tests"
O
FF
)
option
(
SPDLOG_FMT_EXTERNAL
"Use external fmt library instead of bundled"
OFF
)
option
(
SPDLOG_FMT_EXTERNAL
"Use external fmt library instead of bundled"
OFF
)
option
(
SPDLOG_INSTALL
"Generate the install target."
${
SPDLOG_MASTER_PROJECT
}
)
option
(
SPDLOG_INSTALL
"Generate the install target."
${
SPDLOG_MASTER_PROJECT
}
)
...
@@ -60,11 +57,12 @@ find_package(Threads REQUIRED)
...
@@ -60,11 +57,12 @@ find_package(Threads REQUIRED)
# Build library
# Build library
add_library
(
spdlog src/spdlog.cpp
)
add_library
(
spdlog src/spdlog.cpp
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_COMPILED_LIB
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_COMPILED_LIB
)
target_include_directories
(
spdlog PUBLIC
target_include_directories
(
spdlog PUBLIC
"$<BUILD_INTERFACE:
${
CMAKE_CURRENT_LIST_DIR
}
/include>"
"$<BUILD_INTERFACE:
${
CMAKE_CURRENT_LIST_DIR
}
/include>"
"$<INSTALL_INTERFACE:include>"
"$<INSTALL_INTERFACE:include>"
)
)
target_link_libraries
(
spdlog PUBLIC Threads::Threads
)
target_link_libraries
(
spdlog PUBLIC Threads::Threads
)
# Header only
# Header only
...
@@ -73,6 +71,16 @@ target_include_directories(spdlog_header_only INTERFACE "${CMAKE_CURRENT_LIST_DI
...
@@ -73,6 +71,16 @@ target_include_directories(spdlog_header_only INTERFACE "${CMAKE_CURRENT_LIST_DI
target_link_libraries
(
spdlog_header_only INTERFACE Threads::Threads
)
target_link_libraries
(
spdlog_header_only INTERFACE Threads::Threads
)
#---------------------------------------------------------------------------------------
# address sanitizers check
#---------------------------------------------------------------------------------------
if
(
SPDLOG_MASTER_PROJECT
)
include
(
cmake/sanitizers.cmake
)
endif
()
#---------------------------------------------------------------------------------------
# use fmt package if using exertnal fmt
#---------------------------------------------------------------------------------------
if
(
SPDLOG_FMT_EXTERNAL
)
if
(
SPDLOG_FMT_EXTERNAL
)
if
(
NOT TARGET fmt::fmt
)
if
(
NOT TARGET fmt::fmt
)
find_package
(
fmt REQUIRED
)
find_package
(
fmt REQUIRED
)
...
@@ -85,6 +93,9 @@ if(SPDLOG_FMT_EXTERNAL)
...
@@ -85,6 +93,9 @@ if(SPDLOG_FMT_EXTERNAL)
target_link_libraries
(
spdlog_header_only INTERFACE fmt::fmt
)
target_link_libraries
(
spdlog_header_only INTERFACE fmt::fmt
)
endif
()
endif
()
#---------------------------------------------------------------------------------------
# build binries
#---------------------------------------------------------------------------------------
if
(
SPDLOG_BUILD_EXAMPLES
)
if
(
SPDLOG_BUILD_EXAMPLES
)
add_subdirectory
(
example
)
add_subdirectory
(
example
)
endif
()
endif
()
...
@@ -98,27 +109,49 @@ if(SPDLOG_BUILD_BENCH)
...
@@ -98,27 +109,49 @@ if(SPDLOG_BUILD_BENCH)
add_subdirectory
(
bench
)
add_subdirectory
(
bench
)
endif
()
endif
()
#---------------------------------------------------------------------------------------
# install
#---------------------------------------------------------------------------------------
if
(
SPDLOG_INSTALL
)
if
(
SPDLOG_INSTALL
)
set
(
project_config_in
"
${
CMAKE_CURRENT_LIST_DIR
}
/cmake/
${
PROJECT_NAME
}
Config.cmake.in"
)
set
(
project_config_out
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
PROJECT_NAME
}
Config.cmake"
)
set
(
config_targets_file
"
${
PROJECT_NAME
}
ConfigTargets.cmake"
)
set
(
version_config_file
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
PROJECT_NAME
}
ConfigVersion.cmake"
)
set
(
dest_dir lib/
${
PROJECT_NAME
}
/cmake
)
#---------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------
#
install
#
lib in include files
#---------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------
install
(
DIRECTORY include/ DESTINATION include
)
install
(
DIRECTORY include/ DESTINATION include
)
install
(
TARGETS spdlog EXPORT
${
PROJECT_NAME
}
DESTINATION lib
)
install
(
TARGETS spdlog EXPORT
${
PROJECT_NAME
}
DESTINATION lib
)
#---------------------------------------------------------------------------------------
# package and version files
#---------------------------------------------------------------------------------------
install
(
EXPORT
${
PROJECT_NAME
}
install
(
EXPORT
${
PROJECT_NAME
}
DESTINATION lib/
${
PROJECT_NAME
}
/cmake
DESTINATION
${
dest_dir
}
NAMESPACE
${
PROJECT_NAME
}
::
NAMESPACE
${
PROJECT_NAME
}
::
FILE
${
PROJECT_NAME
}
Config.cmake
FILE
${
config_targets_file
}
)
)
include
(
CMakePackageConfigHelpers
)
configure_file
(
"
${
project_config_in
}
"
"
${
project_config_out
}
"
@ONLY
)
write_basic_package_version_file
(
"
${
version_config_file
}
"
COMPATIBILITY SameMajorVersion
)
install
(
FILES
"
${
project_config_out
}
"
"
${
version_config_file
}
"
DESTINATION
"
${
dest_dir
}
"
)
#---------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------
# Support creation of installable packages
# Support creation of installable packages
#---------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------
include
(
SpdlogCPack.cmake
)
include
(
cmake/SpdlogCPack.cmake
)
#---------------------------------------------------------------------------------------
# register project in CMake user registry - disabled by default since the
# installed/packaged version of the project is preferred.
#---------------------------------------------------------------------------------------
option
(
CMAKE_EXPORT_NO_PACKAGE_REGISTRY
"Disable registration of CMake's build directory."
ON
)
export
(
PACKAGE
${
PROJECT_NAME
}
)
endif
()
endif
()
#---------------------------------------------------------------------------------------
# register project in CMake user registry - disabled by default since the
# installed/packaged version of the project is preferred.
#---------------------------------------------------------------------------------------
option
(
CMAKE_EXPORT_NO_PACKAGE_REGISTRY
"Disable registration of CMake's build directory."
ON
)
export
(
PACKAGE
${
PROJECT_NAME
}
)
cmake/Config.cmake.in
deleted
100644 → 0
View file @
dd2f293f
# *************************************************************************/
# * Copyright (c) 2015 Ruslan Baratov. */
# * */
# * Permission is hereby granted, free of charge, to any person obtaining */
# * a copy of this software and associated documentation files (the */
# * "Software"), to deal in the Software without restriction, including */
# * without limitation the rights to use, copy, modify, merge, publish, */
# * distribute, sublicense, and/or sell copies of the Software, and to */
# * permit persons to whom the Software is furnished to do so, subject to */
# * the following conditions: */
# * */
# * The above copyright notice and this permission notice shall be */
# * included in all copies or substantial portions of the Software. */
# * */
# * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
# * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
# * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
# * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
# * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
# * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
# * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
# *************************************************************************/
set(SPDLOG_FMT_EXTERNAL @SPDLOG_FMT_EXTERNAL@)
include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
if(SPDLOG_FMT_EXTERNAL)
include(CMakeFindDependencyMacro)
find_dependency(fmt CONFIG)
endif()
SpdlogCPack.cmake
→
cmake/
SpdlogCPack.cmake
View file @
87eb5699
File moved
cmake/spdlog.pc.in
deleted
100644 → 0
View file @
dd2f293f
prefix=@CMAKE_INSTALL_PREFIX@
includedir=${prefix}/include
Name: @PROJECT_NAME@
Description: Super fast C++ logging library.
Version: @PROJECT_VERSION@
cmake/spdlogConfig.cmake.in
0 → 100644
View file @
87eb5699
# Copyright(c) 2019 spdlog authors
# Distributed under the MIT License (http://opensource.org/licenses/MIT)
find_package(Threads REQUIRED)
set(SPDLOG_FMT_EXTERNAL @SPDLOG_FMT_EXTERNAL@)
set(config_targets_file @config_targets_file@)
if(SPDLOG_FMT_EXTERNAL)
include(CMakeFindDependencyMacro)
find_dependency(fmt CONFIG)
endif()
include("${CMAKE_CURRENT_LIST_DIR}/${config_targets_file}")
example/CMakeLists.txt
View file @
87eb5699
...
@@ -29,12 +29,12 @@ if(TARGET spdlog)
...
@@ -29,12 +29,12 @@ if(TARGET spdlog)
# then add an alias. This allows us to use the same "spdlog::spdlog"
# then add an alias. This allows us to use the same "spdlog::spdlog"
# below that a user would use (with the namespace)
# below that a user would use (with the namespace)
add_library
(
spdlog::spdlog ALIAS spdlog
)
add_library
(
spdlog::spdlog ALIAS spdlog
)
find_package
(
Threads REQUIRED
)
else
()
else
()
# Stand-alone build
# Stand-alone build
find_package
(
spdlog REQUIRED
)
find_package
(
spdlog REQUIRED
)
endif
()
endif
()
find_package
(
Threads REQUIRED
)
# Example of using pre-compiled library
# Example of using pre-compiled library
add_executable
(
example example.cpp
)
add_executable
(
example example.cpp
)
...
@@ -50,7 +50,7 @@ get_target_property(SPDLOG_INCLUDE_DIRS spdlog::spdlog INTERFACE_INCLUDE_DIRECTO
...
@@ -50,7 +50,7 @@ get_target_property(SPDLOG_INCLUDE_DIRS spdlog::spdlog INTERFACE_INCLUDE_DIRECTO
target_include_directories
(
example_header_only PRIVATE
${
SPDLOG_INCLUDE_DIRS
}
)
target_include_directories
(
example_header_only PRIVATE
${
SPDLOG_INCLUDE_DIRS
}
)
target_link_libraries
(
example_header_only Threads::Threads
)
target_link_libraries
(
example_header_only Threads::Threads
)
if
(
CMAKE_SYSTEM_NAME STREQUAL
"Android"
)
if
(
CMAKE_SYSTEM_NAME STREQUAL
"Android"
)
target_link_libraries
(
example_header_only log
)
target_link_libraries
(
example_header_only log
Threads::Threads
)
endif
()
endif
()
add_executable
(
multisink multisink.cpp
)
add_executable
(
multisink multisink.cpp
)
...
...
example/logs/.gitignore
deleted
100644 → 0
View file @
dd2f293f
*.txt
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment