wip static-lib
This commit is contained in:
		
							parent
							
								
									f414198fee
								
							
						
					
					
						commit
						69fcaf14e5
					
				| @ -1,8 +1,5 @@ | ||||
| 
 | ||||
| # | ||||
| # Copyright(c) 2015 Ruslan Baratov. | ||||
| # Copyright(c) 2019 spdlog | ||||
| # Distributed under the MIT License (http://opensource.org/licenses/MIT) | ||||
| # | ||||
| 
 | ||||
| cmake_minimum_required(VERSION 3.1) | ||||
| project(spdlog VERSION 1.3.1 LANGUAGES CXX) | ||||
| @ -47,48 +44,36 @@ 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_STATIC_LIB "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)" ON) | ||||
| 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}) | ||||
| 
 | ||||
| set(HEADER_BASE "${CMAKE_CURRENT_SOURCE_DIR}/include") | ||||
| set(HEADER_BASE "${CMAKE_CURRENT_SOURCE_DIR}/include/spdlog") | ||||
| 
 | ||||
| if(SPDLOG_HEADER_ONLY) | ||||
| 	add_definitions(-DSPDLOG_HEADER_ONLY) | ||||
|     add_library(spdlog INTERFACE) | ||||
|     add_library(spdlog::spdlog ALIAS spdlog) | ||||
|     target_include_directories( | ||||
|             spdlog | ||||
|             INTERFACE | ||||
|             "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>" | ||||
|     ) | ||||
| 
 | ||||
| else() | ||||
| 	remove_definitions(-DSPDLOG_HEADER_ONLY) | ||||
|     file(GLOB SRC_FILES ${HEADER_BASE}/spdlog/impl/*.cpp) | ||||
| if(SPDLOG_STATIC_LIB) | ||||
|     add_definitions(-DSPDLOG_STATIC_LIB) | ||||
|     file(GLOB SRC_FILES ${HEADER_BASE}/impl/*.cpp) | ||||
|     add_library(spdlog STATIC ${SRC_FILES}) | ||||
|     add_library(spdlog::spdlog ALIAS spdlog) | ||||
|     target_include_directories( | ||||
|             spdlog | ||||
|             PUBLIC | ||||
|             "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>" | ||||
|     ) | ||||
|     target_include_directories(spdlog PUBLIC  "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>") | ||||
| else() | ||||
|     add_library(spdlog INTERFACE) | ||||
|     target_include_directories(spdlog INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>") | ||||
| endif() | ||||
| 
 | ||||
| add_library(spdlog::spdlog ALIAS spdlog) | ||||
| 
 | ||||
| if(SPDLOG_FMT_EXTERNAL AND NOT TARGET fmt::fmt) | ||||
|     find_package(fmt REQUIRED CONFIG) | ||||
| endif() | ||||
| 
 | ||||
| 
 | ||||
| if(SPDLOG_FMT_EXTERNAL) | ||||
|     target_compile_definitions(spdlog INTERFACE SPDLOG_FMT_EXTERNAL) | ||||
|     target_link_libraries(spdlog INTERFACE fmt::fmt) | ||||
| endif() | ||||
| 
 | ||||
| 
 | ||||
| if(SPDLOG_BUILD_EXAMPLES) | ||||
|     add_subdirectory(example) | ||||
| endif() | ||||
| @ -105,9 +90,9 @@ endif() | ||||
| #--------------------------------------------------------------------------------------- | ||||
| # install | ||||
| #--------------------------------------------------------------------------------------- | ||||
| install(DIRECTORY ${HEADER_BASE}/spdlog DESTINATION include) | ||||
| install(DIRECTORY ${HEADER_BASE} DESTINATION include) | ||||
| 
 | ||||
| if(NOT SPDLOG_HEADER_ONLY) | ||||
| if(SPDLOG_STATIC_LIB) | ||||
|     install(TARGETS spdlog ARCHIVE DESTINATION lib) | ||||
| endif() | ||||
| 
 | ||||
|  | ||||
| @ -65,6 +65,6 @@ private: | ||||
| }; | ||||
| } // namespace spdlog
 | ||||
| 
 | ||||
| #ifdef SPDLOG_HEADER_ONLY | ||||
| #ifndef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/impl/async_logger.cpp" | ||||
| #endif // SPDLOG_HEADER_ONLY
 | ||||
| #endif | ||||
|  | ||||
| @ -23,10 +23,11 @@ | ||||
| 
 | ||||
| #include "spdlog/fmt/fmt.h" | ||||
| 
 | ||||
| #ifdef SPDLOG_HEADER_ONLY | ||||
| #define SPDLOG_INLINE inline | ||||
| #else | ||||
| 
 | ||||
| #ifdef SPDLOG_STATIC_LIB | ||||
| #define SPDLOG_INLINE | ||||
| #else | ||||
| #define SPDLOG_INLINE inline | ||||
| #endif | ||||
| 
 | ||||
| // visual studio upto 2013 does not support noexcept nor constexpr
 | ||||
|  | ||||
| @ -57,6 +57,6 @@ private: | ||||
| } // namespace details
 | ||||
| } // namespace spdlog
 | ||||
| 
 | ||||
| #ifdef SPDLOG_HEADER_ONLY | ||||
| #ifndef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/impl/file_helper.cpp" | ||||
| #endif // ! SPDLOG_HEADER_ONLY
 | ||||
| #endif | ||||
|  | ||||
| @ -33,6 +33,6 @@ struct log_msg | ||||
| } // namespace details
 | ||||
| } // namespace spdlog
 | ||||
| 
 | ||||
| #ifdef SPDLOG_HEADER_ONLY | ||||
| #ifndef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/impl/log_msg.cpp" | ||||
| #endif //  SPDLOG_HEADER_ONLY
 | ||||
| #endif | ||||
|  | ||||
| @ -88,6 +88,6 @@ void wbuf_to_utf8buf(const fmt::wmemory_buffer &wbuf, fmt::memory_buffer &target | ||||
| } // namespace details
 | ||||
| } // namespace spdlog
 | ||||
| 
 | ||||
| #ifdef SPDLOG_HEADER_ONLY | ||||
| #ifndef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/impl/os.cpp" | ||||
| #endif | ||||
|  | ||||
| @ -97,6 +97,6 @@ private: | ||||
| }; | ||||
| } // namespace spdlog
 | ||||
| 
 | ||||
| #ifdef SPDLOG_HEADER_ONLY | ||||
| #ifndef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/impl/pattern_formatter.cpp" | ||||
| #endif | ||||
|  | ||||
| @ -101,6 +101,6 @@ private: | ||||
| } // namespace details
 | ||||
| } // namespace spdlog
 | ||||
| 
 | ||||
| #ifdef SPDLOG_HEADER_ONLY | ||||
| #ifndef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/impl/registry.cpp" | ||||
| #endif // SPDLOG_HEADER_ONLY
 | ||||
| #endif | ||||
|  | ||||
| @ -11,6 +11,8 @@ | ||||
| #include <vector> | ||||
| 
 | ||||
| namespace spdlog { | ||||
| class async_logger; | ||||
| 
 | ||||
| namespace details { | ||||
| 
 | ||||
| using async_logger_ptr = std::shared_ptr<spdlog::async_logger>; | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| #ifndef SPDLOG_HEADER_ONLY | ||||
| #ifdef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/async_logger.h" | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -3,7 +3,7 @@ | ||||
| // Distributed under the MIT License (http://opensource.org/licenses/MIT)
 | ||||
| //
 | ||||
| 
 | ||||
| #ifndef SPDLOG_HEADER_ONLY | ||||
| #ifdef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/details/file_helper.h" | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| #include "spdlog/details/os.h" | ||||
| #include "spdlog/sinks/sink.h" | ||||
| 
 | ||||
| #ifndef SPDLOG_HEADER_ONLY | ||||
| #ifdef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/details/log_msg.h" | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| #ifndef SPDLOG_HEADER_ONLY | ||||
| #ifdef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/logger.h" | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
| // Copyright(c) 2015 Gabi Melman.
 | ||||
| // Distributed under the MIT License (http://opensource.org/licenses/MIT)
 | ||||
| //
 | ||||
| #ifndef SPDLOG_HEADER_ONLY | ||||
| #ifdef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/details/os.h" | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -3,9 +3,9 @@ | ||||
| // Distributed under the MIT License (http://opensource.org/licenses/MIT)
 | ||||
| //
 | ||||
| 
 | ||||
| #ifndef SPDLOG_HEADER_ONLY | ||||
| #ifdef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/details/pattern_formatter.h" | ||||
| #endif // !SPDLOG_HEADER_ONLY
 | ||||
| #endif | ||||
| 
 | ||||
| #include "spdlog/details/fmt_helper.h" | ||||
| #include "spdlog/details/log_msg.h" | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
| // Copyright(c) 2015 Gabi Melman.
 | ||||
| // Distributed under the MIT License (http://opensource.org/licenses/MIT)
 | ||||
| //
 | ||||
| #ifndef SPDLOG_HEADER_ONLY | ||||
| #ifdef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/details/registry.h" | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| #include "spdlog/common.h" | ||||
| #include "spdlog/details/pattern_formatter.h" | ||||
| 
 | ||||
| #ifndef SPDLOG_HEADER_ONLY | ||||
| #ifdef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/sinks/sink.h" | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -340,6 +340,6 @@ protected: | ||||
| }; | ||||
| } // namespace spdlog
 | ||||
| 
 | ||||
| #ifdef SPDLOG_HEADER_ONLY | ||||
| #ifndef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/impl/logger.cpp" | ||||
| #endif // SPDLOG_HEADER_ONLY
 | ||||
| #endif | ||||
|  | ||||
| @ -41,6 +41,6 @@ protected: | ||||
| } // namespace sinks
 | ||||
| } // namespace spdlog
 | ||||
| 
 | ||||
| #ifdef SPDLOG_HEADER_ONLY | ||||
| #ifndef SPDLOG_STATIC_LIB | ||||
| #include "spdlog/impl/sink.cpp" | ||||
| #endif // SPDLOG_HEADER_ONLY
 | ||||
| #endif | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user