47 lines
1.3 KiB
Nix
47 lines
1.3 KiB
Nix
{
|
|
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;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|