2015-07-14 19 views
7

che voglio utilizzare una funzione da una dipendenza quando costruire nel profilo di rilascio e non voglio utilizzare qualsiasi funzione durante il test/sviluppo.Come passare le dipendenze in base al profilo di build

Ad esempio, la dipendenza è normalmente definito come:

[depenencies.my_dep] 
version = "*" 

Ma quando ho costruire nel profilo di rilascio, voglio che sia

[depenencies.my_dep] 
version = "*" 
features = [my_feature] 

Dalla documentazione di carico riesco a distinguere che questo può essere raggiunto solo per gli obiettivi della piattaforma. C'è un modo per farlo per la configurazione basata sul profilo?

+0

Anche se non una risposta perfetta alla tua domanda, non v'è qualcosa di simile a 'CFG (debug_assertions)' usato nel codice sorgente di 'macro debug_assert' che non compilazione condizionale basata su di debug e rilasciare i modi. L'ho usato qualche volta dopo aver letto il post qui https://users.rust-lang.org/t/conditional-compilation-for-debug-release/1098 – ustulation

+1

Sembra una cattiva idea ... Perché dovresti non vuoi rilasciare lo stesso codice che test? – Shepmaster

+0

Uso una cassa che esegue alcune operazioni di rete decentralizzate. Quindi, quando sviluppiamo, utilizzo la funzione di rete fittizia della libreria per lo sviluppo e il testing. E quindi connettersi alla rete attuale per il test finale e rilasciare – Krishna

risposta

1

cargo non supporta ciò che si desidera direttamente. Vedo due opzioni.

A. Utilizzare dev-dependencies che consente di avere prove diverse dipende da di eseguire il debug/release. dev-dependencies described

B. Avere un Cargo-mock.toml e un carico-release.toml. Passa da uno all'altro utilizzando cargo build --manifest-path ./Cargo-<type>.toml.

Problemi correlati