86 lines
2.4 KiB
Nix
86 lines
2.4 KiB
Nix
{
|
|
description = "Swayfx development environment";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
|
|
systems.url = "github:nix-systems/default-linux";
|
|
|
|
flake-utils = {
|
|
url = "github:numtide/flake-utils";
|
|
inputs.systems.follows = "systems";
|
|
};
|
|
|
|
scenefx = {
|
|
url = "github:wlrfx/scenefx";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, flake-utils, scenefx, ... }:
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
let
|
|
pkgs = import nixpkgs { inherit system; };
|
|
scenefx-git = scenefx.packages.${system}.scenefx-git;
|
|
|
|
in {
|
|
packages = rec {
|
|
swayfx-unwrapped-git = pkgs.swayfx-unwrapped.overrideAttrs(old: {
|
|
version = "git";
|
|
src = pkgs.lib.cleanSource ./.;
|
|
nativeBuildInputs = with pkgs; [
|
|
meson
|
|
ninja
|
|
pkg-config
|
|
wayland-scanner
|
|
scdoc
|
|
];
|
|
buildInputs = with pkgs; [
|
|
libGL
|
|
wayland
|
|
libxkbcommon
|
|
pcre2
|
|
json_c
|
|
libevdev
|
|
pango
|
|
cairo
|
|
libinput
|
|
gdk-pixbuf
|
|
librsvg
|
|
wayland-protocols
|
|
libdrm
|
|
xorg.xcbutilwm
|
|
wlroots_0_19
|
|
] ++ [ scenefx-git ];
|
|
});
|
|
|
|
default = swayfx-unwrapped-git;
|
|
};
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
name = "swayfx-shell";
|
|
inputsFrom = [
|
|
self.packages.${system}.swayfx-unwrapped-git
|
|
scenefx-git
|
|
];
|
|
packages = [ pkgs.gdb ]; # add debugging packages
|
|
shellHook = ''
|
|
(
|
|
# Copy the nix version of wlroots and scenefx into the project
|
|
# This is useful if you want meson to use them as subprojects during manual dev/testing
|
|
mkdir -p "$PWD/subprojects" && cd "$PWD/subprojects"
|
|
if [ ! -d scenefx ]; then
|
|
echo "Copying scenefx to ./subprojects..."
|
|
cp -R --no-preserve=mode,ownership ${scenefx-git.src} scenefx
|
|
fi
|
|
cd "$OLDPWD"
|
|
) || echo "Failed to copy subproject sources."
|
|
'';
|
|
};
|
|
|
|
formatter = pkgs.nixfmt-rfc-style;
|
|
}
|
|
);
|
|
}
|
|
|