 |
nomlib
|
Loading...
Searching...
No Matches
37#ifndef NOMLIB_CORE_CONFIG_HPP
38#define NOMLIB_CORE_CONFIG_HPP
48 ( strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__ )
51#define NOM_USE_SDL2_ASSERT
55#if defined( NOM_USE_SDL2_ASSERT )
56 #include <SDL_assert.h>
62#include "nomlib/platforms.hpp"
65#include "nomlib/types.hpp"
67#include "nomlib/core/SDL2Logger.hpp"
70#include "nomlib/macros.hpp"
85#define NOM_LOG_MESSAGE( cat, prio, ... ) \
86 { nom::SDL2Logger( cat, prio ).write( __VA_ARGS__ ); }
94#if defined( NOM_DEBUG )
95 #define NOM_LOG_VERBOSE( cat, ... ) \
96 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_VERBOSE, "[", NOM_FILE, ":", __LINE__, "]", __VA_ARGS__ );
98 #define NOM_LOG_VERBOSE( cat, ... ) \
99 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_VERBOSE, __VA_ARGS__ );
108#if defined( NOM_DEBUG )
109 #define NOM_LOG_DEBUG( cat, ... ) \
110 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_DEBUG, "[", NOM_FILE, ":", __LINE__, "]", __VA_ARGS__ );
112 #define NOM_LOG_DEBUG( cat, ... ) \
113 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_DEBUG, __VA_ARGS__ );
122#define NOM_LOG_INFO( cat, ... ) \
123 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_INFO, __VA_ARGS__ );
131#if defined( NOM_DEBUG )
132 #define NOM_LOG_WARN( cat, ... ) \
133 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_WARN, "[", NOM_FILE, ":", __LINE__, "]", __VA_ARGS__ );
135 #define NOM_LOG_WARN( cat, ... ) \
136 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_WARN, __VA_ARGS__ );
145#if defined( NOM_DEBUG )
146 #define NOM_LOG_ERR( cat, ... ) \
147 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_ERROR, "[", NOM_FILE, ":", __LINE__, "]", __VA_ARGS__ );
149 #define NOM_LOG_ERR( cat, ... ) \
150 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_ERROR, __VA_ARGS__ );
159#if defined( NOM_DEBUG )
160 #define NOM_LOG_CRIT( cat, ... ) \
161 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_CRITICAL, "[", NOM_FILE, ":", __LINE__, "]", __VA_ARGS__ );
163 #define NOM_LOG_CRIT( cat, ... ) \
164 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_CRITICAL, __VA_ARGS__ );
173#define NOM_DUMP( var ) \
174 NOM_LOG_MESSAGE( NOM, nom::LogPriority::NOM_LOG_PRIORITY_DEBUG, "[", NOM_FILE, ":", __LINE__, "]", #var, ":", var );
184#define NOM_DUMP_VAR( cat, ... ) \
185 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_DEBUG, "[", NOM_FILE, ":", __LINE__, "]", __VA_ARGS__ );
191#define NOM_LOG_TRACE( cat ) \
192 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_DEBUG, NOM_FUNC );
201#define NOM_LOG_TRACE_PRIO( cat, prio ) \
202 NOM_LOG_MESSAGE( cat, prio, NOM_FUNC );
204#define NOM_STUBBED( cat ) \
205 NOM_LOG_MESSAGE( cat, nom::LogPriority::NOM_LOG_PRIORITY_INFO, "Stubbed function", NOM_FUNC, "was called" );
207#ifdef NOM_DEBUG_ASSERT
211 #if defined( NOM_USE_SDL2_ASSERT )
212 #define NOM_ASSERT(expression) SDL_assert(expression)
214 #define NOM_ASSERT(expression) \
215 ( assert (expression) )
219 #define NOM_ASSERT(expression)
222#define NOM_ASSERT_INVALID_PATH(reserved) \
223 NOM_ASSERT(!"Invalid execution path assertion triggered")
225#if defined(NOM_COMPILER_CLANG)
227 #define NOM_PRAGMA_STR(msg) #msg
228 #define NOM_PRAGMA_DEFER(arg, ...) arg(__VA_ARGS__)
229 #define NOM_PRAGMA_ERROR(msg) \
230 _Pragma(NOM_PRAGMA_STR(GCC error(msg " in " \
231 NOM_PRAGMA_DEFER(NOM_PRAGMA_STR, __FILE__) \
232 ":" NOM_PRAGMA_DEFER(NOM_PRAGMA_STR,__LINE__) )))
235 #define NOM_PRAGMA_STR(msg)
236 #define NOM_PRAGMA_DEFER(arg, ...)
237 #define NOM_PRAGMA_ERROR(msg)
241 NOM_PRAGMA_ERROR(
"nomlib requires a C++11 capable compiler.")
249#if defined(NOM_DEBUG) && defined(NOM_COMPILER_CLANG)
260 #define NOM_IGNORED_VARS(expr) \
261 _Pragma("clang diagnostic push") \
262 _Pragma("clang diagnostic ignored \"-Wunused\"" )
265 #define NOM_IGNORED_VARS_ENDL(expr) \
266 _Pragma("clang diagnostic pop")
269 #define NOM_IGNORED_ENDL(expr) NOM_IGNORED_VARS_ENDL(expr)
273 #define NOM_IGNORED_VARS()
274 #define NOM_IGNORED_ENDL()
275 #define NOM_IGNORED_VARS_ENDL()
282#define NOM_USE_SDL2_IMAGE TRUE
285#define NOM_USE_SDL2_TTF TRUE
292#if defined(NOM_USE_CREATIVE_OPENAL) || defined(NOM_USE_APPLE_OPENAL) || \
293 defined(NOM_USE_OPENAL_SOFT)
294 #define NOM_USE_OPENAL
297#if defined NOM_BUILD_AUDIO_UNIT
298 #ifndef NOM_USE_OPENAL
300 NOM_PRAGMA_ERROR(
"Audio Unit: One of the OpenAL audio engines must be selected")
308#define NOM_USE_SCALEX TRUE
309#define NOM_USE_HQX TRUE
311#define NOM_USE_LIBROCKET TRUE