Vix Engine is the reusable execution foundation behind Vix build-like workflows. It owns data models and parsing logic that are not specific to the command-line interface.
The CLI remains responsible for command parsing, terminal output, progress rendering, colors, Cloud reporting, and command dispatch. The dependency direction is one-way:
modules/cli
-> modules/engine
modules/engine must not depend on modules/cli.
This first extraction phase provides:
- the
vix::engineCMake target; - the
<vix/engine.hpp>umbrella header; - minimal public execution boundary types;
- build node and build task models;
compile_commands.jsonparsing;- GCC/Clang dependency-file parsing.
High-level orchestration, CMake/Ninja execution, object and artifact caches,
scheduling, terminal rendering, and Cloud integration still live in
modules/cli and will move in later phases when their boundaries are clean.
From this directory:
cmake -S . -B build-ninja -G Ninja -DVIX_ENGINE_BUILD_TESTS=ON
cmake --build build-ninja
ctest --test-dir build-ninja --output-on-failureWhen built inside the main Vix repository, the umbrella build provides
vix::json before adding vix::engine.