diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore index 2abdc16..c9ffbf0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .cargo_cache target +.direnv diff --git a/build.rs b/build.rs index b9e37e8..c591e2b 100644 --- a/build.rs +++ b/build.rs @@ -17,7 +17,7 @@ fn main() { println!( "cargo:rustc-link-search=native={}", - dst.join("lib").display() + dst.join("lib64").display() ); println!("cargo:rustc-link-lib=static=atomic_ops"); @@ -31,7 +31,7 @@ fn main() { println!( "cargo:rustc-link-search=native={}", - dst.join("lib").display() + dst.join("lib64").display() ); println!("cargo:rustc-link-lib=static=gc"); @@ -65,7 +65,7 @@ fn main() { println!( "cargo:rustc-link-search=native={}", - dst.join("lib").display() + dst.join("lib64").display() ); println!("cargo:rustc-link-lib=static=gc"); } diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..029b400 --- /dev/null +++ b/flake.lock @@ -0,0 +1,66 @@ +{ + "nodes": { + "fenix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1779185128, + "narHash": "sha256-Kl2bkmwZJD3n2KWDxuIlturZ7emqRK+anpD1LmDwpmY=", + "owner": "nix-community", + "repo": "fenix", + "rev": "b7bd9323fe26a3b4f4bddbb2c2a1dacabced2f88", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1778869304, + "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d233902339c02a9c334e7e593de68855ad26c4cb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "fenix": "fenix", + "nixpkgs": "nixpkgs" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1779074864, + "narHash": "sha256-0M3WqsWmtXmv9Ev/vnFfCHosWvISDwiuuhQ104UO3CI=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "cdfe408d4b436e806ff525cb3e67588a6a009ed1", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..e9143bb --- /dev/null +++ b/flake.nix @@ -0,0 +1,54 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + fenix = { + url = "github:nix-community/fenix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { self, nixpkgs, fenix, ... }: + let + supportedSystems = [ + "aarch64-darwin" "aarch64-linux" + "x86_64-darwin" "x86_64-linux" + ]; + + each-system = f: nixpkgs.lib.genAttrs supportedSystems (system: f rec { + pkgs = import nixpkgs { + inherit system overlays; + }; + inherit (pkgs) lib; + inherit system; + }); + + overlays = [ + fenix.overlays.default + ]; + + in { + _pkgs = each-system ({ pkgs, ... }: pkgs); + + devShells = each-system ({ pkgs, lib, ... }: { + default = pkgs.mkShell { + packages = [ + pkgs.pkg-config + (pkgs.fenix.complete.withComponents [ + "cargo" "clippy" "rust-src" "rustc" "rustfmt" + ]) + pkgs.rust-analyzer-nightly + pkgs.cmake + ]; + }; + }); + }; + + nixConfig = { + extra-substituters = [ + "https://fenix.cachix.org" + ]; + extra-trusted-public-keys = [ + "fenix.cachix.org-1:ecJhr+RdYEdcVgUkjruiYhjbBloIEGov7bos90cZi0Q=" + ]; + }; +}