How lokarex/ccc works
ccc is a cross-platform C/C++ build tool configured with C++ project files. A user invokes a command; the runtime resolves and dispatches it, project processing initializes targets, and target processing compiles and links executables or libraries. The README also documents project creation, cleaning, descriptions, custom commands, and dependency handling. Installer behavior is shown as a separate operational capability. Relationships involving unsampled command implementations are included only where the README or SOURCE INDEX supports them.
Main entry points: build_target.cpp Build targets · project.cpp C++ project definition · cccruntime.cpp CLI entry · global.cpp Command registry
Components 20
Command runtime
- CLI entry
packages/cccruntime/src/cccruntime.cpp - Command registry
packages/cccsdk/src/ccc/global.cpp - Built-in commands
packages/cccsdk/include/ccc/cmd - Command API
packages/cccsdk/include/ccc/command.h
Project model
- C++ project definition
project.cpp - Project processing
packages/cccsdk/src/ccc/project.cpp - Project creation
packages/cccsdk/include/ccc/cmd/new.hpp - Clean products
packages/cccsdk/include/ccc/cmd/clean.hpp - Descriptions
packages/cccsdk/include/ccc/cmd/desc.hpp - Help and version
packages/cccsdk/include/ccc/info.hpp
Build engine
- Build targets
packages/cccsdk/src/ccc/build_target.cpp - Executables
packages/cccsdk/src/ccc/execution.cpp - Libraries
packages/cccsdk/src/ccc/library.cpp - Build configuration
packages/cccsdk/src/ccc/config.cpp - Toolchain formats
packages/cccsdk/src/ccc/toolchain.cpp - Command execution and I/O
packages/cccsdk/src/util/io.cpp
Setup utilities
- Environment installer
scripts/installer.py - Shell setup helpers
scripts/_installer_common.py - User shell config
Other components
- Project developer
Connections 21
- Project developer → CLI entry: invokes
README.md - CLI entry → Command registry: resolves command
packages/cccruntime/src/cccruntime.cpp - CLI entry → Help and version: prints default help
packages/cccruntime/src/cccruntime.cpp - Command registry → Built-in commands: registers commands
packages/cccsdk/src/ccc/global.cpp - Built-in commands → Command API: uses registrations
- Project developer → C++ project definition: defines project
README.md - C++ project definition → Project processing: registers project
packages/cccsdk/src/ccc/project.cpp - Project processing → Build targets: processes tasks
- Build targets → Toolchain formats: selects formats
packages/cccsdk/src/ccc/build_target.cpp - Build targets → Command execution and I/O: runs compiler commands
packages/cccsdk/src/ccc/build_target.cpp - Executables → Build targets: inherits target processing
- Libraries → Build targets: inherits target processing
- C++ project definition → Executables: declares executable
README.md - C++ project definition → Libraries: declares libraries
README.md - C++ project definition → Build configuration: configures project
- Project creation → Command execution and I/O: uses utilities
packages/cccsdk/include/ccc/cmd/new.hpp - Clean products → Build targets: cleans targets
packages/cccsdk/include/ccc/cmd/clean.hpp - Descriptions → Command registry: queries descriptions
packages/cccsdk/src/ccc/global.cpp - Help and version → Project developer: documents commands
README.md - Environment installer → Shell setup helpers: uses helpers
scripts/installer.py - Shell setup helpers → User shell config: edits shell exports
scripts/_installer_common.py