2016-11-16 1 views
8

L'arborescence de fichiers par défaut créée par Cargo permet la compilation parallèle des versions de version et de débogage telles qu'elles se trouvent dans leurs propres répertoires; target/release et target/debug, respectivement.A quel point est-il difficile de permettre une compilation parallèle du code avec les canaux Rust stables et nocturnes?

Est-il difficile de compiler parallèlement le compilateur stable/nightly? Par exemple en utilisant les répertoires

  • target/debug/stable
  • target/debug/nightly

Je sais qu'il peut être fait avec les prisons/conteneurs, mais j'espérais un peu plus de solution Cargo-ish.

Répondre

12

Comme expliqué dans Is it possible to deactivate file locking in cargo?, vous pouvez définir la variable d'environnement CARGO_TARGET_DIR pour chaque canal qui vous intéresse:

$ CARGO_TARGET_DIR=$PWD/stable rustup run stable cargo build 
    Compiling many v0.1.0 (file:///private/tmp/many) 
    Finished debug [unoptimized + debuginfo] target(s) in 0.89 secs 
$ CARGO_TARGET_DIR=$PWD/nightly rustup run nightly cargo build 
    Compiling many v0.1.0 (file:///private/tmp/many) 
    Finished debug [unoptimized + debuginfo] target(s) in 0.62 secs 
$ ./stable/debug/many 
Hello, world! 
$ ./nightly/debug/many 
Hello, world! 
+0

Exactement ce que j'espérais! – PureW

+2

@PureW Ne vaut pas une réponse complète, mais j'ai un script ['test-matrix.py'] (https://github.com/DanielKeep/rust-script-toolbox/blob/master/test-matrix.py) cela fait pour (simples) configs CI Travis. –