diff --git a/Cargo.lock b/Cargo.lock index 42d775f..ab776c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -215,7 +215,7 @@ dependencies = [ ] [[package]] -name = "dashmap_ref" +name = "dashmap-ref" version = "0.1.0" dependencies = [ "clippy_utils", diff --git a/Cargo.toml b/Cargo.toml index 0b79f92..4aa0a1b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,3 +3,9 @@ members = [ "hakari" , "lints/*" ] resolver = "2" + +[workspace.package] +version = "0.1.0" + +[workspace.metadata.crane] +name = "dylints-various" diff --git a/flake.nix b/flake.nix index 5d416d5..8282425 100644 --- a/flake.nix +++ b/flake.nix @@ -32,6 +32,9 @@ ]; }; + inherit (pkgs) lib; + + toolchain = (builtins.fromTOML (builtins.readFile ./rust-toolchain.toml)).toolchain.channel; rustTarget = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; dylintLib = inputs.dylint.mkLib { @@ -39,7 +42,57 @@ inherit (inputs) crane; }; - lints = [ ]; + craneLib = (inputs.crane.mkLib pkgs).overrideToolchain rustTarget; + + src = craneLib.cleanCargoSource ./.; + + commonLintArgs = { + inherit src; + strictDeps = true; + + buildInputs = [ pkgs.openssl ]; + nativeBuildInputs = [ pkgs.pkg-config ]; + + DOCS_RS = "true"; + RUSTUP_TOOLCHAIN = toolchain; + }; + + cargoArtifacts = craneLib.buildDepsOnly commonLintArgs; + + individualLintArgs = commonLintArgs // { + inherit cargoArtifacts; + inherit (craneLib.crateNameFromCargoToml { inherit src; }) version; + + doCheck = false; + }; + + fileSetForCrate = + crate: + lib.fileset.toSource { + root = ./.; + fileset = lib.fileset.unions [ + ./Cargo.lock + ./Cargo.toml + (craneLib.fileset.commonCargoSources ./hakari) + (craneLib.fileset.commonCargoSources crate) + ]; + }; + + dashmap-ref = craneLib.buildPackage ( + individualLintArgs + // { + pname = "dashmap-ref"; + cargoExtraArgs = "-p dashmap-ref"; + src = fileSetForCrate ./lints/dashmap-ref; + } + ); + + lints = [ + { + inherit toolchain; + package = dashmap-ref; + } + ]; dylint = dylintLib.mkDylint { inherit lints; }; in { @@ -49,6 +102,8 @@ dylint pkgs.cargo-hakari + pkgs.openssl + pkgs.pkg-config ]; }; } diff --git a/lints/dashmap-ref/Cargo.toml b/lints/dashmap-ref/Cargo.toml index fb04676..b6b2511 100644 --- a/lints/dashmap-ref/Cargo.toml +++ b/lints/dashmap-ref/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "dashmap_ref" +name = "dashmap-ref" version = "0.1.0" edition = "2021" publish = false diff --git a/lints/dashmap-ref/rust-toolchain b/lints/dashmap-ref/rust-toolchain deleted file mode 100644 index 4297c5e..0000000 --- a/lints/dashmap-ref/rust-toolchain +++ /dev/null @@ -1,3 +0,0 @@ -[toolchain] -channel = "nightly-2025-01-09" -components = ["llvm-tools-preview", "rustc-dev"] diff --git a/rust-toolchain.toml b/rust-toolchain.toml index c1bc0a6..4297c5e 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,3 @@ [toolchain] -channel = "1.85.0" +channel = "nightly-2025-01-09" +components = ["llvm-tools-preview", "rustc-dev"]