khodowany 2750dd7f3a
publish / publish (push) Successful in 53m2s
Initial public khodo snapshot
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00
2026-09-04 19:30:11 -05:00

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:

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:

./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:

./tools/package.py --all

Publishing requires credentials only for the upload step:

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:

https://git.thyme-labs.com/api/packages/khodo/conan

Generic application artifacts default to:

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.

S
Description
No description provided
Readme MIT 450 KiB
Languages
Python 75.9%
C++ 17.4%
Lua 4.1%
CMake 2.2%
Dockerfile 0.4%