Skip to content

hogletgames/genesis

Repository files navigation

genesis

CI

Acknowledgements

Dependencies

You need to install the following dependencies to build the project:

To build manually

make -j$(nproc)

To build using Docker

make docker_initialize # Create Docker images
make docker_build      # Build the project inside the build-env container

Using the runtime-env docker-compose service

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.

Linters

make clang-foramt                   # Check format
make clang-tidy                     # Run clang-tidy check
bash tools/clang_format.sh --fix    # Fix format

Hot to run tests

make BUILD_TESTS=ON -j$(nproc)  # Build project with tests
make test                       # Run tests

To run examples

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 where VK_LAYER_LUNARG_standard_validation.json is located
  • For MacOS VK_ICD_FILENAMES should point to the directory where MoltenVK_icd.json
  • A path to mcs application should be added to PATH environment variable to be able to create .NET assemblies

Linux

export VK_ADD_LAYER_PATH=${VULKAN_SDK}/share/vulkan/explicit_layer.d
build/examples/sandbox/sandbox -e gui

MacOS

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

genesis build options

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

Licence

genesis is licensed under the BSD 3-Clause license.