307Lib
C++ Libraries made by radj307
307Lib Documentation

307lib Banner

C++ 20 Common Libraries

Latest Github Tag GitHub Workflow Status

This is a collection of common libraries that I've created over the years.
It aims to provide a universal set of cross-platform C++ extensions to accomplish pretty much anything with ease.

Platform Support

Currently supported operating systems:

  • Windows
  • Linux
  • macOS

This library was designed for x64 and x86 systems, but may work on other architectures.

Building from Source

Building from source is easy and platform-independent.

Pre-Requisities

  • CMake 3.20 or later.
  • Ninja
  • A supported compiler:
    • MSVC 16.11 or later.
    • gcc/g++ 10 or later.

Process

  1. First, Clone the repository:
    git clone https://github.com/radj307/307lib && cd 307lib
  2. Initialize & update git submodules:
    git submodule update --init --recursive
  3. Configure the project using cmake:
    cmake -B ./out -S . -G Ninja
  4. Build the project using cmake:
    cmake --build ./out
  5. Install the project using cmake:
    cmake --install ./out

Generating Documentation

The github pages site is automatically generated using Github Actions & Doxygen using the following process:

Pre-Requisites

  • git (obviously)
  • Doxygen
    • This should be on your PATH, unless you're using the GUI version.
  • Graphviz
    • This must be on your PATH.

Process

  1. Clone the repository & cd to it.
    git clone https://github.com/radj307/307lib && cd 307lib
  2. Clone the gh-pages branch as a subdirectory of the main repository & cd to it.
    git clone --single-branch --branch gh-pages https://github.com/radj307/307lib gh-pages && cd gh-pages
  3. Initialize & clone submodules.
    git submodule init && git submodule update
  4. Run doxygen.
    doxygen ./Doxyfile