# Antkeeper Superbuild This repository contains the build system and all dependencies required to build [Antkeeper](https://antkeeper.com/), a 3D ant colony simulation game. ## Download Download the Antkeeper superbuild repository and its Git submodules (excluding `antkeeper-data`): git -c submodule."modules/antkeeper-data".update=none clone --recursive https://github.com/antkeeper/antkeeper-superbuild.git . > [!NOTE] > The `antkeeper-data` submodule contains proprietary game data and is not publicly available. The game executable can be built without this submodule, but its data package is required to play Antkeeper. You can get a copy of the data package by purchasing Antkeeper at . ## Configuration & Building ### Windows Building for Windows requires CMake and Visual Studio Build Tools. Run the following commands in the `x64 Native Tools Command Prompt` to configure and build a 64-bit Windows release: cmake -B build\win64 -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release cmake --build build\win64 --config Release ### Linux Building for Linux requires CMake, GCC, G++, and GNU Make. Run the following commands to configure and build a 64-bit Linux release: cmake -B build/linux64 -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release cmake --build build/linux64 --config Release ## Running 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. ## Distribution The built application can be packaged into a distributable format with the following commands: cmake --build build\win64 --target dist or cmake --build build/linux64 --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 -c submodule."modules/antkeeper-data".update=none 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) | | :------------------------------ | :----------------------------------------------- | :-------------------------- | :----------------------------------------------------------- | | cxxopts | Jarryd Beck | MIT | [cxxopts.hpp](modules/cxxopts/include/cxxopts.hpp) | | dr_wav | David Reid | Public Domain (Unlicense) | [dr_wav.h](modules/dr_wav/dr_wav.h) | | Easing Functions (Equations) | Robert Penner | MIT | [ease.hpp](modules/antkeeper-source/src/engine/animation/ease.hpp) | | EnTT | Michele Caini | MIT | [entt/*](modules/entt/) | | FreeType | David Turner, Robert Wilhelm, and Werner Lemberg | GPL-2.0 / FTL | [freetype/*](modules/freetype/) | | khrplatform.h | The Khronos Group Inc. | MIT | [khrplatform.h](modules/glad/include/KHR/khrplatform.h) | | OpenGL loader generated by glad | David Herberth | Public Domain / WTFPL / CC0 | [gl.h](modules/glad/include/glad/gl.h), [gl.c](modules/glad/src/gl.c) | | PhysicsFS | Ryan C. Gordon | Zlib | [physfs/*](modules/physfs/) | | JSON for Modern C++ | Niels Lohmann | MIT | [json.hpp](modules/nlohmann/json.hpp) | | OpenAL Soft | | LGPL-2.0 | [openal-soft/*](modules/openal-soft/) | | Simple DirectMedia Layer | Sam Lantinga | Zlib | [SDL2/*](modules/SDL2/) | | stb_image | Sean Barrett | MIT / Public Domain | [stb_image.h](modules/stb/stb_image.h) | | stb_image_write | Sean Barrett | MIT / Public Domain | [stb_image_write.h](modules/stb/stb_image_write.h) | | TinyEXR | Syoyo Fujita | BSD-3-Clause | [tinyexr.h](modules/tinyexr/tinyexr.h) |