Xargo Build with Sublime
19. February 2018 · about a minute read · Commentscargo environments osdev rust
How to build your xargo package in Sublime
Imagine you have a special OSdev project in Rust that you want to build from within Sublime Text. So you fire up the editor, choose the Tools
>Build System
>New Build System…
and write a little simple configuration file:
{
"shell_cmd": "xargo run --target aarch64-vesper-metta",
"keyfiles": ["Xargo.toml"],
"working_dir": "$project_path/vesper",
"env": {
"RUST_TARGET_PATH": "$project_path/vesper/targets/"
},
"quiet": false
}
You save it and hit Cmd+B.
You get rather strange message:
error: Error loading target specification: Could not find specification for target "aarch64-vesper-metta"
— Wait, but I've specified the env variable!, you yell at the editor.
Only to find out that sublime variables are not expanded in the env
block.
Well. Fire up Package Control
and Install Package
named EnvironmentSettings
. Now do some initial setup: in Package Settings set up User settings for the installed package and initialize it to this:
{
"print_output": true,
"set_sublime_variables": true,
"sublime_variables_prefix": "",
"sublime_variables_capitalized": false
}
Now after you restart sublime or select Apply Project Configuration
in Package Settings for EnvironmentSettings plugin you will be able to use your buildsystem correctly! Just press Cmd+B and enjoy.
The env
block from the build system configuration is now using $project_path
as a real environment variable set by EnvironmentSettings plugin.