crucible
Type | Name |
---|---|
tree | cmake |
tree | executables |
tree | libraries |
blob | CHANGELOG.md |
blob | CMakeLists.txt |
blob | CMakePresets.json |
blob | README.md |
Crucible
Crucible is a cross-platform, all-in-one framework for building C++ software, mainly targeted at multimedia applications, video games, and scientific computing.
Components
Crucible is broken into a handful of separate libraries, each having a specific function:
crucible-core
contains fundamental building blocks that the rest of the framework requires to function. This includes things like data structures, memory management, filesystem access, error handling, and debugging tools.crucible-test
is a unit testing system, both for use by applications and for testing Crucible itself. Test cases are written in standard C++, and there is an auto-registration system to minimize boilerplate.
Building
These instructions show how to build Crucible on the command line. To build using an IDE, consult your IDE's documentation about CMake projects.
Dependencies
To build this version of Crucible, you will need the following tools:
- One of the following supported compilers:
- Clang (or AppleClang) >= 14.0
- GCC >= 11.0
- MSVC >= 19.33
- CMake >= 3.23
Other compilers or older versions of the supported compilers may or may not work with no changes, but are not supported.
Supported targets
Crucible is regularly built and tested on various versions of macOS, Ubuntu, and Windows in a few different hardware configurations. Similar systems should either work out of the box or require minimal modification.
Configuring the build system
Before building, CMake needs to scan the system to determine what compilers are available, what operating system the build will target, etc. This will generate a set of build files that contain the actual build system.
While it is possible to configure the build by hand, it is recommended to use a build preset unless you have a specific
reason not to. There are two build presets currently available: development
(for debug builds) and release
(for
optimized builds).
To configure a build using the release
preset, assuming the Crucible repository has been cloned to
~/Repositories/crucible
and you want the build directory to be at ~/Builds/crucible/release
, run the following
command:
cmake --preset=release -S ~/Repositories/crucible -B ~/Builds/crucible/release
Running the build system
Once the build system has been generated, you can execute it to build Crucible. The easiest way to do this is to let
CMake do it for you with the following command (again assuming that your build tree is at ~/Builds/crucible/release
):
cmake --build ~/Builds/crucible/release
Running the test suite
Crucible has a comprehensive test suite that is integrated with the build system through the CTest framework that comes
with CMake. The best way to run the test suite is with the following command (using the ~/Builds/crucible/release
directory from the previous examples again):
ctest --test-dir=~/Builds/crucible/release --output-on-failure
Credits
- Created & developed by bravelytyped