Command-Line Usage
The Raisin script is controlled via command-line arguments.
python raisin.py <command> [options]
Core Commands
- setup [target ...]
Configures the project for a local development build.
This command performs the core setup tasks: 1. Finds all
.msg
,.srv
, and.action
files. 2. Generates the corresponding C++ header files in thegenerated/
directory. 3. Scans all projects insrc/
to build a dependency graph. 4. Generates a top-levelCMakeLists.txt
with all projects included in the correct build order.If one or more
[target ...]
names are provided, it will only configure the build for those specific targets and their dependencies. If no targets are provided, it configures all projects found insrc/
.
- build <release|debug> [install]
Compiles the project locally.
This command runs
cmake
andninja
to build the code configured by thesetup
command. * You must specify the build type:release
ordebug
. * If the optionalinstall
argument is provided, the build artifacts will be installed into theinstall/
directory after compilation.
- release <target ...> [build_type]
Creates and distributes a formal release package.
This command automates the entire release process for one or more targets. For each target, it: 1. Reads the
release.yaml
file to get version and dependency information. 2. Performs a clean build and installs the artifacts to a dedicated directory underrelease/install/
. 3. Compresses the installed artifacts into a.zip
archive named with the convention:{target}-{os}-{arch}-{build_type}-v{version}.zip
. 4. Uploads the archive to the corresponding GitHub Release, creating the release if it doesn’t exist.build_type
can berelease
(default) ordebug
.
- install [package_spec ...] [build_type]
Downloads and installs pre-compiled packages and their dependencies.
This command functions as a package manager. It recursively resolves and installs all required packages. * A
package_spec
can be a simple name (e.g.,my_pkg
) or include a version specifier (e.g.,my_pkg>=1.2.3
). * If no packages are specified, it automatically scans for projects in thesrc/
directory and treats them as targets to be fulfilled. *build_type
can berelease
(default) ordebug
.
- help, -h, --help
Displays a detailed help message.