- SDL (zlib)
- spdlog (MIT)
- glm (MIT)
- Vulkan SDK
- stb (MIT)
- tinyobjloader (MIT)
- magic_enum (MIT)
- fmt (MIT)
- googletest (BSD-3)
- imgui (MIT)
- ImGuizmo (MIT)
- docopt.cpp (MIT, Boost 1.0)
- Boost (BSL-1.0)
- yaml-cpp (MIT)
- EnTT (MIT)
- nativefiledialog (zlib)
- nlohmann_json (MIT)
- box2d (MIT)
- Mono (MIT)
You need to install the following dependencies to build the project:
- CMake v3.22 or higher
- Vulkan SDK v1.3.268 or higher
- Boost v1.82 or higher
- Mono v6.12 or higher
make -j$(nproc)
make docker_initialize # Create Docker images
make docker_build # Build the project inside the build-env container
make docker_initialize # Create Docker images
make docker_env_up # Run the runtime-env service in the background
make docker_env_attach # Attach to the runtime-env container
# Run any command inside the runtime-env service
make docker_env_down # Stop the runtime-env container
You can use CLANG_FORMAT_BIN
and RUN_CLANG_TIDY_BIN
make
options to pass
path to an appropriate binary file.
make clang-foramt # Check format
make clang-tidy # Run clang-tidy check
bash tools/clang_format.sh --fix # Fix format
make BUILD_TESTS=ON -j$(nproc) # Build project with tests
make test # Run tests
You don't need to install additional libraries to build or run examples or applications. All you need to do is to set appropriate environment variables depending on OS type.
Notes:
VK_LAYER_PATH
should point to the directory whereVK_LAYER_LUNARG_standard_validation.json
is located- For MacOS
VK_ICD_FILENAMES
should point to the directory whereMoltenVK_icd.json
- A path to
mcs
application should be added toPATH
environment variable to be able to create .NET assemblies
export VK_ADD_LAYER_PATH=${VULKAN_SDK}/share/vulkan/explicit_layer.d
build/examples/sandbox/sandbox -e gui
export VK_ADD_LAYER_PATH=${VULKAN_SDK}/share/vulkan/explicit_layer.d
export VK_ICD_FILENAMES=${VULKAN_SDK}/share/vulkan/icd.d/MoltenVK_icd.json
build/examples/sandbox/sandbox -e gui
Make | CMake | Default value | Description |
---|---|---|---|
BUILD_TYPE |
CMAKE_BUILD_TYPE |
Release |
Project build types: Release , Debug , RelWithDebInfo , ASAN , UBSAN , TSAN |
BUILD_STATIC |
GE_STATIC |
OFF |
Build static library |
DISABLE_ASSERTS |
GE_DISABLE_ASSERTS |
OFF |
Exclude asserts from final binary |
BUILD_APPS |
GE_BUILD_APPS |
OFF |
Build applications |
BUILD_EXAMPLES |
GE_BUILD_EXAMPLES |
OFF |
Build examples |
BUILD_TESTS |
GE_BUILD_TESTS |
OFF |
Build tests |
CLANG_FORMAT_BIN |
- | clang-format |
Path to clang-format binary |
RUN_CLANG_TIDY_BIN |
- | run-clang-tidy |
Path to run-clang-tidy tool |
genesis is licensed under the BSD 3-Clause license.