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.
49 lines
1.3 KiB
Nix
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!"
|
|
'';
|
|
};
|
|
});
|
|
}
|