{ description = "libzmq bindings for odin"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; # process-compose-flake.url = "github:Platonic-Systems/process-compose-flake"; treefmt-nix.url = "github:numtide/treefmt-nix"; treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs@{ self , flake-parts , nixpkgs , nixpkgs-unstable # , process-compose-flake , treefmt-nix }: flake-parts.lib.mkFlake { inherit inputs; } { imports = [ inputs.treefmt-nix.flakeModule # inputs.process-compose-flake.flakeModule ]; systems = [ "x86_64-linux" ]; perSystem = { pkgs, system, inputs', ... }: let zomq = pkgs.stdenv.mkDerivation { pname = "zomq"; version = "0.1.0"; src = ./.; nativeBuildInputs = [ pkgs.odin ]; buildInputs = [ pkgs.zeromq ]; dontConfigure = true; doCheck = true; buildPhase = '' runHook preBuild odin build . -build-mode:lib -o:speed -out:libzomq runHook postBuild ''; checkPhase = '' runHook preCheck odin test . -all-packages runHook postCheck ''; installPhase = '' runHook preInstall install -Dm644 libzomq.a $out/lib/libzomq.a runHook postInstall ''; meta = { description = "libzmq bindings for odin"; platforms = [ "x86_64-linux" ]; }; }; in { packages.default = zomq; _module.args.pkgs = import nixpkgs { inherit system; config.allowUnfree = true; overlays = [ (final: prev: { unstable = inputs'.nixpkgs-unstable.legacyPackages; }) ]; }; treefmt = { # Used to find the project root projectRootFile = "flake.nix"; settings.global.excludes = [ ".direnv/**" ".jj/**" ".env" ".envrc" ".env.local" ]; # Format nix files programs.nixpkgs-fmt.enable = true; programs.deadnix.enable = true; # Format js, json, and yaml files programs.prettier.enable = false; settings.formatter.prettier = { excludes = [ "public/**" "resources/js/modernizr.js" "storage/app/caniuse.json" "*.md" ]; }; }; devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ odin ols zeromq # IDE unstable.helix typescript-language-server vscode-langservers-extracted ]; }; }; }; }