Antara Gaming Software Development Kit
Below is the list of prerequisites to use the antara-gaming-sdk
on your machine:
- CMake 3.14 minimum
- clang-8 minimum (Windows/Linux/Osx) (clang and clang-cl both supported on Windows)
- Optional emscripten latest (Web)
- Optional Visual Studio 2019
- Optional Clang VS Toolset (installable through visual studio installer)
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
See deployment for notes on how to deploy the project on a live system.
To build the project please follow the instructions below:
mkdir build ## bash or powershell
cd build ## bash or powershell
## Release or Debug are available
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=your_path_to_your_clang++ ../ #Linux / Osx
cmake -DCMAKE_BUILD_TYPE=Debug -G "Visual Studio 16 2019" -A x64 -T "ClangCl" -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe" ../ #Windows
## We can even use Ninja for Windows / Linux / OSX
## On Windows you may want to open x64 Visual Studio Terminal Prompt for using Ninja
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=path_to_clang++ -DCMAKE_C_COMPILER=path_to_clang ../
## Build (Debug / Release available)
cmake --build . --config Debug
There are also additional options with the CMake that allows to activate certain features of the SDK:
Name | Description | How to enable it | Notes |
---|---|---|---|
USE_SFML_ANTARA_WRAPPER |
Enable the SFML module of the SDK | -DUSE_SFML_ANTARA_WRAPPER=ON |
Requires SFML dependencies on Linux |
USE_IMGUI_ANTARA_WRAPPER |
Enable the IMGUI Support for the SDK | -DUSE_IMGUI_ANTARA_WRAPPER=ON |
|
ENABLE_BLOCKCHAIN_MODULES |
Enable the Blockchain modules for the SDK (need additional dependencies) | -DENABLE_BLOCKCHAIN_MODULES=ON |
|
ANTARA_BUILD_DOCS |
Enable the build of the documentation for the SDK | -DANTARA_BUILD_DOCS=ON |
Require Sphinx And Doxygen |
USE_LUA_ANTARA_WRAPPER |
Enable the lua module for the SDK | -DUSE_LUA_ANTARA_WRAPPER=ON |
|
USE_ASAN |
Enable the Address Sanitizer for the Unit tests of the SDK | -DUSE_ASAN=ON |
Cannot be mixed with USE_TSAN and USE_UBSAN |
USE_UBSAN |
Enable the Undefined Behavior Sanitizer for the Unit tests of the SDK | -DUSE_UBSAN=ON |
Cannot be mixed with USE_TSAN and USE_ASAN |
USE_TSAN |
Enable the Undefined Behavior Sanitizer for the Unit tests of the SDK | -DUSE_TSAN=ON |
Cannot be mixed with USE_UBSAN and USE_ASAN |
BUILD_WITH_APPIMAGE |
Enable the AppImage auto-generation on Linux for bundle an executable builded with the SDK | -DBUILD_WITH_APPIMAGE=ON |
Work's only on Linux . |
ENABLE_HTML_COMPILATION |
Enable the HTML Compilation on Emscripten for an executable builded with the SDK | -DENABLE_HTML_COMPILATION=ON |
Work's only on Emscripten . |
COVERAGE_CLION_TOOLS |
Enable the Coverage inside CLion IDE. | -DCOVERAGE_CLION_TOOLS=ON |
Work's only with CLion IDE and Require ENABLE_COVERAGE |
ANTARA_BUILD_EXAMPLES |
Enable the example of the SDK. | -DANTARA_BUILD_EXAMPLES=ON |
Some examples need mix of options such as USE_SFML_ANTARA_WRAPPER + ANTARA_BUILD_EXAMPLES |
ANTARA_BUILD_UNIT_TESTS |
Enable the unit tests of the SDK. | -DANTARA_BUILD_UNIT_TESTS=ON |
Some examples need mix of options such as USE_LUA_ANTARA_WRAPPER + ANTARA_BUILD_UNIT_TESTS |
USE_BOX2D_ANTARA_WRAPPER |
Enable the Box2D modules of the SDK. | -DUSE_BOX2D_ANTARA_WRAPPER=ON |
|
ENABLE_COVERAGE |
Enable the coverage macros for the SDK. | -DENABLE_COVERAGE=ON |
You do not need to install the gaming sdk, just use the CMake fetch_content command to use the project
Once you have compiled the sdk gaming with the option to enable unit tests.
They are located in the bin/unit_tests
(Linux/Osx) or bin/unit_tests/%CMAKE_BUILD_TYPE%
(Windows) folder
construction: |
---|
- doctest - The fastest feature-rich C++11/14/17/20 single-header testing framework for unit tests and TDD http://bit.ly/doctest-docs (MIT)
- doom-st - C++ implementation of strong types (MIT)
- doom-meta - Just a few metaprogramming utilities in C++ (MIT)
- loguru - A lightweight C++ logging library (Public Domain)
- fmt - A modern formatting library https://fmt.dev (MIT)
- nlohmann-json - JSON for Modern C++ https://nlohmann.github.io/json/ (MIT)
- EnTT - Gaming meets modern C++ - a fast and reliable entity-component system (ECS). (MIT)
- refl-cpp - A compile-time reflection library for modern C++ 🔥 (MIT)
- range-v3 - Range library for C++14/17/20, basis for C++20's std::ranges (Boost Software License)
- expected - C++11/14/17 std::expected with functional-style extensions https://tl.tartanllama.xyz (CC0 1.0 Universal)
- (optional)ImGui - Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies (MIT)
- (optional)ImGui-SFML - ImGui binding for use with SFML (MIT)
- (optional)SFML - Simple and Fast Multimedia Library http://www.sfml-dev.org/
- (optional)reproc - Cross-platform (C99/C++11) process library (MIT)
- (optional)lua - The Lua repo, as seen by the Lua team. (MIT)
- (optional)sol2 - Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation: http://sol2.rtfd.io/ (MIT)
- (optional)restclient-cpp - C++ client for making HTTP/REST requests http://code.mrtazz.com/restclient-cpp/ (MIT)
- (optional)box2D - Box2D is a 2D physics engine for games http://box2d.org (ZLib)
Before any contribution please read our CODE OF CONDUCT.
Please read CONTRIBUTING.md, contain the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
See also the list of contributors who participated in this project.
Please read CONTRIBUTORS.md, contains the list of contributors.
- Viktor Kirilov onqtam for the awesome
doctest
framework. - Michele Caini skypjack for the awesome
EnTT
framework and his help.
Apps | Badges |
---|---|
Github Actions CI (Windows/Osx/Linux) | |
License | This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. Our team is working on a more open license. |
LGTM (Security C++) Alerts | |
LGTM (Security C++) Quality | |
Issues | |
Report CI (Linux/Osx/Windows/Emscripten) | |
Coverage (Codecov) | |
Docs | |
HitCount | |
Line Of Code | |
Conventional Commit |