Skip to content

Beyond-Engine/Core

Repository files navigation

Beyond Core

GCC-10 Linux

beyond::core is a library with a bunch of utilities that are associated with graphics and game programming. It forms the core utilities of the Beyond Game Engine.

Codemap

beyond::core contains the following C++ library components:

  • algorithm
    additional STL-style algorithm library.
  • concurrency (incomplete and unusable)
    contains high level constructs for concurrent programming.
  • coroutine
    C++20 coroutine supporting library.
  • container
    contains additional STL-style containers.
  • ecs (incomplete and unusable)
    contains an implementation of an entity component system.
  • math
    contains a mathematics library with a graphics focus.
  • types
    contains non-container utility types, like the optional and expected types with monadic extensions.
  • random
    contains random number generators and distributions with a standard <random>-like interface.
  • utils
    contains utility and helper code.

Usage

This library is not in a usable state to the public yet. The features are incomplete and are coded as need. I will also make breaking changes frequently.

Build

CMake Options

  • BEYOND_CORE_BUILD_TESTS (OFF by default) build tests
  • BP_BUILD_TESTS_COVERAGE (OFF by default) test coverage with gcov and lcov
  • BEYOND_CORE_BUILD_DOCUMENTATION (OFF by default) build doxygen documentation
  • BEYOND_CORE_ENABLE_PCH (ON by default) precompiled header

Other useful options for developing purpose

  • BEYOND_CORE_WARNING_AS_ERROR (ON by default) treat compiler warnings as errors
  • BEYOND_CORE_USE_ASAN (OFF by default) address sanitizer
  • BEYOND_CORE_USE_TSAN (OFF by default) thread sanitizer
  • BEYOND_CORE_USE_MSAN (OFF by default) memory sanitizer
  • BEYOND_CORE_USE_UBSAN (OFF by default) undefined behavior sanitizer
  • BEYOND_CORE_USE_CMAKE_CONAN (OFF by default) get dependencies automatically by using cmake-conan

Acknowledgements

License

This repository is released under MIT License. See License for more information.