3 stable releases
1.2.0 | Apr 17, 2021 |
---|---|
1.1.0 | Dec 12, 2020 |
1.0.0 | Dec 5, 2020 |
#403 in Build Utils
7,266 downloads per month
Used in 25 crates
(via static-files)
25KB
387 lines
A library to generate change detection instructions during build time
Legal
Dual-licensed under MIT
or the UNLICENSE.
Features
Automates task of generating change detection instructions for your static files.
https://doc.rust-lang.org/cargo/reference/build-scripts.html#change-detection
Usage
Add dependency to Cargo.toml:
[dependencies]
change-detection = "1.2"
Add a call to build.rs
:
use change_detection::ChangeDetection;
fn main() {
ChangeDetection::path("src/hello.c").generate();
}
This is basically the same, as just write:
fn main() {
println!("cargo:rerun-if-changed=src/hello.c");
}
You can also use a directory. For example, if your resources are in static
directory:
use change_detection::ChangeDetection;
fn main() {
ChangeDetection::path("static").generate();
}
One call to generate can have multiple path
components:
use change_detection::ChangeDetection;
fn main() {
ChangeDetection::path("static")
.path("another_path")
.path("build.rs")
.generate();
}
Using path-matchers
library you can specify include / exclude filters:
#[cfg(features = "glob")]
use change_detection::{path_matchers::glob, ChangeDetection};
fn main() {
#[cfg(features = "glob")]
ChangeDetection::exclude(glob("another_path/**/*.tmp").unwrap())
.path("static")
.path("another_path")
.path("build.rs")
.generate();
}
You can actual generated result with this command:
find . -name output | xargs cat
Dependencies
~51KB