Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
feature_system_deps.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
26#pragma once
27
28#include "feature_flags_core.h"
29
30//==============================================================================
31// Common System Availability
32//==============================================================================
33
58#ifndef KCENON_WITH_COMMON_SYSTEM
59 #define KCENON_WITH_COMMON_SYSTEM 1
60#endif
61
62//==============================================================================
63// Thread System Integration
64//==============================================================================
65
72#ifndef KCENON_WITH_THREAD_SYSTEM
73 #if defined(ENABLE_THREAD_INTEGRATION) || defined(WITH_THREAD_SYSTEM)
74 #define KCENON_WITH_THREAD_SYSTEM 1
75 #else
76 #define KCENON_WITH_THREAD_SYSTEM 0
77 #endif
78#endif
79
80//==============================================================================
81// Logger System Integration
82//==============================================================================
83
89#ifndef KCENON_WITH_LOGGER_SYSTEM
90 #if defined(ENABLE_LOGGER_INTEGRATION) || defined(WITH_LOGGER_SYSTEM)
91 #define KCENON_WITH_LOGGER_SYSTEM 1
92 #else
93 #define KCENON_WITH_LOGGER_SYSTEM 0
94 #endif
95#endif
96
97//==============================================================================
98// Monitoring System Integration
99//==============================================================================
100
106#ifndef KCENON_WITH_MONITORING_SYSTEM
107 #if defined(ENABLE_MONITORING_INTEGRATION) || defined(WITH_MONITORING_SYSTEM)
108 #define KCENON_WITH_MONITORING_SYSTEM 1
109 #else
110 #define KCENON_WITH_MONITORING_SYSTEM 0
111 #endif
112#endif
113
114//==============================================================================
115// Container System Integration
116//==============================================================================
117
123#ifndef KCENON_WITH_CONTAINER_SYSTEM
124 #if defined(ENABLE_CONTAINER_INTEGRATION) || defined(WITH_CONTAINER_SYSTEM)
125 #define KCENON_WITH_CONTAINER_SYSTEM 1
126 #else
127 #define KCENON_WITH_CONTAINER_SYSTEM 0
128 #endif
129#endif
130
131//==============================================================================
132// Network System Integration
133//==============================================================================
134
140#ifndef KCENON_WITH_NETWORK_SYSTEM
141 #if defined(ENABLE_NETWORK_INTEGRATION) || defined(WITH_NETWORK_SYSTEM)
142 #define KCENON_WITH_NETWORK_SYSTEM 1
143 #else
144 #define KCENON_WITH_NETWORK_SYSTEM 0
145 #endif
146#endif
147
151#ifndef KCENON_NETWORK_SSL
152 #if defined(ENABLE_NETWORK_SSL)
153 #define KCENON_NETWORK_SSL 1
154 #else
155 #define KCENON_NETWORK_SSL 0
156 #endif
157#endif
158
162#ifndef KCENON_NETWORK_COMPRESSION
163 #if defined(ENABLE_NETWORK_COMPRESSION)
164 #define KCENON_NETWORK_COMPRESSION 1
165 #else
166 #define KCENON_NETWORK_COMPRESSION 0
167 #endif
168#endif
169
170//==============================================================================
171// Database System Integration
172//==============================================================================
173
177#ifndef KCENON_WITH_DATABASE_SYSTEM
178 #if defined(ENABLE_DATABASE_INTEGRATION) || defined(WITH_DATABASE_SYSTEM)
179 #define KCENON_WITH_DATABASE_SYSTEM 1
180 #else
181 #define KCENON_WITH_DATABASE_SYSTEM 0
182 #endif
183#endif
184
188#ifndef KCENON_DATABASE_MYSQL
189 #if defined(ENABLE_DATABASE_MYSQL)
190 #define KCENON_DATABASE_MYSQL 1
191 #else
192 #define KCENON_DATABASE_MYSQL 0
193 #endif
194#endif
195
196#ifndef KCENON_DATABASE_POSTGRESQL
197 #if defined(ENABLE_DATABASE_POSTGRESQL)
198 #define KCENON_DATABASE_POSTGRESQL 1
199 #else
200 #define KCENON_DATABASE_POSTGRESQL 0
201 #endif
202#endif
203
204#ifndef KCENON_DATABASE_SQLITE
205 #if defined(ENABLE_DATABASE_SQLITE)
206 #define KCENON_DATABASE_SQLITE 1
207 #else
208 #define KCENON_DATABASE_SQLITE 0
209 #endif
210#endif
211
212#ifndef KCENON_DATABASE_MONGODB
213 #if defined(ENABLE_DATABASE_MONGODB)
214 #define KCENON_DATABASE_MONGODB 1
215 #else
216 #define KCENON_DATABASE_MONGODB 0
217 #endif
218#endif
219
220#ifndef KCENON_DATABASE_REDIS
221 #if defined(ENABLE_DATABASE_REDIS)
222 #define KCENON_DATABASE_REDIS 1
223 #else
224 #define KCENON_DATABASE_REDIS 0
225 #endif
226#endif
227
228//==============================================================================
229// Messaging System Integration
230//==============================================================================
231
237#ifndef KCENON_WITH_MESSAGING_SYSTEM
238 #if defined(ENABLE_MESSAGING_INTEGRATION) || defined(WITH_MESSAGING_SYSTEM)
239 #define KCENON_WITH_MESSAGING_SYSTEM 1
240 #else
241 #define KCENON_WITH_MESSAGING_SYSTEM 0
242 #endif
243#endif
244
245//==============================================================================
246// Build Configuration Flags
247//==============================================================================
248
252#ifndef KCENON_ENABLE_TESTING
253 #if defined(ENABLE_TESTING)
254 #define KCENON_ENABLE_TESTING 1
255 #else
256 #define KCENON_ENABLE_TESTING 0
257 #endif
258#endif
259
263#ifndef KCENON_ENABLE_BENCHMARKS
264 #if defined(ENABLE_BENCHMARKS)
265 #define KCENON_ENABLE_BENCHMARKS 1
266 #else
267 #define KCENON_ENABLE_BENCHMARKS 0
268 #endif
269#endif
270
274#ifndef KCENON_ENABLE_EXAMPLES
275 #if defined(ENABLE_EXAMPLES)
276 #define KCENON_ENABLE_EXAMPLES 1
277 #else
278 #define KCENON_ENABLE_EXAMPLES 0
279 #endif
280#endif
281
282//==============================================================================
283// Sanitizer Flags
284//==============================================================================
285
289#ifndef KCENON_ENABLE_ASAN
290 #if defined(ENABLE_ASAN) || defined(__SANITIZE_ADDRESS__)
291 #define KCENON_ENABLE_ASAN 1
292 #else
293 #define KCENON_ENABLE_ASAN 0
294 #endif
295#endif
296
300#ifndef KCENON_ENABLE_TSAN
301 #if defined(ENABLE_TSAN) || defined(__SANITIZE_THREAD__)
302 #define KCENON_ENABLE_TSAN 1
303 #else
304 #define KCENON_ENABLE_TSAN 0
305 #endif
306#endif
307
311#ifndef KCENON_ENABLE_UBSAN
312 #if defined(ENABLE_UBSAN)
313 #define KCENON_ENABLE_UBSAN 1
314 #else
315 #define KCENON_ENABLE_UBSAN 0
316 #endif
317#endif
Core KCENON_* macro definitions for feature detection.