Raisin Master - Build & Package Management System!
Raisin Master is a comprehensive, self-contained C++ package build and management system designed to manage the entire lifecycle of a C++ project. Inspired by robotics build systems like ROS/colcon, it provides a powerful yet easy-to-use toolkit for developers. It handles dependency resolution, automatic C++ header generation from message files, building, packaging, and distributing releases via GitHub.
This system is perfect for projects that require a structured build process, clear dependency management, and automated release workflows, without the overhead of larger frameworks.
Key Features
🔄 ROS-like Interface Generation: Automatically generates C++ header files (
.hpp
) from.msg
,.srv
, and.action
interface definitions.🏗️ CMake-Based Build Orchestration: Discovers C++ subprojects, analyzes their dependencies, and generates a top-level
CMakeLists.txt
file for a topologically sorted build. You can probably use your existing cmake projects without any changes if they follow modern cmake guidelines.🔗 Dependency Management: Parses custom
raisin_find_package
directives within CMake files to construct a precise build order.⚡ Blazing-Fast Compilation 🚀: Bypasses the overhead of traditional meta-build tools. By orchestrating a single, unified build with raw Ninja, compile times are dramatically reduced. For large projects, this approach can be up to 5x faster than a standard colcon build.
📦 Release Automation: Packages build artifacts into versioned, platform-specific
.zip
archives and can automatically upload them to GitHub Releases.📥 Package Installation: A recursive dependency resolver that can download and install pre-compiled packages from GitHub releases, streamlining environment setup.
💎 Self-Contained: Everything is managed by a single, powerful Python script.