blob: ef9ac8f013a0b4b241c0d125f2f7a24e7844eb31 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
{inputs, ...}: {
perSystem = {
lib,
system,
pkgs,
...
}: let
inherit (inputs) advisory-db crane fenix;
craneLib = crane.mkLib pkgs;
src = craneLib.cleanCargoSource ../.;
commonArgs = {
inherit src;
strictDeps = true;
nativeBuildInputs = with pkgs; [openssl openssl.dev pkg-config];
LD_LIBRARY_PATH = lib.makeLibraryPath [pkgs.openssl];
PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig";
};
craneLibLlvmTools =
craneLib.overrideToolchain
(fenix.packages.${system}.complete.withComponents [
"cargo"
"llvm-tools"
"rustc"
]);
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
vuw-scraper = craneLib.buildPackage (commonArgs
// {
inherit cargoArtifacts;
});
in {
checks = {
inherit vuw-scraper;
vuw-scraper-clippy = craneLib.cargoClippy (commonArgs
// {
inherit cargoArtifacts;
cargoClippyExtraArgs = "--all-targets -- --deny warnings";
});
vuw-scraper-doc = craneLib.cargoDoc (commonArgs
// {
inherit cargoArtifacts;
});
vuw-scraper-audit = craneLib.cargoAudit {
inherit src advisory-db;
};
vuw-scraper-nextest = craneLib.cargoNextest (commonArgs
// {
inherit cargoArtifacts;
partitions = 1;
partitionType = "count";
});
};
packages =
{
default = vuw-scraper;
}
// lib.optionalAttrs (!pkgs.stdenv.isDarwin) {
vuw-scraper-llvm-coverage = craneLibLlvmTools.cargoLlvmCov (commonArgs
// {
inherit cargoArtifacts;
});
};
devenv.shells.default = {
env = {
inherit (commonArgs) LD_LIBRARY_PATH PKG_CONFIG_PATH;
};
packages = commonArgs.nativeBuildInputs;
};
};
}
|