# Antkeeper Superbuild This repository contains a CMake superbuild system and all dependencies required to build Antkeeper. ## Download Download the `antkeeper-superbuild` repository and all of its Git submodules: git clone --recursive https://github.com/antkeeper/antkeeper-superbuild.git ## Configuration & Building CMake is required to configure and build the application. Depending on the target build platform, CMake should be invoked from one of the following directories: build/linux32 // 32-bit GNU/Linux application build/linux64 // 64-bit GNU/Linux application build/win32 // 32-bit Windows application build/win64 // 64-bit Windows application The following arguments may be passed to CMake during configuration: -DCMAKE_BUILD_TYPE // [Debug, Release] ### GNU/Linux Building on GNU/Linux requires CMake, GCC, G++, and GNU Make. Open a terminal in the project root directory and run the following commands: cd build/linux64 cmake ../.. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=... cmake --build . ### Windows Building on Windows requires CMake and Visual Studio Build Tools. Additionally, [NSIS](http://nsis.sourceforge.net/) is required if you want to build a distributable installer program. In order to correctly build for your target architecture, you must use the `x86 Native Tools Command Prompt` or the `x64 Native Tools Command Prompt` for 32-bit and 64-bit applications, respectively. Then navigate to the project root directory and run the following commands: cd build\win64 cmake ..\.. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=... cmake --build . ## Testing After building, a standalone version of the application will be located somewhere in the `bin` directory according to the build type, build platform, and version string. This application can be executed with the following command: cmake --build . --target run ## Distribution The built application can be packaged into a distributable format with the following command: cmake --build . --target dist The resulting package will be located in the `dist` directory. ## Contributing If any changes have been made to the submodules, commit those first. Each submodule can then be updated to their latest commits with the following command: git submodule update --recursive --remote ## License Antkeeper superbuild is licensed under the GNU General Public License, version 3. For more information, see [`LICENSE.md`](./LICENSE.md). ### 3rd-Party Software | Name | Author(s) | License | File(s) | | :------------------------------ | :--------------------- | :-------------------------- | :------------------------------------------------------------------ | | dr_wav | David Reid | Public Domain (Unlicense) | [dr_wav.h](./modules/dr_wav/dr_wav.h) | | Easing Functions (Equations) | Robert Penner | MIT License | [easings.hpp](./modules/antkeeper-source/src/animation/easings.hpp) | | EnTT | Michele Caini | MIT License | [entt/*](./modules/entt/) | | khrplatform.h | The Khronos Group Inc. | MIT License | [khrplatform.h](./modules/glad/khrplatform.h) | | OpenGL loader generated by glad | David Herberth | Public Domain / WTFPL / CC0 | [glad.h](./modules/glad/glad.h), [glad.c](./modules/glad/glad.c) | | JSON for Modern C++ | Niels Lohmann | MIT License | [json.hpp](./modules/nlohmann/json.hpp) | | OpenAL Soft | | GNU GPL v2.0 | [openal-soft/*](./modules/openal-soft/) | | Simple DirectMedia Layer | Sam Lantinga | zlib License | [SDL2/*](./modules/SDL2/) | | stb_image | Sean Barrett | Public Domain / MIT License | [stb_image.h](./modules/stb/stb_image.h) | | stb_image_write | Sean Barrett | Public Domain / MIT License | [stb_image_write.h](./modules/stb/stb_image_write.h) |