Files
radiantwave-legacy/flake.nix
T

113 lines
2.8 KiB
Nix

{
description = "RhemaWave";
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 = import nixpkgs {
inherit system;
config.allowUnfreePredicate = pkg: (nixpkgs.lib.getName pkg) == "rhemawave";
};
buildInputs = with pkgs; [
SDL2
SDL2_ttf
SDL2_image
SDL2_mixer
libGL
sqlite
dbus
wayland
wayland-protocols
libxkbcommon
libdecor
libx11
libxext
];
nativeBuildInputs = with pkgs; [
go
pkg-config
];
in
{
packages.default = pkgs.buildGoModule {
pname = "rhemawave";
version = "v1.1.1";
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 = ''
# Create the destination
mkdir -p $out/share/rhemawave
# Update ownership
chown -R kiosk:kiosk /home/kiosk/.local/share/rhemawave
# Update permissions
chmod -R 770 /home/kiosk/.local/share/rhemawave
# Copy everything from your local share/rhemawave/* into the store
cp -r share/rhemawave/* $out/share/rhemawave/
'';
meta = with pkgs.lib; {
description = "RhemaWave kiosk application";
license = licenses.unfree;
platforms = platforms.linux;
};
};
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 "RhemaWave dev shell"
echo " go version: $(go version)"
echo " CGO_ENABLED=1"
echo ""
echo "Build: go build -o bin/rhemawave rhemawave.go"
echo "Run: ./bin/rhemawave"
echo "Reset: ./dev_scripts/reset.sh"
'';
};
}
))
// {
nixosModules.default = import ./nixos/module.nix self;
};
}