/libfwk

Simple C++/Vulkan framework

Primary LanguageC++Boost Software License 1.0BSL-1.0

libfwk

License Build status

WTF is libfwk?

FWK is a sweet (IMVHO) abbreviation for framework. It is basically a set of classes and functions which I use in most of my projects (mostly game-related). It's trying to be light, super easy to use and performant where it matters.

Features

  • Vulkan & SDL2 based
  • Easy to use interfaces (trying to be as intuitive as possible)
  • Doesn't use C++ exceptions
  • Supported platforms: Ubuntu 22.04, Windows (requires VS 2022 with LLVM toolset)

TODO: more details

Examples & projects based on libfwk

Building

libfwk is written in C++20, so it requires a fairly new C++ compiler, preferably Clang. libfwk can be easily compiled in Ubuntu 22.04 and under Windows (github actions are provided).

Windows

libfwk requires Visual Studio 2022 with LLVM toolset. tools/install_deps.py will download all the necessary dependencies into a specified folder. libfwk project files expect this folder to be 'C:/libraries/x86_64'. You can change that in windows/shared_libraries.props. To build it, simply open windows/libfwk.sln in Visual Studio and run build.

Ubuntu

Several external dependencies have to be installed, before building libfwk. 'Install dependencies' step in test-linux job (.github/workflows/test.yml) is a good reference of how to install them.
To compile simply run make. There is a basic description of the options that you can pass to make at the beginning of Makefile & Makefile-shared.

Examples:

$ make MODE=release-paranoid COMPILER=clang++-17 STATS=true -j12
$ make MODE=release-paranoid print-stats print-variables
$ make MODE=debug-nans clean
$ make clean-all

Dependencies

External dependencies

Included dependencies

License

Whole library is licensed under Boost Software license.

If You found this library useful, please contact the author (nadult (at) fastmail (dot) fm).
Any kind of feedback is greatly appreciated.