This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# Modulus
|
||||
|
||||
Modulus is the shared C++23 foundation library and build tooling used by the khodo Product Vamp repositories. It provides small runtime utilities, Conan profiles, CMake package integration, editor templates, typed LSP compile-database setup, and bridge targets for the external libraries needed by Product Vamp.
|
||||
|
||||
The public package intentionally keeps a small dependency surface:
|
||||
|
||||
- Boost.JSON
|
||||
- OpenSSL
|
||||
- SQLite
|
||||
- raylib
|
||||
- miniaudio 0.11.22
|
||||
|
||||
## Build
|
||||
|
||||
Use the checked-in tools directly inside CI or a compatible build environment:
|
||||
|
||||
```sh
|
||||
MODULUS_DIRECT=1 ./tools/configure.py --target x86_64_gcc12_release
|
||||
./tools/build.py --target x86_64_gcc12_release
|
||||
./tools/test.py --target x86_64_gcc12_release
|
||||
```
|
||||
|
||||
Outside that environment, downstream repos use `python3 modulus.py <command>` to fetch the public `modulus/latest` package from the khodo Conan registry and export the tool wrappers into `build/build_tools/`.
|
||||
|
||||
`build` automatically configures a target when CMake metadata is missing. Run `configure` explicitly when you want to force a reconfigure or refresh dependencies.
|
||||
|
||||
Refresh clangd compile databases with:
|
||||
|
||||
```sh
|
||||
./tools/lsp.py
|
||||
```
|
||||
|
||||
Product repos can add typed extra CMake compile databases under `tooling.lsp.compile_databases`; this is intended for cases like Product Vamp's Pico firmware tree.
|
||||
|
||||
## Package
|
||||
|
||||
Create Conan packages with:
|
||||
|
||||
```sh
|
||||
./tools/package.py --all
|
||||
```
|
||||
|
||||
Publishing requires credentials only for the upload step:
|
||||
|
||||
```sh
|
||||
CONAN_USER=<user> \
|
||||
CONAN_TOKEN=<token> \
|
||||
MODULUS_CONAN_UPLOAD=1 \
|
||||
MODULUS_ALLOW_PACKAGE_REPLACE=1 \
|
||||
./tools/package.py --all --replace
|
||||
```
|
||||
|
||||
The default public Conan remote is:
|
||||
|
||||
```text
|
||||
https://git.thyme-labs.com/api/packages/khodo/conan
|
||||
```
|
||||
|
||||
Generic application artifacts default to:
|
||||
|
||||
```text
|
||||
https://git.thyme-labs.com/api/packages/khodo/generic
|
||||
```
|
||||
|
||||
Configure/build/test do not require package credentials for public packages.
|
||||
|
||||
## License
|
||||
|
||||
Modulus is released under the MIT License.
|
||||
Reference in New Issue
Block a user