Files
radiantwave-legacy/flake.nix
T
NeilClack 312f5e2a90
build-prod.yml / build (push) Failing after 2s
build-dev.yml / build (push) Failing after 2s
Rename rhemawave to radiantwave throughout
2026-08-08 01:20:11 -05:00

117 lines
3.0 KiB
Nix

{
description = "RadiantWave";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{
self,
nixpkgs,
flake-utils,
}:
nixpkgs.lib.recursiveUpdate
(flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfreePredicate = pkg: (nixpkgs.lib.getName pkg) == "radiantwave";
};
buildInputs = with pkgs; [
SDL2
SDL2_ttf
SDL2_image
SDL2_mixer
sqlite
] ++ pkgs.lib.optionals pkgs.stdenv.isLinux [
dbus
libGL
wayland
wayland-protocols
libxkbcommon
libdecor
libx11
libxext
]; # Darwin: system SDK provides OpenGL, AppKit, etc. automatically
nativeBuildInputs = with pkgs; [
go
pkg-config
];
in
{
packages.default = pkgs.buildGoModule {
pname = "radiantwave";
version = "v1.0.0";
src = ./.;
vendorHash = null;
inherit buildInputs nativeBuildInputs;
env.CGO_ENABLED = "1";
preBuild = ''
export CGO_CFLAGS="$(pkg-config --cflags SDL2_mixer SDL2_ttf SDL2_image) $CGO_CFLAGS"
export CGO_LDFLAGS="$(pkg-config --libs SDL2_mixer SDL2_ttf SDL2_image) $CGO_LDFLAGS"
'';
ldflags = [
"-s"
"-w"
];
postInstall = ''
mkdir -p $out/share/radiantwave
cp -r share/radiantwave/* $out/share/radiantwave/
'';
meta = with pkgs.lib; {
description = "RadiantWave kiosk application";
license = licenses.unfree;
platforms = platforms.linux ++ platforms.darwin;
};
};
devShells.default = pkgs.mkShell {
inherit buildInputs nativeBuildInputs;
shellHook = ''
export OLD_PS1="$PS1"
export PS1="[nix-env] $OLD_PS1"
export CGO_CFLAGS="$(pkg-config --cflags SDL2_mixer SDL2_ttf SDL2_image) $CGO_CFLAGS"
export CGO_LDFLAGS="$(pkg-config --libs SDL2_mixer SDL2_ttf SDL2_image) $CGO_LDFLAGS"
echo "RadiantWave dev shell"
echo " go version: $(go version)"
echo " CGO_ENABLED=1"
echo ""
echo "Build: go build -o bin/radiantwave ."
echo "Run: ./bin/radiantwave"
'';
};
}
))
{
nixosModules.default = import ./nixos/module.nix self;
nixosConfigurations.test-vm = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
"${nixpkgs}/nixos/modules/virtualisation/qemu-vm.nix"
self.nixosModules.default
./nixos/vm.nix
];
};
packages.x86_64-linux.test-vm =
self.nixosConfigurations.test-vm.config.system.build.vm;
};
}