3 nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
4 flake-utils.url = "github:numtide/flake-utils";
5 zig-overlay.url = "github:mitchellh/zig-overlay";
6 #zig2nix.url = "github:Cloudef/zig2nix";
7 #zig2nix.inputs.nixpkgs.follows = "nixpkgs";
11 inputs.flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
13 pkgs = import inputs.nixpkgs { inherit system; };
15 #zig = inputs.zig-overlay.packages.${system}.master;
16 # Wrap binary package zig on linux so /usr/bin/env can be found inside a sandbox
18 pkgs.writeScriptBin "zig" ''
21 args+=("--dev-bind" "$d" "$d")
23 ${pkgs.bubblewrap}/bin/bwrap "''${args[@]}" \
24 --bind ${pkgs.coreutils} /usr \
25 -- ${pkgs.lib.getExe zig} "$@"
29 readelf -d $out/bin/test-* | grep RUNPATH
30 lddtree $out/bin/test-*
35 packages.test-zig = pkgs.stdenv.mkDerivation {
38 buildInputs = [ zigBin pkgs.gsl pkgs.pkg-config pkgs.llvmPackages.bintools pkgs.pax-utils pkgs.binutils ];
41 export ZIG_GLOBAL_CACHE_DIR=$PWD
43 zig build-exe main.c -femit-bin=$out/bin/test-zig $(pkg-config --cflags --libs gsl)
48 packages.test-gcc = pkgs.stdenv.mkDerivation {
51 buildInputs = [ pkgs.gsl pkgs.pkg-config pkgs.pax-utils pkgs.binutils ];
55 gcc main.c -o $out/bin/test-gcc $(pkg-config --cflags --libs gsl)
60 devShells.default = pkgs.mkShell {