ZON-based package manager and build system for C/C++, designed as a modern replacement for CMake.
- Zig version pinned in
.zigversion(currently0.16.0-dev.2984+cb7d2b056) - Use
./scripts/zigwfor source-checkout builds and verification
ovo new myapp
cd myapp
ovo build
ovo run
ovo testovo new accepts safe relative paths (including nested paths like apps/myapp).
Scaffold metadata uses the path basename for build.zon .name, and target IDs are normalized to safe internal identifiers.
From a source checkout of this repository, you can run the local launcher directly:
./ovo --help
./ovo buildUse ./scripts/zigw as the canonical Zig entrypoint for repository builds and
verification. On macOS it applies the CommandLineTools 15.4 SDK workaround
automatically and honors OVO_MACOS_SDKROOT when you need to override the SDK
path.
./scripts/zigw build
./scripts/zigw build zig-version-consistency
./scripts/zigw build typecheck
./scripts/zigw build unit-tests
./scripts/zigw build cli-tests-smoke
./scripts/zigw build cli-tests-deep
./scripts/zigw build cli-tests-stress
./scripts/zigw build cli-tests-integration
./scripts/zigw build cli-tests-variations
./scripts/zigw build cli-tests
./scripts/zigw build cli-help-matrix
./scripts/zigw build toolchain-doctor
./scripts/zigw build gendocs -- --check --no-wasm --untracked-md
./scripts/zigw build check-docs
./scripts/zigw build full-checkcli-tests-variations enforces a strict tool prerequisite check before running:
zig, clang-format, clang-tidy, clang++, g++, cmake, ninja, doxygen, clang-doc.
Use the local workflow contract for non-trivial engineering tasks (3+ steps or architectural decisions).
Expected lifecycle:
- Initialize
tasks/todo.mdbefore implementation. - Track progress and verification evidence while implementing.
- Run verification gates before marking completion.
- Append lessons to
tasks/lessons.mdafter user corrections.
See AGENTS.md for detailed workflow orchestration guidelines.
ovo versionovo new <relative_path>ovo initovo build [--force] [-jN] [--jobs=N] [target]ovo run [target] [-- args]ovo test [pattern]ovo cleanovo install
ovo add <package> [version] [--git <url>|--path <path>|--registry <version>]ovo remove <package>ovo fetch [--refresh]ovo update [pkg]ovo lockovo deps
ovo docovo doctorovo fmtovo lintovo infoovo tree [--format=ascii|dot|json|mermaid] [--target=name]
ovo import <format> [path]ovo export <format> [output_path]- Import formats:
cmake,meson,xcode,msbuild - Export formats:
cmake,meson,xcode,msbuild,compile_commands.json
ovo import cmake <path>parses:project,set,add_executable,add_libraryadd_subdirectoryrecursivelyincludeand.cmakeinclude files${VAR}variable expansion and embedded expansions- semicolon-separated source/include list values
- visited path guards to avoid duplicate recursive imports
src/core/shared domain modelsrc/zon/ZON schema and parser boundarysrc/build/build orchestration and backend command executionsrc/compiler/backend abstraction (Clang/GCC/MSVC/Zig CC)src/package/dependency management and lockflow operationssrc/translate/import/export format adapterssrc/graph/build graph visualization (treecommand)src/cli/CLI parser, registry, help, dispatch, and handlers
- Backend aliases such as
clang++,g++,cl, andzig c++are normalized toclang,gcc,msvc, andzigccduring builds. - Import defaults to
src/main.cppwhen no targets are detected. - Includes are merged from project-level and target-level include directives.
- Declared C++ standards from supported commands are mapped to
defaults.cpp_standard.
docs/command-reference.mddocs/verification.mddocs/testing-matrix.mddocs/workflow-orchestration.mddocs/zig-0-16-migration.md
- Requires CommandLineTools SDK (15.4+)
- Uses
-Wl,-rpath,@executable_pathfor runtime library paths - Uses
-Wl,-install_name,@rpathfor dylib compatibility
- Uses
-Wl,-rpath,$ORIGINfor portable runtime paths - Uses
-Wl,--as-neededto reduce linked libraries
- Uses
/DYNAMICBASE,/NXCOMPATfor security hardening - Uses
/INCREMENTAL:NOfor reliable builds