tauruswang
tauruswang

Reputation: 65

Cargo build command always Compiling dependencies

Use cargo init to crate the project, then add the gtk4-rs dependencies. Here is the Cargo.toml file

[package]
name = "study_rust"
version = "0.1.0"
edition = "2018"

[dependencies.gtk]
path = "D:/gtk4-rs/gtk4"
package = "gtk4"

Here is the main.rs

fn main() {
    print!("ok")
}

then I run the cargo build:

cargo build
   Compiling glib-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gobject-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gio-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling pango-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gdk-pixbuf-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling cairo-sys-rs v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gdk4-sys v0.3.0 (D:\gtk4-rs\gdk4\sys)
   Compiling graphene-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gsk4-sys v0.3.0 (D:\gtk4-rs\gsk4\sys)
   Compiling gtk4-sys v0.3.0 (D:\gtk4-rs\gtk4\sys)
   Compiling glib v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gio v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling pango v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling cairo-rs v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling graphene-rs v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gdk-pixbuf v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gdk4 v0.3.0 (D:\gtk4-rs\gdk4)
   Compiling gsk4 v0.3.0 (D:\gtk4-rs\gsk4)
   Compiling gtk4 v0.3.0 (D:\gtk4-rs\gtk4)
   Compiling study_rust v0.1.0 (C:\study_projects\study_rust)
    Finished dev [unoptimized + debuginfo] target(s) in 44.28s

it takes several seconds (44.28s) to finish.

then I modify the main.rs,

fn main() {
    print!("ok, the tiny change of string!!!!")
}

then I run the cargo build again: i don't understand why every time run the cargo build should recomile all the gtk-rs dependencies. This takes several seconds to finish even i just change some print string. There're must be something wrong that every time take so long to build the target executable file.

cargo build
   Compiling glib-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gobject-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gio-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling pango-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling cairo-sys-rs v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gdk-pixbuf-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling graphene-sys v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gdk4-sys v0.3.0 (D:\gtk4-rs\gdk4\sys)
   Compiling gsk4-sys v0.3.0 (D:\gtk4-rs\gsk4\sys)
   Compiling gtk4-sys v0.3.0 (D:\gtk4-rs\gtk4\sys)
   Compiling glib v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gio v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling pango v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling cairo-rs v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling graphene-rs v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gdk-pixbuf v0.15.0 (https://github.com/gtk-rs/gtk-rs-core#693878b4)
   Compiling gdk4 v0.3.0 (D:\gtk4-rs\gdk4)
   Compiling gsk4 v0.3.0 (D:\gtk4-rs\gsk4)
   Compiling gtk4 v0.3.0 (D:\gtk4-rs\gtk4)
   Compiling study_rust v0.1.0 (C:\study_projects\study_rust)
    Finished dev [unoptimized + debuginfo] target(s) in **42.35s**

Upvotes: 5

Views: 1126

Answers (1)

Thach Van
Thach Van

Reputation: 1539

You'll need to specify build.incremental = true for Cargo.

In the same folder of the Cargo.toml file, create the folder .cargo. Inside this .cargo folder, create the file config.toml with the following content:

[build]
incremental = true

Reference: https://doc.rust-lang.org/cargo/reference/config.html#buildincremental

Upvotes: 2

Related Questions