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
02b9f970
Commit
02b9f970
authored
7 years ago
by
Gabi Melman
Committed by
GitHub
7 years ago
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #514 from stackforce/feature/improve-cmake-lists
Feature/improve cmake lists
parents
c4d93ae0
e6b9fa57
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
17 deletions
+42
-17
CMakeLists.txt
CMakeLists.txt
+42
-17
No files found.
CMakeLists.txt
View file @
02b9f970
...
...
@@ -4,10 +4,14 @@
#
cmake_minimum_required
(
VERSION 3.1
)
project
(
spdlog VERSION
1.0.0
)
project
(
spdlog VERSION
0.14.0
)
include
(
CTest
)
include
(
CMakeDependentOption
)
include
(
GNUInstallDirs
)
#---------------------------------------------------------------------------------------
# compiler config
#---------------------------------------------------------------------------------------
set
(
CMAKE_CXX_STANDARD 11
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
...
...
@@ -15,6 +19,9 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCH
set
(
CMAKE_CXX_FLAGS
"-Wall
${
CMAKE_CXX_FLAGS
}
"
)
endif
()
#---------------------------------------------------------------------------------------
# spdlog target
#---------------------------------------------------------------------------------------
add_library
(
spdlog INTERFACE
)
option
(
SPDLOG_BUILD_EXAMPLES
"Build examples"
OFF
)
...
...
@@ -27,7 +34,7 @@ target_include_directories(
spdlog
INTERFACE
"$<BUILD_INTERFACE:
${
CMAKE_CURRENT_LIST_DIR
}
/include>"
"$<INSTALL_INTERFACE:
include>"
"$<INSTALL_INTERFACE:
${
CMAKE_INSTALL_INCLUDEDIR
}
>"
)
set
(
HEADER_BASE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/include"
)
...
...
@@ -40,52 +47,70 @@ if(SPDLOG_BUILD_TESTING)
add_subdirectory
(
tests
)
endif
()
### Install ###
# * https://github.com/forexample/package-example
set
(
generated_dir
"
${
CMAKE_CURRENT_BINARY_DIR
}
/generated"
)
set
(
config_install_dir
"lib/cmake/
${
PROJECT_NAME
}
"
)
set
(
include_install_dir
"include"
)
set
(
pkgconfig_install_dir
"lib/pkgconfig"
)
set
(
version_config
"
${
generated_dir
}
/
${
PROJECT_NAME
}
ConfigVersion.cmake"
)
set
(
project_config
"
${
generated_dir
}
/
${
PROJECT_NAME
}
Config.cmake"
)
set
(
pkg_config
"
${
generated_dir
}
/
${
PROJECT_NAME
}
.pc"
)
#---------------------------------------------------------------------------------------
# Install/export targets and files
#---------------------------------------------------------------------------------------
# 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_BINARY_DIR
}
/
${
PROJECT_NAME
}
ConfigVersion.cmake"
)
set
(
project_config
"
${
PROJECT_NAME
}
Config.cmake"
)
set
(
pkg_config
"
${
CMAKE_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
)
# Note: use 'targets_export_name'
configure_file
(
"cmake/Config.cmake.in"
"
${
project_config
}
"
@ONLY
)
# configure pkg config file
configure_file
(
"cmake/spdlog.pc.in"
"
${
pkg_config
}
"
@ONLY
)
# install targets
install
(
TARGETS spdlog
EXPORT
"
${
targets_export_name
}
"
INCLUDES DESTINATION
"
${
include_install_dir
}
"
)
install
(
DIRECTORY
"include/spdlog"
DESTINATION
"
${
include_install_dir
}
"
)
# install headers
install
(
DIRECTORY
"
${
HEADER_BASE
}
/
${
PROJECT_NAME
}
"
DESTINATION
"
${
include_install_dir
}
"
)
# install project version file
install
(
FILES
"
${
project_config
}
"
"
${
version_config
}
"
FILES
"
${
version_config
}
"
DESTINATION
"
${
config_install_dir
}
"
)
# install pkg config file
install
(
FILES
"
${
pkg_config
}
"
DESTINATION
"
${
pkgconfig_install_dir
}
"
)
# install project config file
install
(
EXPORT
"
${
targets_export_name
}
"
NAMESPACE
"
${
namespace
}
"
DESTINATION
"
${
config_install_dir
}
"
FILE
${
project_config
}
)
# export build directory config file
export
(
EXPORT
${
targets_export_name
}
NAMESPACE
"
${
namespace
}
"
FILE
${
project_config
}
)
# register project in CMake user registry
export
(
PACKAGE
${
PROJECT_NAME
}
)
file
(
GLOB_RECURSE spdlog_include_SRCS
"
${
HEADER_BASE
}
/*.h"
)
add_custom_target
(
spdlog_headers_for_ide SOURCES
${
spdlog_include_SRCS
}
)
This diff is collapsed.
Click to expand it.
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