You can tweak the generation of nCine project files with the following CMake options and variables:
If this variable is set all the following options and variables will be set accordingly in order to produce a binary only or a developer distribution of the nCine. The only two allowed values are “BinDist” and “DevDist” respectively.
You can set this option to enable or disable the compilation of test programs. Should you enable it make sure to have cloned the data repository as well.
You can set this option to enable or disable the compilation of unit tests. When enabled CMake will first download and compile Google Test, then the unit tests.
You can set this option to enable or disable the compilation of the micro benchmarks. When enabled CMake will first download and compile Google Benchmark, then the micro benchmarks.
By enabling this option the nCine installation package will include all the files that support development.
This option will enable the use of whole program and link time optimizations when in Release mode.
This option will enable report generation from compiler auto-vectorization.
By enabling this option the engine will be compiled as a dynamic library. Otherwise it will be compiled as a static library. The latter will allow the compilation of additional tests but needs more work from the user.
When the engine is compiled as a static library any project using it needs to link to all the dynamic libraries on which the engine normally depends.
By enabling this option Doxygen will be invoked to create the HTML based API documentation and an install target will be set up by CMake.
When this option is enabled, the generated documentation will include implementation classes.
By enabling this option CMake will export all shader files in a single file of C strings to be included in the engine sources.
This option will build the Android version of the engine.
This option is only available when
NCINE_BUILD_ANDROIDis on. It will automatically assemble the Android APK invoking the Gradle executable, if it could be found.
This is a CMake list of the target architectures when compiling for Android. Supported ones are
This string should be set to the path of the directory containing the Android NDK. If this string is not set to a valid directory then the
ANDROID_NDKenvironment variables will be queried in this order.
When this option is enabled all Linux and Android libraries and executables will be stripped with the
This option enables the support for the system agnostic threads API. On Emscripten the Pthreads support is disabled by default as it is in a prototyping stage.
This option enables the integration with the GLEW library and cannot be turned off on Windows.
This option enables the support for Google ANGLE libraries on Windows. It will work only when compiling with MSVC and when libraries are found inside the
This option enables the integration with the zlib and libpng libraries to allow PNG images loading.
This option enables the integration with the libwebp library to allow WebP images loading.
This option enables the audio and the integration with the OpenAL library.
This option enables the integration with the libogg and libvorbis libraries to allow Ogg Vorbis sound loading. It is automatically disabled when
NCINE_WITH_AUDIOis not enabled.
This option enables the scripting API and the integration with the Lua library.
This option enables the custom memory allocators and the allocation manager.
When this option is enabled every allocation or deallocation request will be recorded alongside a timestamp.
With this option the global
operator deletewill be overriden to use the custom memory allocator.
When this option is enabled the FreeList allocator will be used instead of the
This variable will hold the size in bytes of the buffer used by the FreeList allocator. The default size is 32 MiB.
When this option is enabled the engine will feature an integration with the Dear ImGui user interface toolkit.
When this option is enabled the engine will feature an integration with the Nuklear user interface toolkit.
When this option is enabled the engine will feature an integration with the Tracy frame profiler.
If the RenderDoc directory cannot be found automatically you can set its path with this variable.
This option specifies the preferred backend to use on desktop for input and window handling. Possible values include
If you choose
QT5don’t forget to define
Qt5Gamepad_DIRfor CMake to find the required libraries.
This options enables the Emscripten Pthreads support by setting both
WASM_MEM_MAXcompiler and linker options. It might slow down code execution if WebAssembly is disabled in the compilation scripts.
This string sets the path to the data directory that will be embedded in example tests.
This option enables the gcov coverage of GCC and Clang compilers. It is especially useful in combination with
This option enables the AddressSanitizer memory error detector of GCC and Clang compilers.
This option enables the memory corruption mitigation methods of the GCC compiler.
This string should be set to the path of the directory containing the tests data files.
This string should be set to the path of the directory containing the Android dependency libraries.
This string should be set to the path of the directory containing the MSVC dependency libraries.
This string should be set to the path of the directory containing the Emscripten dependency libraries.
This should be set to a valid target name of a test program. It will then become the startup project in Visual Studio.