diff --git a/flake.nix b/flake.nix index 31205b2..3d16b47 100644 --- a/flake.nix +++ b/flake.nix @@ -23,6 +23,10 @@ inherit (hyprland.packages.${system}) hyprland; stdenv = pkgs.gcc13Stdenv; }; + hyprtrails = pkgs.callPackage ./hyprtrails { + inherit (hyprland.packages.${system}) hyprland; + stdenv = pkgs.gcc13Stdenv; + }; }); devShells = withPkgsFor (system: pkgs: { diff --git a/hyprtrails/default.nix b/hyprtrails/default.nix new file mode 100644 index 0000000..37abc48 --- /dev/null +++ b/hyprtrails/default.nix @@ -0,0 +1,21 @@ +{ + lib, + stdenv, + hyprland, +}: +stdenv.mkDerivation { + pname = "hyprtrails"; + version = "0.1"; + src = ./.; + + inherit (hyprland) nativeBuildInputs; + + buildInputs = [hyprland] ++ hyprland.buildInputs; + + meta = with lib; { + homepage = "https://github.com/hyprwm/hyprland-plugins"; + description = "Smooth trails behind moving windows for Hyprland"; + license = licenses.bsd3; + platforms = platforms.linux; + }; +} diff --git a/hyprtrails/meson.build b/hyprtrails/meson.build new file mode 100644 index 0000000..2a4993f --- /dev/null +++ b/hyprtrails/meson.build @@ -0,0 +1,33 @@ +project('hyprtrails', '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 + +add_project_arguments( + [ + '-Wno-narrowing', + ], + language: 'cpp') + +globber = run_command('find', '.', '-name', '*.cpp', check: true) +src = globber.stdout().strip().split('\n') + +hyprland = dependency('hyprland') + +shared_module(meson.project_name(), src, + dependencies: [ + dependency('hyprland'), + dependency('pixman-1'), + dependency('libdrm'), + ], + install: true, +)