31 #error Unsupported or unknown platform configuration, make sure either: tb_windows, tb_macos, tb_linux, or tb_web is defined.
32#endif /* tb_platform */
33
36//#define tb_without_threading ///< When deefined, TurtleBrains will stay on a single thread, otherwise Audio and other things may run on threads.
37//#define tb_without_audio ///< When defined, TurtleBrains will NOT include the Audio API, which would require linking with OpenAL.
38//#define tb_without_networking ///< When defined, TurtleBrains will NOT include the Networking API, which may require additional linked dependencies.
39//#define tb_without_input_devices ///< When defined, TurtleBrains will NOT include the system input devices API, which could require additional linking.
40//#define tb_without_development ///< When defined, TurtleBrains will NOT include the Development API, which is useful tools for development stuff.
41//#define tb_without_math_operators ///< When defined, Vector/Matrix math objects will contain FEWER operators, does NOT disable ALL operators!
42//#define tb_without_splash_screen ///< When defined, TurtleBrains will jump directly to set scene instead of displaying TurtleBrains splash screen.
43//#define tb_without_legacy_gl ///< When defined, if TurtleBrains cannot create a 3.2 Core context, it will fail to create application window.
44//#define tb_with_legacy_gl_context ///< When defined a legacy OpenGL context will be used instead of 3.2 Core, if possible. Not recommended.
45//#define tb_without_internal_tests ///< When defined TurtleBrains will not build and include internal tests into the UnitTest RunAllTests().
46//#define tb_righthanded_math ///< When defined, TurtleBrains math will use negative-Z as forward.
47
52//#define tb_with_debug_set ///< Can be used to keep the debug tools/logging active even in a release build.
53//#define tb_without_debug_set ///< Takes precedence over anything else, if defined will shutoff debug_set completely.
54//#define tb_without_diagnostics ///< Turn off TurtleBrains internal logging, automatically implied if tb_without_debug_set is defined.
55
56//Wide String support has been untested for so long that it probably does not work, and may be removed? 2022-05-28
57//#define tb_with_wide_string ///< Allows an Opt-In for using std::wstring vs std::string implementation throughout framework.
58
59//If unspecified, setup the debug/release state based on DEBUG or _DEBUG being defined.
60//Note: 2023-08-31: Before today tb_public_build was being since at least 2021, and didn't appear below. Which meant that
61// tb_release_build was ALSO defined while tb_public_build was defined. Going forward only one _build config is defined
62// in a given build. It seemed code (at least in TurtleBrains, ICE and TrackBuilder) was generally checking against
63// tb_debug_build for special debug code and tb_public_build for special ship conditions, while release just remained
64// in the middle. This should mean this change is acceptable and desired, but may find some projects with oddities.