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.
TODO: more details
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).
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.
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
Vulkan SDK
https://www.lunarg.com/vulkan-sdk/
Only shaderc, vulkan headers & loader is actually used
zlib
freetype2
http://www.freetype.org/
libogg, libvorbis
https://xiph.org/ogg/
https://xiph.org/vorbis/
OpenAL
https://www.openal.org/
dear imgui (optional)
Included as a git submodule in extern/imgui/.
Menu module & perf::Analyzer will only be compiled if imgui is present.
https://github.com/ocornut/imgui
libdwarf (optional, linux-only)
STB_image && STB_dxt && STB_image_resize https://github.com/nothings/stb
rapidxml
included in extern/rapidxml/, licensed under BSL 1.0.
http://rapidxml.sourceforge.net/
boost::polygon::voronoi
included in extern/boost_polygon/, licensed under BSL 1.0.
http://www.boost.org/
Volk
included in extern/volk/, licensed under MIT license.
https://github.com/zeux/volk
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.