From 50d3fbe28f1885f512c096b8cc37dcd6f5708b42 Mon Sep 17 00:00:00 2001 From: Mihai Fufezan Date: Tue, 18 Apr 2023 21:00:31 +0300 Subject: [PATCH] hyprbars: add meson.build --- flake.lock | 35 ++++++++++++++++++----------------- flake.nix | 3 +-- hyprbars/barDeco.cpp | 4 ++-- hyprbars/barDeco.hpp | 4 ++-- hyprbars/default.nix | 38 ++++++++++---------------------------- hyprbars/globals.hpp | 2 +- hyprbars/main.cpp | 6 +++--- hyprbars/meson.build | 24 ++++++++++++++++++++++++ 8 files changed, 61 insertions(+), 55 deletions(-) create mode 100644 hyprbars/meson.build diff --git a/flake.lock b/flake.lock index df7e5e4..c1beac7 100644 --- a/flake.lock +++ b/flake.lock @@ -8,15 +8,16 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1680031067, - "narHash": "sha256-kwywAAnHTx3IohvHDbhgsQjrHdN6ewE/vX+E/9oWmFc=", - "owner": "hyprwm", + "lastModified": 1681840534, + "narHash": "sha256-ONdSYWg+J+XonOPTj8Nc8zcrbyTWolEY0vzqc95H6ZQ=", + "owner": "horriblename", "repo": "Hyprland", - "rev": "d6241a3086c4abfd21e91e23c83c97c3f80123d4", + "rev": "67fd467920535024fa59b39ce965f42537e89b90", "type": "github" }, "original": { - "owner": "hyprwm", + "owner": "horriblename", + "ref": "nix-pluginenv", "repo": "Hyprland", "type": "github" } @@ -29,11 +30,11 @@ ] }, "locked": { - "lastModified": 1671839510, - "narHash": "sha256-+PY1qqJfmZzzROgcIY4I7AkCwpnC+qBIYk2eFoA9RWc=", + "lastModified": 1681065697, + "narHash": "sha256-QPzwwlGKX95tl6ZEshboZbEwwAXww6lNLdVYd6T9Mrc=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "b8f55e02a328c47ed373133c52483bbfa20a1b75", + "rev": "4d29e48433270a2af06b8bc711ca1fe5109746cd", "type": "github" }, "original": { @@ -44,11 +45,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1679172431, - "narHash": "sha256-XEh5gIt5otaUbEAPUY5DILUTyWe1goAyeqQtmwaFPyI=", + "lastModified": 1681557730, + "narHash": "sha256-j2E3639kS3Qop2jQPyqWCdenZNaqIdxfoTvAHnGuAGI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1603d11595a232205f03d46e635d919d1e1ec5b9", + "rev": "85b081528b937df4bfcaee80c3541b58f397df8b", "type": "github" }, "original": { @@ -67,11 +68,11 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1679340088, - "narHash": "sha256-/1KiYoBivDj8HC/eVK2Tr2WYkVdKJxq2Lb0tQs0qqJo=", + "lastModified": 1680810405, + "narHash": "sha256-LmI/4Yp/pOOoI4RxLRx9I90NBsiqdRLVOfbATKlgpkg=", "owner": "wlroots", "repo": "wlroots", - "rev": "1d64e12391a638201c679e71d4e22bb45e5faa8e", + "rev": "7abda952d0000b72d240fe1d41457b9288f0b6e5", "type": "gitlab" }, "original": { @@ -93,11 +94,11 @@ ] }, "locked": { - "lastModified": 1673116118, - "narHash": "sha256-eR0yDSkR2XYMesfdRWJs25kAdXET2mbNNHu5t+KUcKA=", + "lastModified": 1681127512, + "narHash": "sha256-vklOOhBj5W8fii6yN4L2WY5ZeifBmsq3+mJ2wC1Pk9U=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "d479c846531fd0e1d2357c9588b8310a2b859ef2", + "rev": "04f579377a32781ce57c9cf4ba2a5bcb7f53fa97", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 6168563..6dbf613 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - inputs.hyprland.url = "github:hyprwm/Hyprland"; + inputs.hyprland.url = "github:horriblename/Hyprland/nix-pluginenv"; outputs = { self, @@ -11,7 +11,6 @@ packages = withPkgsFor (system: pkgs: { hyprbars = pkgs.callPackage ./hyprbars { inherit (hyprland.packages.${system}) hyprland; - wlroots = hyprland.packages.${system}.wlroots-hyprland; }; }); }; diff --git a/hyprbars/barDeco.cpp b/hyprbars/barDeco.cpp index 7a451a7..e112816 100644 --- a/hyprbars/barDeco.cpp +++ b/hyprbars/barDeco.cpp @@ -1,7 +1,7 @@ #include "barDeco.hpp" -#include -#include +#include +#include #include "globals.hpp" diff --git a/hyprbars/barDeco.hpp b/hyprbars/barDeco.hpp index ef59508..a52cf0f 100644 --- a/hyprbars/barDeco.hpp +++ b/hyprbars/barDeco.hpp @@ -2,8 +2,8 @@ #define WLR_USE_UNSTABLE -#include -#include +#include +#include #include "globals.hpp" class CHyprBar : public IHyprWindowDecoration { diff --git a/hyprbars/default.nix b/hyprbars/default.nix index d4913df..9a1469d 100644 --- a/hyprbars/default.nix +++ b/hyprbars/default.nix @@ -1,39 +1,21 @@ { + lib, stdenv, hyprland, - pkg-config, - pixman, - libdrm, - wlroots, }: stdenv.mkDerivation { name = "hyprbars"; + version = "0.1"; src = ./.; - preConfigure = "rm Makefile"; - nativeBuildInputs = [ - pkg-config - ]; + inherit (hyprland) nativeBuildInputs; - buildInputs = [ - pixman - libdrm - wlroots - ]; + buildInputs = [hyprland] ++ hyprland.buildInputs; - buildPhase = '' - trap "set +x" err - set -xeu - - $CXX --no-gnu-unique -shared \ - -std=c++23 \ - $(pkg-config --cflags pixman-1) \ - $(pkg-config --cflags libdrm) \ - $(pkg-config --cflags wlroots) \ - -I${hyprland.src}/ \ - main.cpp barDeco.cpp \ - -o $out - - set +x - ''; + meta = with lib; { + homepage = "https://github.com/hyprwm/hyprland-plugins"; + description = "Hyprland window bar plugin"; + license = licenses.bsd3; + platforms = platforms.linux; + }; } diff --git a/hyprbars/globals.hpp b/hyprbars/globals.hpp index 37e8363..2257475 100644 --- a/hyprbars/globals.hpp +++ b/hyprbars/globals.hpp @@ -1,5 +1,5 @@ #pragma once -#include +#include inline HANDLE PHANDLE = nullptr; \ No newline at end of file diff --git a/hyprbars/main.cpp b/hyprbars/main.cpp index 9fe4e6e..510b0af 100644 --- a/hyprbars/main.cpp +++ b/hyprbars/main.cpp @@ -3,9 +3,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include "barDeco.hpp" #include "globals.hpp" diff --git a/hyprbars/meson.build b/hyprbars/meson.build new file mode 100644 index 0000000..e9dec87 --- /dev/null +++ b/hyprbars/meson.build @@ -0,0 +1,24 @@ +project('hyprbars', 'cpp', + version: '0.1', + default_options: ['buildtype=release'], +) + +cpp_compiler = meson.get_compiler('cpp') +if cpp_compiler.has_argument('-std=c++23') + add_global_arguments('-std=c++23', language: 'cpp') +elif cpp_compiler.has_argument('-std=c++2b') + add_global_arguments('-std=c++2b', language: 'cpp') +else + error('Could not configure current C++ compiler (' + cpp_compiler.get_id() + ' ' + cpp_compiler.version() + ') with required C++ standard (C++23)') +endif + +globber = run_command('find', '.', '-name', '*.cpp', check: true) +src = globber.stdout().strip().split('\n') + +shared_module('hyprbars', src, + dependencies: [ + dependency('pixman-1'), + dependency('libdrm') + ], + install: true, +)