11cmake_minimum_required (VERSION 3.22.1)
22
3- project (log_surgeon
3+ project (
4+ log_surgeon
45 VERSION 0.0.1
56 DESCRIPTION "log-surgeon: A performant log parsing library"
67 HOMEPAGE_URL https://github.com/y-scope/log -surgeon
7- LANGUAGES CXX
8- )
8+ LANGUAGES
9+ CXX
10+ )
911
10- if (POLICY CMP0077)
12+ if (POLICY CMP0077)
1113 cmake_policy (SET CMP0077 NEW)
1214endif ()
1315
@@ -24,7 +26,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS
2426 FORCE
2527)
2628
27- if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES )
29+ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES )
2830 set (default_build_type "Release" )
2931 message (STATUS "No build type specified. Setting to '${default_build_type} '." )
3032 set (CMAKE_BUILD_TYPE "${default_build_type} " CACHE STRING "Choose the type of build." FORCE)
@@ -112,105 +114,120 @@ set(SOURCE_FILES
112114 src/log_surgeon/Token.hpp
113115 src/log_surgeon/types.hpp
114116 src/log_surgeon/UniqueIdGenerator.hpp
115- )
117+ )
116118
117119set (LOG_SURGEON_INSTALL_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR} /cmake/log_surgeon)
118120set (LOG_SURGEON_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR} )
119121
120122add_library (log_surgeon ${SOURCE_FILES} )
121123add_library (log_surgeon::log_surgeon ALIAS log_surgeon)
122124
123- target_link_libraries (log_surgeon
125+ target_link_libraries (
126+ log_surgeon
124127 PUBLIC
125- fmt::fmt
126- Microsoft.GSL::GSL
127- )
128+ fmt::fmt
129+ Microsoft.GSL::GSL
130+ )
128131
129- target_include_directories (log_surgeon
130- PUBLIC
132+ target_include_directories (
133+ log_surgeon
134+ PUBLIC
131135 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src>
132136 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
133- PRIVATE
137+ PRIVATE
134138 ${CMAKE_CURRENT_SOURCE_DIR} /src
135- )
139+ )
136140
137- target_compile_features (log_surgeon
138- PRIVATE cxx_std_20
139- )
141+ target_compile_features (log_surgeon PRIVATE cxx_std_20)
140142
141- target_compile_options (log_surgeon PRIVATE
142- $<$<CXX_COMPILER_ID:MSVC >:/W4 /WX>
143- $<$<NOT :$<CXX_COMPILER_ID:MSVC >>:-Wall -Wextra -Wpedantic -Werror>
144- )
143+ target_compile_options (
144+ log_surgeon
145+ PRIVATE
146+ $<$<CXX_COMPILER_ID:MSVC >:/W4
147+ /WX>
148+ $<$<NOT :$<CXX_COMPILER_ID:MSVC >>:-Wall
149+ -Wextra
150+ -Wpedantic
151+ -Werror>
152+ )
145153
146154# Disable -Wstringop-overflow to avoid a false positive in the following compiler versions.
147155# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117983
148- if ("GNU" STREQUAL "${CMAKE_CXX_COMPILER_ID} "
149- AND ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 12
150- AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.5)
151- OR (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13
152- AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.4)
153- OR (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 14
154- AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14.3)))
156+ if (
157+ "GNU"
158+ STREQUAL
159+ "${CMAKE_CXX_COMPILER_ID} "
160+ AND (
161+ (
162+ CMAKE_CXX_COMPILER_VERSION
163+ VERSION_GREATER_EQUAL
164+ 12
165+ AND CMAKE_CXX_COMPILER_VERSION
166+ VERSION_LESS
167+ 12.5
168+ )
169+ OR (
170+ CMAKE_CXX_COMPILER_VERSION
171+ VERSION_GREATER_EQUAL
172+ 13
173+ AND CMAKE_CXX_COMPILER_VERSION
174+ VERSION_LESS
175+ 13.4
176+ )
177+ OR (
178+ CMAKE_CXX_COMPILER_VERSION
179+ VERSION_GREATER_EQUAL
180+ 14
181+ AND CMAKE_CXX_COMPILER_VERSION
182+ VERSION_LESS
183+ 14.3
184+ )
185+ )
186+ )
155187 target_compile_options (log_surgeon PRIVATE "-Wno-stringop-overflow" )
156188endif ()
157189
158190# Make off_t 64-bit
159- target_compile_definitions (log_surgeon
160- PRIVATE
161- _FILE_OFFSET_BITS=64
162- )
191+ target_compile_definitions (log_surgeon PRIVATE _FILE_OFFSET_BITS=64)
163192
164- install (
165- TARGETS
166- log_surgeon
167- EXPORT
168- log_surgeon-targets
169- )
193+ install (TARGETS log_surgeon EXPORT log_surgeon-targets)
170194
171195install (
172- EXPORT
173- log_surgeon-targets
174- NAMESPACE
175- log_surgeon::
176- DESTINATION
177- ${LOG_SURGEON_INSTALL_CONFIG_DIR}
178- )
196+ EXPORT log_surgeon-targets
197+ NAMESPACE log_surgeon::
198+ DESTINATION ${LOG_SURGEON_INSTALL_CONFIG_DIR}
199+ )
179200
180201install (
181202 DIRECTORY
182- "${PROJECT_SOURCE_DIR} /src/log_surgeon"
183- DESTINATION
184- "${LOG_SURGEON_INSTALL_INCLUDE_DIR} "
203+ "${PROJECT_SOURCE_DIR} /src/log_surgeon"
204+ DESTINATION "${LOG_SURGEON_INSTALL_INCLUDE_DIR} "
185205 FILES_MATCHING
186206 PATTERN "*.h"
187207 PATTERN "*.hpp"
188208 PATTERN "*.tpp"
189- )
209+ )
190210
191211configure_package_config_file(
192212 ${CMAKE_CURRENT_LIST_DIR} /cmake/log_surgeon-config.cmake.in
193213 ${CMAKE_CURRENT_BINARY_DIR} /log_surgeon-config.cmake
194- INSTALL_DESTINATION
195- ${LOG_SURGEON_INSTALL_CONFIG_DIR}
214+ INSTALL_DESTINATION ${LOG_SURGEON_INSTALL_CONFIG_DIR}
196215 PATH_VARS
197- LOG_SURGEON_INSTALL_INCLUDE_DIR
198- )
216+ LOG_SURGEON_INSTALL_INCLUDE_DIR
217+ )
199218
200219write_basic_package_version_file(
201220 ${CMAKE_CURRENT_BINARY_DIR} /log_surgeon-config-version .cmake
202- COMPATIBILITY
203- SameMajorVersion
204- )
221+ COMPATIBILITY SameMajorVersion
222+ )
205223
206224install (
207225 FILES
208- ${CMAKE_CURRENT_BINARY_DIR} /log_surgeon-config.cmake
209- ${CMAKE_CURRENT_BINARY_DIR} /log_surgeon-config-version .cmake
210- DESTINATION
211- ${LOG_SURGEON_INSTALL_CONFIG_DIR}
212- )
226+ ${CMAKE_CURRENT_BINARY_DIR} /log_surgeon-config.cmake
227+ ${CMAKE_CURRENT_BINARY_DIR} /log_surgeon-config-version .cmake
228+ DESTINATION ${LOG_SURGEON_INSTALL_CONFIG_DIR}
229+ )
213230
214- if (log_surgeon_ENABLE_TESTS)
231+ if (log_surgeon_ENABLE_TESTS)
215232 add_subdirectory (tests)
216233endif ()
0 commit comments