Rework source filtering.

To actually avoid triggering unnecessary rebuilds when irrelevant files
change.
This commit is contained in:
Shuxian Wang 2023-01-03 23:09:23 -08:00
parent 426d650c42
commit f2e8954923
3 changed files with 28 additions and 9 deletions

2
.gitignore vendored
View file

@ -13,4 +13,4 @@ vendor
vendor.tar vendor.tar
.vscode .vscode
*.log *.log
result /result

16
flake.lock generated
View file

@ -90,6 +90,21 @@
"type": "github" "type": "github"
} }
}, },
"nix-filter": {
"locked": {
"lastModified": 1666547822,
"narHash": "sha256-razwnAybPHyoAyhkKCwXdxihIqJi1G6e1XP4FQOJTEs=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "1a3b735e13e90a8d2fd5629f2f8363bd7ffbbec7",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "nix-filter",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1672428209, "lastModified": 1672428209,
@ -111,6 +126,7 @@
"crane": "crane", "crane": "crane",
"fenix": "fenix", "fenix": "fenix",
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_2",
"nix-filter": "nix-filter",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
} }
}, },

View file

@ -4,6 +4,7 @@
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
nix-filter.url = "github:numtide/nix-filter";
crane = { crane = {
url = "github:ipetkov/crane"; url = "github:ipetkov/crane";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -14,20 +15,22 @@
}; };
}; };
outputs = { self, nixpkgs, flake-utils, crane, fenix }: outputs = { self, nixpkgs, flake-utils, nix-filter, crane, fenix }:
flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ] (system: flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ] (system:
let let
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
craneLib = crane.lib.${system}.overrideToolchain fenix.packages.${system}.stable.toolchain; craneLib = crane.lib.${system}.overrideToolchain fenix.packages.${system}.stable.toolchain;
pkgDef = { pkgDef = {
src = pkgs.nix-gitignore.gitignoreSource [ src = nix-filter.lib.filter {
"flake.nix" root = ./.;
"flake.lock" include = [
"data" ./src
"debian" ./Cargo.toml
"LICENSE" ./Cargo.lock
] ./.; ./resources
];
};
nativeBuildInputs = with pkgs; [ pkg-config autoPatchelfHook ]; nativeBuildInputs = with pkgs; [ pkg-config autoPatchelfHook ];
buildInputs = with pkgs; [ buildInputs = with pkgs; [
wayland wayland