Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
scenefx/flake.nix (1.8K)
1 {
2 description = "Scenefx development environment";
3
4 inputs = {
5 nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
6
7 systems.url = "github:nix-systems/default-linux";
8
9 flake-utils = {
10 url = "github:numtide/flake-utils";
11 inputs.systems.follows = "systems";
12 };
13 };
14
15 outputs = { self, nixpkgs, flake-utils, ... }:
16 flake-utils.lib.eachDefaultSystem (system:
17 let
18 pkgs = import nixpkgs { inherit system; };
19
20 in {
21 packages = rec {
22 scenefx-git = pkgs.stdenv.mkDerivation {
23 pname = "scenefx";
24 version = "git";
25 src = ./.;
26 outputs = [
27 "out"
28 "lib"
29 ];
30
31 nativeBuildInputs = with pkgs; [
32 pkg-config
33 meson
34 cmake
35 ninja
36 scdoc
37 wayland-scanner
38 ];
39
40 buildInputs = with pkgs; [
41 libdrm
42 libxkbcommon
43 pixman
44 libGL # egl
45 mesa # gbm
46 wayland # wayland-server
47 wayland-protocols
48 wlroots_0_20
49 libgbm
50 libxcb
51 libxcb-wm
52 lcms2
53 ];
54
55 meta = with pkgs.lib; {
56 description = "A drop-in replacement for the wlroots scene API that allows wayland compositors to render surfaces with eye-candy effects";
57 homepage = "https://github.com/wlrfx/scenefx";
58 license = licenses.mit;
59 platforms = platforms.linux;
60 };
61 };
62
63 default = scenefx-git;
64 };
65
66 devShells.default = pkgs.mkShell {
67 name = "scenefx-shell";
68 inputsFrom = [ self.packages.${system}.scenefx-git ];
69 hardeningDisable = [ "fortify" ];
70 };
71
72 formatter = pkgs.nixfmt;
73 }
74 );
75 }
76