Cargo env file?

Hello,

I have a project for which some machines have only a subset of features set. Currently, I write

cargo run --no-default-features --features "toto,titi" --bin my_bin

This is a bit cumbersome and I sometimes forget the --no-default-features --features part. I was wondering if there is a local config file that I could put in the directory to instruct cargo to use this particular subset of features. I guess this should be in the documentation, but I didn't find it.

11 points · 7 comments · view on lemmy.world

7 Comments

fnmain@programming.dev · 3 pts · 2y (1 reply)

The way I can think of to do this is to make a program called cargo-build-env which reads a file of your choosing with the features and executes cargo, then place that binary in your ~/.cargo/bin directory. Then you can run cargo build-env to build your program

The program can be in any language as long as it's executable, including shell script

sugar_in_your_tea@sh.itjust.works · 3 pts · 2y

Yeah, a simple bash script should do. Such as:

#!/usr/bin/env bash

BUILD_FEATURES=${BUILD_FEATURES:=default}

cargo run --no-default-features --features "${BUILD_FEATURES}" --bin my_bin

Then just set a BUILD_FEATURES env var.

rutrum@lm.paradisus.day · 1 pts · 2y

Not cargo, but I use justfiles in all my projects: https://github.com/casey/just Its great for aliasing project-specific commands like what you have.

doot@social.bug.expert · 1 pts · 2y
owsei@programming.dev · 1 pts · 2y (2 replies)

You can setup a cargo configuration file, in it you put a manifest and define some profiles, and in them define what features you want compiled

japps13@lemmy.physfluids.fr · 2 pts · 2y (1 reply)

This would look like it would be what I am looking for, but the documentation of the configuration file does not mention features.

owsei@programming.dev · 1 pts · 2y

https://doc.rust-lang.org/cargo/reference/manifest.html

it's the sixth from the bottom in the table of contents