diff --git a/README.md b/README.md new file mode 100644 index 0000000..de86a45 --- /dev/null +++ b/README.md @@ -0,0 +1,123 @@ +
+ The fish powered, modular and tiny C++20 library collection of random stuff I've needed for other projects. +
+ +## Installation & Integration + +### 1. Requirements +* **Compiler**: A C++20 compliant compiler. +* **Build System**: CMake 4.1.0 or higher. + +### 2. Integration via CMake +#### Option A: Using FetchContent (Recommended) +You can pull the library directly into your project from the git repository. Add this to your CMakeLists.txt: + +```cmake +include(FetchContent) + +FetchContent_Declare( + seallib + GIT_REPOSITORY https://git.neru.rip/neru/seallib.git + GIT_TAG main # or a specific commit hash +) + +# Enable the modules you want before making it available +set(SEALLIB_LOG ON) +set(SEALLIB_ASSERT OFF) + +FetchContent_MakeAvailable(seallib) + +target_link_libraries(your_project PRIVATE seallib) +``` + +#### Option B: Local Path +If you have the library downloaded locally: +```cmake +# Enable the modules you want before adding it +set(SEALLIB_LOG ON) +set(SEALLIB_ASSERT OFF) + +add_subdirectory(path/to/seallib) + +target_link_libraries(your_project PRIVATE seallib) +``` + +--- + +## Build Options +| Option | Description | Default | +| :--- | :--- | :--- | +| SEALLIB_ASSERT | Enable Assertion utility | OFF | +| SEALLIB_EVENTS | Enable Event Dispatcher | OFF | +| SEALLIB_LOG | Enable Logging Framework | OFF | +| SEALLIB_VFS | Enable Virtual File System | OFF | +| SEALLIB_TEST | Build the test project | OFF | + +--- + +--- + +## Module Instructions + + +### 1. Logging +The Log module uses a Sink architecture. You create a Logger, attach an ILogSink, and log messages using std::format syntax. + +```C++ +#include