summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--docs/guide/libraries/cava.md2
-rw-r--r--flake.nix1
-rw-r--r--lib/cava/meson.build2
-rw-r--r--lib/cava/version1
-rw-r--r--nix/libcava.nix60
6 files changed, 65 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index f047207..5459a17 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
build/
result
+result-dev
.cache/
test.sh
tmp/
diff --git a/docs/guide/libraries/cava.md b/docs/guide/libraries/cava.md
index bbd5f4f..e695e16 100644
--- a/docs/guide/libraries/cava.md
+++ b/docs/guide/libraries/cava.md
@@ -67,7 +67,7 @@ cava
:::code-group
```js [<i class="devicon-javascript-plain"></i> JavaScript]
-import Wp from "gi://AstalCava"
+import Cava from "gi://AstalCava"
const cava = Cava.get_default()
diff --git a/flake.nix b/flake.nix
index 8b8f739..e0f6122 100644
--- a/flake.nix
+++ b/flake.nix
@@ -50,6 +50,7 @@
auth = mkPkg "astal-auth" ./lib/auth [pam];
battery = mkPkg "astal-battery" ./lib/battery [json-glib];
bluetooth = mkPkg "astal-bluetooth" ./lib/bluetooth [];
+ cava = mkPkg "astal-cava" ./lib/cava [(pkgs.callPackage ./nix/libcava.nix {})];
hyprland = mkPkg "astal-hyprland" ./lib/hyprland [json-glib];
mpris = mkPkg "astal-mpris" ./lib/mpris [gvfs json-glib];
network = mkPkg "astal-network" ./lib/network [networkmanager];
diff --git a/lib/cava/meson.build b/lib/cava/meson.build
index 7d4bc4f..227a5e2 100644
--- a/lib/cava/meson.build
+++ b/lib/cava/meson.build
@@ -1,7 +1,7 @@
project(
'astal-cava',
'c',
- version: '0.1.0',
+ version: run_command('cat', join_paths(meson.project_source_root(), 'version')).stdout().strip(),
default_options: ['c_std=gnu11', 'warning_level=3', 'prefix=/usr'],
)
diff --git a/lib/cava/version b/lib/cava/version
new file mode 100644
index 0000000..6e8bf73
--- /dev/null
+++ b/lib/cava/version
@@ -0,0 +1 @@
+0.1.0
diff --git a/nix/libcava.nix b/nix/libcava.nix
new file mode 100644
index 0000000..866599d
--- /dev/null
+++ b/nix/libcava.nix
@@ -0,0 +1,60 @@
+{
+ stdenv,
+ fetchFromGitHub,
+ autoreconfHook,
+ autoconf-archive,
+ alsa-lib,
+ fftw,
+ iniparser,
+ libpulseaudio,
+ portaudio,
+ sndio,
+ SDL2,
+ libGL,
+ pipewire,
+ jack2,
+ ncurses,
+ pkgconf,
+ meson,
+ ninja,
+}:
+stdenv.mkDerivation rec {
+ pname = "cava";
+ version = "0.10.3";
+
+ src = fetchFromGitHub {
+ owner = "LukashonakV";
+ repo = "cava";
+ rev = "0.10.3";
+ hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg=";
+ };
+
+ buildInputs = [
+ alsa-lib
+ libpulseaudio
+ ncurses
+ iniparser
+ sndio
+ SDL2
+ libGL
+ portaudio
+ jack2
+ pipewire
+ ];
+
+ propagatedBuildInputs = [
+ fftw
+ ];
+
+ nativeBuildInputs = [
+ autoreconfHook
+ autoconf-archive
+ pkgconf
+ meson
+ ninja
+ ];
+
+ preAutoreconf = ''
+ echo ${version} > version
+ '';
+}