Files
TeleportFling/flake.nix
T
petere b6e7485786 build: allow Nix spa cflags in cgo builds
libspa-0.2.pc ships -fno-strict-aliasing/-fno-strict-overflow which Go's
cgo rejects unless explicitly allowed. This unblocks the PipeWire capture
dependency (go2tv.app/screencast) which uses #cgo pkg-config.
2026-09-18 19:19:16 +01:00

49 lines
1.3 KiB
Nix

{
description = "TeleportFling Development Environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
devShells.default = pkgs.mkShell {
inputsFrom = [];
nativeBuildInputs = with pkgs; [
go
golangci-lint
pkg-config
gopls
nixd
nodejs
gitea-mcp-server
];
buildInputs = with pkgs; [
git
direnv
nix-direnv
libjpeg_turbo
pipewire
xdg-desktop-portal
];
# Make turbojpeg resolve via pkg-config for cgo builds.
PKG_CONFIG_PATH = "${pkgs.libjpeg_turbo.dev}/lib/pkgconfig";
LD_LIBRARY_PATH = "${pkgs.libjpeg_turbo.out}/lib";
# Nix's libspa-0.2.pc emits -fno-strict-aliasing/-fno-strict-overflow
# which Go's cgo rejects unless explicitly allowed.
CGO_CFLAGS_ALLOW = "-fno-strict-overflow|-fno-strict-aliasing";
shellHook = ''
echo "TeleportFling dev shell ready!"
'';
};
});
}