File cava.spec of Package cava

#
# spec file for package cava
#
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%global _lto_cflags %{nil}
Name:           cava
Version:        0.10.4
Release:        0
Summary:        Console-based Audio Visualizer for Alsa
License:        MIT
Group:          Productivity/Multimedia/Sound/Visualization
URL:            https://github.com/karlstav/cava
Source:         https://github.com/karlstav/%{name}/archive/%{version}.tar.gz
Patch1:         cmakelist.patch
BuildRequires:  alsa-devel
BuildRequires:  fftw3-devel
# Use system ini parser instead of building own lib
BuildRequires:  libiniparser-devel >= 4.0
BuildRequires:  SDL2
BuildRequires:  SDL2_image-devel
BuildRequires:  SDL2_mixer-devel
BuildRequires:  SDL2_sound-devel
BuildRequires:  automake
BuildRequires:  cmake
BuildRequires:  gcc-c++
BuildRequires:  glibc-devel
BuildRequires:  libpulse-devel
BuildRequires:  libtool
BuildRequires:  ncurses-devel
BuildRequires:  ninja
BuildRequires:  pipewire-devel
BuildRequires:  pkgconfig
BuildRequires:  portaudio-devel
# Installing the psf in a directory that comes from kbd
Requires:       kbd

%description
C.A.V.A. is a bar spectrum audio visualizer for the Linux terminal using ALSA, pulseaudio or fifo buffer for input.

%package        devel
Provides:       cavacore-devel
Summary:        Development files for %{name}
Group:          Development/Libraries/Other

%description    devel
Development files and libraries for cava and cavacore.

%prep
%autosetup -p1
./autogen.sh
%configure FONT_DIR="%{_datadir}/kbd/consolefonts"

%build
%cmake
%cmake_build
%make_build

%install
pushd %{builddir}/%{buildsubdir}/build
mkdir -p %{buildroot}/%{_libdir}
cp libcavacore.so %{buildroot}/%{_libdir}/libcavacore.so
popd
mkdir -p %{buildroot}/%{_includedir}/cava/input/
cp input/*.h %{buildroot}/%{_includedir}/cava/input/
mkdir -p %{buildroot}/%{_includedir}/cava/output/
cp output/*.h %{buildroot}/%{_includedir}/cava/output/
cp *.h %{buildroot}/%{_includedir}/cava/
ln -sfv %{_libdir}/libcavacore.so %{buildroot}%{_libdir}/libcava.so

mkdir -p %{buildroot}%{_libdir}/pkgconfig/
cat > %{buildroot}%{_libdir}/pkgconfig/cava.pc <<-SH
prefix=/usr
includedir=${prefix}/include
libdir=${prefix}/lib64

Name:           cava
Description: Cross-platform Audio Visualizer
URL:            https://github.com/karlstav/cava
Version:        %{version}
Libs: -L${libdir} -lcava -lcavacore
Cflags: -I${includedir}
SH

%make_install

%files devel
%dir %{_includedir}/cava
%dir %{_includedir}/cava/input
%dir %{_includedir}/cava/output
%{_includedir}/cava/cavacore.h
%{_includedir}/cava/config.h
%{_includedir}/cava/debug.h
%{_includedir}/cava/util.h
%{_includedir}/cava/input/alsa.h
%{_includedir}/cava/input/common.h
%{_includedir}/cava/input/fifo.h
%{_includedir}/cava/input/jack.h
%{_includedir}/cava/input/oss.h
%{_includedir}/cava/input/pipewire.h
%{_includedir}/cava/input/portaudio.h
%{_includedir}/cava/input/pulse.h
%{_includedir}/cava/input/shmem.h
%{_includedir}/cava/input/sndio.h
%{_includedir}/cava/input/winscap.h
%{_includedir}/cava/output/noritake.h
%{_includedir}/cava/output/raw.h
%{_includedir}/cava/output/sdl_cava.h
%{_includedir}/cava/output/sdl_glsl.h
%{_includedir}/cava/output/terminal_bcircle.h
%{_includedir}/cava/output/terminal_ncurses.h
%{_includedir}/cava/output/terminal_noncurses.h
%{_libdir}/libcava.so
%{_libdir}/libcavacore.so
%{_libdir}/pkgconfig/cava.pc

%files
%license LICENSE
%doc README.md
%{_bindir}/cava
%dir %{_datadir}/kbd/
%dir %{_datadir}/kbd/consolefonts/
%{_datadir}/kbd/consolefonts/cava.psf

%changelog
openSUSE Build Service is sponsored by