{ inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; outputs = { self, nixpkgs }: let lib = nixpkgs.lib; forAllSystems = func: lib.genAttrs lib.systems.flakeExposed (system: func (import nixpkgs { inherit system; })); in { devShells = forAllSystems (pkgs: { default = pkgs.mkShell { packages = with pkgs; [ clang-tools gdb ]; }; }); packages = forAllSystems (pkgs: { default = self.packages.${pkgs.stdenv.hostPlatform.system}.qstn; qstn = pkgs.stdenv.mkDerivation (finalAttrs: { pname = "qstn"; version = "0.0.1"; src = ./.; buildPhase = '' mkdir -p $out/bin $CC -s -O3 --std=c17 -Wall -Wpedantic -Werror main.c -o $out/bin/qstn ''; meta.mainProgram = "qstn"; }); }); nixosModules = { default = self.nixosModules.qstn; qstn = { pkgs, lib, ... }: { boot.binfmt.registrations.qstn = { wrapInterpreterInShell = false; recognitionType = "magic"; magicOrExtension = "#?"; interpreter = lib.getExe self.packages.${pkgs.stdenv.hostPlatform.system}.qstn; }; }; }; }; }