22#define __NBL_BUILD_CONFIG_OPTIONS_H_INCLUDED__
33
44// TODO: figure out _ and _ suffixes and prefixes
5-
6- #cmakedefine _NBL_DEBUG
7- #cmakedefine _NBL_RELWITHDEBINFO
8-
9- // architecture (TODO: rethink)
10- #cmakedefine __NBL_COMPILE_WITH_ARM_SIMD_
5+ /*
6+ DO NOT put any defines which are platform, toolset or architecture
7+ specific, such defines go through CMake usage requirements and are
8+ visible both in build & install interface, putting them in headers
9+ breaks portable usage of the library
10+ */
1111
1212// libraries
1313#cmakedefine _NBL_COMPILE_WITH_GLI_
1414#cmakedefine _NBL_COMPILE_WITH_OPEN_EXR_
1515
16- // OS
17- #cmakedefine _NBL_PLATFORM_WINDOWS_
18- #cmakedefine _NBL_PLATFORM_LINUX_
19- #cmakedefine _NBL_PLATFORM_OSX_
20- #cmakedefine _NBL_PLATFORM_ANDROID_
21-
22- // graphics API backend
16+ // graphics API backend // TODO: never used?
2317#cmakedefine _NBL_COMPILE_WITH_VULKAN_
2418
2519// loaders
3226#cmakedefine _NBL_COMPILE_WITH_JPG_LOADER_
3327#cmakedefine _NBL_COMPILE_WITH_PNG_LOADER_
3428#cmakedefine _NBL_COMPILE_WITH_TGA_LOADER_
35- #ifdef _NBL_COMPILE_WITH_OPEN_EXR_
29+ #ifdef _NBL_COMPILE_WITH_OPEN_EXR_ // ? TODO
3630#cmakedefine _NBL_COMPILE_WITH_OPENEXR_LOADER_
3731#endif
38- #ifdef _NBL_COMPILE_WITH_GLI_
32+ #ifdef _NBL_COMPILE_WITH_GLI_ // ? TODO
3933#cmakedefine _NBL_COMPILE_WITH_GLI_LOADER_
4034#endif
4135#cmakedefine _NBL_COMPILE_WITH_GLTF_LOADER_
4741#cmakedefine _NBL_COMPILE_WITH_TGA_WRITER_
4842#cmakedefine _NBL_COMPILE_WITH_JPG_WRITER_
4943#cmakedefine _NBL_COMPILE_WITH_PNG_WRITER_
50- #ifdef _NBL_COMPILE_WITH_OPEN_EXR_
44+ #ifdef _NBL_COMPILE_WITH_OPEN_EXR_ // ? TODO
5145#cmakedefine _NBL_COMPILE_WITH_OPENEXR_WRITER_
5246#endif
53- #ifdef _NBL_COMPILE_WITH_GLI_
47+ #ifdef _NBL_COMPILE_WITH_GLI_ // ? TODO
5448#cmakedefine _NBL_COMPILE_WITH_GLI_WRITER_
5549#endif
5650#cmakedefine _NBL_COMPILE_WITH_GLTF_WRITER_
6054#cmakedefine _NBL_BUILD_OPTIX_
6155
6256// extra config
63- #cmakedefine __NBL_FAST_MATH
57+ #cmakedefine __NBL_FAST_MATH // TODO: it should not really be there, its usage requirement
6458#cmakedefine NBL_EMBED_BUILTIN_RESOURCES
6559
6660#cmakedefine _NBL_BUILD_DPL_
6761
62+ // !
6863// TODO: This has to disapppear from the main header and go to the OptiX extension header + config
6964#cmakedefine OPTIX_INCLUDE_DIR "@OPTIX_INCLUDE_DIR@"
7065
71- // DXC compile flags
72- #cmakedefine DXC_COMPILE_FLAGS "@DXC_COMPILE_FLAGS@"
73-
7466#if defined(_NBL_DEBUG ) || defined(_NBL_RELWITHDEBINFO )
7567#define _NBL_EG_PRFNT_LEVEL @_NBL_EG_PRFNT_LEVEL@
7668#if _NBL_EG_PRFNT_LEVEL == 1
8274#endif
8375#endif
8476
85- #define NBL_BUILTIN_RESOURCES_DIRECTORY_PATH "@NBL_BUILTIN_RESOURCES_DIRECTORY_PATH@"
86- #define SPIRV_BUILTIN_RESOURCES_DIRECTORY_PATH "@SPIRV_BUILTIN_RESOURCES_DIRECTORY_PATH@"
87- #define BOOST_BUILTIN_RESOURCES_DIRECTORY_PATH "@BOOST_BUILTIN_RESOURCES_DIRECTORY_PATH@"
88- #define DEVICEGEN_BUILTIN_RESOURCES_DIRECTORY_PATH "@DEVICEGEN_BUILTIN_RESOURCES_DIRECTORY_PATH@"
89-
90- // DLL exports
91- #cmakedefine _NBL_SHARED_BUILD_
77+ // Nabla API definition for shared library usage, empty for static build
9278#ifdef _NBL_SHARED_BUILD_
9379 #if defined(__NBL_BUILDING_NABLA__ ) // currently compiling nabla, this define is passed through the commandline
9480 #if defined(_MSC_VER )
10793 #define NBL_API2
10894#endif
10995
110- // any other target definitions for using Nabla as framework in another project
111- #ifndef __NBL_BUILDING_NABLA__
112- #include "define.h"
113- #endif // __NBL_BUILDING_NABLA__
114-
11596#endif // __NBL_BUILD_CONFIG_OPTIONS_H_INCLUDED__
0 commit comments