Fil-C on Nix

Filnix wiki

mbrock/filnix

tests/pipewire-consumers.nix

let
2f=
builtins.getFlaketoString../.
used by libc native p
3native=
importf.inputs.nixpkgs system = "x86_64-linux";
uses f used by cavaRuntime client runtime
4p=
f.legacyPackages.x86_64-linux.pkgsFilc
5libc=
f.packages.x86_64-linux.filcc.filc-glibc
uses f used by cavaRuntime runtime
6client=
λmajor dependency
p.stdenv.mkDerivation
9name=
"pipewire-sdl${toStringmajor}-client"
10dontUnpack=
true
11nativeBuildInputs=
native.pkg-config
12buildInputs=
13buildPhase=
$CC ${native.lib.optionalStringmajor ≡ 3 "-DSDL_THREE"} \
-O2 -Werror ${./pipewire-sdl.c} \
$(pkg-config --cflags --libs sdl${toStringmajor}) -o client
18installPhase=
''install -Dm755 client "$out/bin/client"''
20sdl3Client=
client3 p.sdl3
uses client p used by runtime
21sdl2Client=
client2 p.sdl2-compat
uses client p used by runtime
in
24inherit
sdl3Client sdl2Client
25inherit p
pipewire sdl3 sdl2-compat cava wireplumber
32cavaRuntime=
native.runCommand"cava-runtime-check" { }
${native.python3}/bin/python ${./cava-runtime.py} \
${p.cava}/bin/cava ${libc} > "$out"
uses libc native p
36runtime=
native.runCommand"pipewire-consumers-runtime-check" { }
${native.python3}/bin/python ${./pipewire-runtime.py} \
--pipewire ${p.pipewire} --libc ${libc} \
--wireplumber ${p.wireplumber}/bin/wireplumber \
--client ${sdl3Client}/bin/client --client ${sdl2Client}/bin/client \
--wpctl ${p.wireplumber}/bin/wpctl > "$out"