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.

  • japps13OPA
    link
    fedilink
    arrow-up
    1
    ·
    4 months ago

    Going opt-in instead of opt-out does not change the fact that I would still have to toggle the features manually. To be more specific, my use case is that I have a program to control cameras in my lab. But not all computers have the libraries for all cameras. So, every supported library can be enable/disable using a feature But the program being still in active development, I am frequently using cargo run, cargo check, cargo install, on different computers with different libraries installed. What would be convenient would be to have a configuration file on each computer, specifying that we will build only for PCO camera on this computer, only for Photometrics camera on this one, only Ximea and PCO on this one, instead of having to remember to toggle the relevant features every time. A shell script is not very convenient because I use different commands, run, check, install etc.

    • TehPers@beehaw.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      4 months ago

      You should look at the tools I linked. cargo-make would just change your flow to cargo make run, cargo make check, etc. and just has similar benefits. You’d handle the computer-specific logic in there, using a .env per computer if you want.

      • japps13OPA
        link
        fedilink
        arrow-up
        2
        ·
        4 months ago

        Ok, I’ll look into that then. Thanks.