summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorozwaldorf <[email protected]>2024-04-18 23:51:51 -0400
committerGitHub <[email protected]>2024-04-18 23:51:51 -0400
commit4b954d5a05d986afcaaf488e744c5566a2d031ef (patch)
tree5013ea270ce3602cf215b626b0599fd9b7ece286
parent40a5ebf109ead3f0d9c2fc3ab11a2a62d8ab3fba (diff)
flake: update for swayfx 0.4 (#284)
-rw-r--r--flake.lock43
-rw-r--r--flake.nix97
2 files changed, 92 insertions, 48 deletions
diff --git a/flake.lock b/flake.lock
index e99f60b5..e383db5a 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,27 @@
"nodes": {
"nixpkgs": {
"locked": {
- "lastModified": 1712192574,
- "narHash": "sha256-LbbVOliJKTF4Zl2b9salumvdMXuQBr2kuKP5+ZwbYq4=",
+ "lastModified": 1713349283,
+ "narHash": "sha256-2bjFu3+1zPWZPPGqF+7rumTvEwmdBHBhjPva/AMSruQ=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "f480f9d09e4b4cf87ee6151eba068197125714de",
+ "rev": "2e359fb3162c85095409071d131e08252d91a14f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1713128889,
+ "narHash": "sha256-aB90ZqzosyRDpBh+rILIcyP5lao8SKz8Sr2PSWvZrzk=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "2748d22b45a99fb2deafa5f11c7531c212b2cefa",
"type": "github"
},
"original": {
@@ -18,7 +34,26 @@
},
"root": {
"inputs": {
- "nixpkgs": "nixpkgs"
+ "nixpkgs": "nixpkgs",
+ "scenefx": "scenefx"
+ }
+ },
+ "scenefx": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_2"
+ },
+ "locked": {
+ "lastModified": 1713495445,
+ "narHash": "sha256-dMvGkhjt72NznwI57HLR+Oc6QMctf16W4zI1XYuwnZI=",
+ "owner": "wlrfx",
+ "repo": "scenefx",
+ "rev": "5ada125a56012923c47fcf3d049fab32eb7104ff",
+ "type": "github"
+ },
+ "original": {
+ "owner": "wlrfx",
+ "repo": "scenefx",
+ "type": "github"
}
}
},
diff --git a/flake.nix b/flake.nix
index ab09cb94..21314d67 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,66 +1,75 @@
{
description = "Swayfx development environment";
- inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+ scenefx.url = "github:wlrfx/scenefx";
+ };
outputs =
- { self, nixpkgs, ... }:
+ {
+ self,
+ nixpkgs,
+ scenefx,
+ ...
+ }:
let
- pkgsFor = system: import nixpkgs { inherit system; };
- targetSystems = [
- "aarch64-linux"
- "x86_64-linux"
- ];
mkPackage = pkgs: {
swayfx-unwrapped =
- (pkgs.swayfx-unwrapped.override {
- # When the sway 1.9 rebase is finished, this will need to be overridden.
- # wlroots_0_16 = pkgs.wlroots_0_16;
- }).overrideAttrs
+ (pkgs.swayfx-unwrapped.override { wlroots_0_16 = pkgs.wlroots_0_17; }).overrideAttrs
(old: {
- version = "0.3.2-git";
+ version = "0.4.0-git";
src = pkgs.lib.cleanSource ./.;
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.cmake ];
+ buildInputs = old.buildInputs ++ [ pkgs.scenefx ];
});
};
+
+ targetSystems = [
+ "aarch64-linux"
+ "x86_64-linux"
+ ];
+ pkgsFor =
+ system:
+ import nixpkgs {
+ inherit system;
+ overlays = [ scenefx.overlays.insert ];
+ };
+ forEachSystem = f: nixpkgs.lib.genAttrs targetSystems (system: f (pkgsFor system));
in
{
overlays = rec {
default = insert;
- # Override onto the input nixpkgs
- override = _: prev: mkPackage prev;
- # Insert using the locked nixpkgs
+ # Insert using the locked nixpkgs. Can be used with any nixpkgs version.
insert = _: prev: mkPackage (pkgsFor prev.system);
+ # Override onto the input nixpkgs. Users *MUST* have a scenefx overlay
+ # used before this overlay, otherwise pkgs.scenefx will be unavailable
+ override = _: prev: mkPackage prev;
};
- packages = nixpkgs.lib.genAttrs targetSystems (
- system: (mkPackage (pkgsFor system) // { default = self.packages.${system}.swayfx-unwrapped; })
+ packages = forEachSystem (
+ pkgs: (mkPackage pkgs // { default = self.packages.${pkgs.system}.swayfx-unwrapped; })
);
- devShells = nixpkgs.lib.genAttrs targetSystems (
- system:
- let
- pkgs = pkgsFor system;
- in
- {
- default = pkgs.mkShell {
- name = "swayfx-shell";
- inputsFrom = [
- self.packages.${system}.swayfx-unwrapped
- pkgs.wlroots_0_17
- ];
- nativeBuildInputs = with pkgs; [
- cmake
- wayland-scanner
- hwdata # for wlroots
- ];
- # Copy the nix version of wlroots into the project
- shellHook = with pkgs; ''
- (
- mkdir -p "$PWD/subprojects" && cd "$PWD/subprojects"
- cp -R --no-preserve=mode,ownership ${wlroots_0_17.src} wlroots
- )'';
- };
- }
- );
+ devShells = forEachSystem (pkgs: {
+ default = pkgs.mkShell {
+ name = "swayfx-shell";
+ inputsFrom = [
+ self.packages.${pkgs.system}.swayfx-unwrapped
+ pkgs.wlroots_0_17
+ pkgs.scenefx
+ ];
+ packages = with pkgs; [
+ gdb # for debugging
+ ];
+ shellHook = ''
+ (
+ # Copy the nix version of wlroots and scenefx into the project
+ mkdir -p "$PWD/subprojects" && cd "$PWD/subprojects"
+ cp -R --no-preserve=mode,ownership ${pkgs.wlroots_0_17.src} wlroots
+ cp -R --no-preserve=mode,ownership ${pkgs.scenefx.src} scenefx
+ )'';
+ };
+ });
- formatter = nixpkgs.lib.genAttrs targetSystems (system: (pkgsFor system).nixfmt-rfc-style);
+ formatter = forEachSystem (pkgs: pkgs.nixfmt-rfc-style);
};
}