TurtleBrains  0.3.1
High quality, portable, C++ framework for rapid 2D game development.
tb_configuration.h
1 
9 #ifndef _TurtleBrains_Configuration_h_
10 #define _TurtleBrains_Configuration_h_
11 
12 //TODO: TurtleBrains: Remove the settings in the build script and set them up here, hopefully automatically.
14 //#define tb_windows
15 //#define tb_macosx
16 //#define tb_linux
17 //#define tb_web
18 //#define tb_ios
19 
20 #if !defined(tb_windows) && !defined(tb_macosx) && !defined(tb_linux) && !defined(tb_web) && !defined(tb_ios)
21  #error Unsupported or unknown platform configuration, make sure either: tb_windows, tb_macosx, tb_linux, or tb_web is defined.
22 #endif /* tb_platform */
23 
26 //#define tb_without_audio ///< When defined, TurtleBrains will NOT include the Audio API, which would require linking with OpenAL.
27 //#define tb_without_networking ///< When defined, TurtleBrains will NOT include the Networking API, which may require additional linked dependencies.
28 //#define tb_without_input_devices ///< When defined, TurtleBrains will NOT include the system input devices API, which could require additional linking.
29 //#define tb_without_math_operators ///< When defined, Vector/Matrix math objects will contain FEWER operators, does NOT disable ALL operators!
30 //#define tb_without_splash_screen ///< When defined, TurtleBrains will jump directly to set scene instead of displaying TurtleBrains splash screen.
31 //#define tb_without_legacy_gl ///< When defined, if TurtleBrains cannot create a 3.2 Core context, it will fail to create application window.
32 //#define tb_with_legacy_gl_context ///< When defined a legacy OpenGL context will be used instead of 3.2 Core, if possible. Not recommended.
33 
38 //#define tb_with_debug_set ///< Can be used to keep the debug tools/logging active even in a release build.
39 //#define tb_without_debug_set ///< Takes precedence over anything else, if defined will shutoff debug_set completely.
40 //#define tb_without_diagnostics ///< Turn off TurtleBrains internal logging, automatically implied if tb_without_debug_set is defined.
41 
42 //#define tb_with_wide_string ///< Allows an Opt-In for using std::wstring vs std::string implementation throughout framework.
43 
44 //If unspecified, setup the debug/release state based on DEBUG or _DEBUG being defined.
45 #if !defined(tb_release_build) && !defined(tb_debug_build)
46  #if !defined(DEBUG) && !defined(_DEBUG)
47  #define tb_release_build
48  #else
49  #define tb_debug_build
50  #endif
51 #endif /* tb_debug or tb_release */
52 
53 //Defines for the compiler being used, mainly to use specific 'features' of a compiler or, more likely, to avoid issues when building.
54 #if !defined(tb_visual_cpp) && !defined(tb_mingw)
55  #if defined(_MSC_VER)
56  #define tb_visual_cpp
57  #elif defined(__MINGW32__)
58  #define tb_mingw
59  #endif
60 #endif /* compiler checks */
61 
62 //Using the with/without options, enable the actual define used deeper in the framework.
63 #if !defined(tb_without_diagnostics) && !defined(tb_with_diagnostics)
64  #define tb_with_diagnostics
65 #endif
66 
67 #if !defined(tb_without_legacy_gl) && !defined(tb_with_legacy_gl)
68  #define tb_with_legacy_gl
69 #endif
70 
71 #if !defined(tb_without_splash_screen) && !defined(tb_with_splash_screen)
72  #define tb_with_splash_screen
73 #endif
74 
75 #if !defined(tb_without_audio) && !defined(tb_with_audio)
76  #define tb_with_audio
77 #endif
78 
79 #if !defined(tb_without_networking) && !defined(tb_with_networking)
80  #define tb_with_networking
81 #endif
82 
83 #if !defined(tb_without_input_devices) && !defined(tb_with_input_devices)
84  #define tb_with_input_devices
85 #endif
86 
87 #if !defined(tb_without_math_operators) && !defined(tb_with_math_operators)
88  #define tb_with_math_operators
89 #endif
90 
91 #endif /* _TurtleBrains_Configuration_h_ */