I'm using Cargo build to compile a project written in Rust. https://github.com/hyperledger-labs/solang
When modifying a small part of source code and compiling the project again (using cargo build --release or cargo build), I notice that Cargo always compiles or checks all dependencies, before it actually compiles the project's source code.
For example, below is the compilation log where all libraries are re-compiled or checked whenever I run cargo build. These steps take a lot of time.
Is there any way to stop Cargo from compiling the library?
Thank you for taking a look at my issue!
cargo build
Blocking waiting for file lock on package cache
Blocking waiting for file lock on package cache
Compiling unicode-xid v0.2.2
Compiling proc-macro2 v1.0.36
Compiling libc v0.2.119
Compiling cfg-if v1.0.0
Compiling autocfg v1.1.0
Compiling memchr v2.4.1
Compiling version_check v0.9.4
Compiling smallvec v1.8.0
Compiling ucd-trie v0.1.3
Compiling scopeguard v1.1.0
Compiling regex-syntax v0.6.25
Compiling lazy_static v1.4.0
Compiling serde_derive v1.0.136
Compiling siphasher v0.3.9
Compiling log v0.4.14
Compiling parking_lot_core v0.8.5
Compiling crunchy v0.2.2
Compiling typenum v1.15.0
Compiling hashbrown v0.11.2
Compiling cc v1.0.73
Compiling futures-core v0.3.21
Compiling ppv-lite86 v0.2.16
Compiling tiny-keccak v2.0.2
Compiling serde_json v1.0.79
Compiling either v1.6.1
Compiling futures-channel v0.3.21
Compiling fixedbitset v0.2.0
Compiling new_debug_unreachable v1.0.4
Compiling futures-task v0.3.21
Compiling bit-vec v0.6.3
Compiling proc-macro-hack v0.5.19
Compiling parking_lot_core v0.9.1
Compiling precomputed-hash v0.1.1
Compiling futures-util v0.3.21
Compiling maplit v1.0.2
Compiling diff v0.1.12
Compiling pico-args v0.4.2
Compiling radium v0.6.2
Compiling semver v1.0.6
Compiling async-trait v0.1.52
Compiling arrayvec v0.4.12
Compiling heck v0.4.0
Compiling inkwell v0.1.0-beta.4
Compiling instant v0.1.12
Compiling lock_api v0.4.6
Compiling pest v2.1.3
Compiling generic-array v0.14.5
Compiling proc-macro-error-attr v1.0.4
Compiling proc-macro-error v1.0.4
Compiling nom v7.1.0
Compiling phf_shared v0.10.0
Compiling indexmap v1.8.0
Compiling num-traits v0.2.14
Compiling num-integer v0.1.44
Compiling num-bigint v0.4.3
Compiling num-rational v0.4.0
Compiling itertools v0.10.3
Compiling bit-set v0.5.2
Compiling solang v0.1.10 (/home/trungtq/workspace/sbip/solang-debug-info)
Compiling semver-parser v0.10.2
Compiling pest_meta v2.1.3
Compiling quote v1.0.15
Compiling aho-corasick v0.7.18
Compiling os_str_bytes v6.0.0
Compiling dirs-sys-next v0.1.2
Compiling getrandom v0.2.5
Compiling atty v0.2.14
Compiling num_cpus v1.13.1
Compiling tempfile v3.3.0
Compiling ena v0.14.0
Compiling bitvec v0.20.4
Compiling semver v0.11.0
Compiling syn v1.0.86
Compiling blake2-rfc v0.2.18
Compiling dirs-next v2.0.0
Compiling rand_core v0.6.3
Compiling regex v1.5.4
Compiling parking_lot v0.11.2
Compiling parking_lot v0.12.0
Compiling petgraph v0.5.1
Compiling clap v3.1.5
Compiling term v0.7.0
Compiling rand_chacha v0.3.1
Compiling string_cache v0.8.3
Compiling dashmap v5.1.0
Compiling crypto-common v0.1.3
Compiling block-buffer v0.10.2
Compiling ascii-canvas v3.0.0
Compiling rand v0.8.5
Compiling lalrpop-util v0.19.7
Compiling digest v0.10.3
Compiling sha2 v0.10.2
Compiling ripemd v0.1.1
Compiling lalrpop v0.19.7
Compiling phf_generator v0.10.0
Compiling pest_generator v2.1.3
Compiling llvm-sys v130.0.3
Compiling tokio-macros v1.7.0
Compiling futures-macro v0.3.21
Compiling phf_macros v0.10.0
Compiling serde_repr v0.1.7
Compiling pest_derive v2.1.0
Compiling tower-lsp-macros v0.5.0
Compiling inkwell_internals v0.5.0
Compiling auto_impl v0.5.0
Compiling tokio v1.17.0
Compiling phf v0.10.1
Compiling tokio-util v0.7.0
Compiling futures v0.3.21
Compiling serde v1.0.136
Compiling solang-parser v0.1.10 (/home/trungtq/workspace/sbip/solang-debug-info/solang-parser)
Compiling url v2.2.2
Compiling lsp-types v0.92.0
Compiling handlebars v4.2.1
Compiling contract-metadata v0.3.0
Compiling tower-lsp v0.15.1
Finished dev [unoptimized + debuginfo] target(s) in 1m 07s
CARGO_TARGET_DIR="./build" cargo build, so that my build command output into a different target folder and will not affect rust-analyzer. Now, I don't need to close rust-analyzer while build my project anymore