guix_mirror_bot pushed a commit to branch next-master
in repository guix.
commit 4a92f8749aa314829e08c6a59197b6938962814a
Author: Andrew Wong <[email protected]>
AuthorDate: Sun Dec 7 12:01:50 2025 -0500
gnu: Add projectm-sdl.
* gnu/packages/audio.scm (projectm-sdl): New variable.
Change-Id: I2bac86e6c08fdef858f7a1c5450f979b6af54738
Signed-off-by: Gabriel Wicki <[email protected]>
---
gnu/packages/audio.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index f3cdb0fa1b..80ac90df95 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -155,6 +155,7 @@
#:use-module (gnu packages telephony)
#:use-module (gnu packages tex)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages toolkits)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
@@ -4399,6 +4400,55 @@ visualizer. This package contains only the libprojectm
library.")
meant to be included in any projectM-based application.")
(license license:public-domain))))
+(define-public projectm-sdl
+ (let ((source-commit "72e5632897c9d9bef452c679d3cbe8c7b4bb4157")
+ (revision "0"))
+ (package
+ (name "projectm-sdl")
+ (version (git-version "0" revision source-commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/projectM-visualizer/frontend-sdl-cpp")
+ (commit source-commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14vsjn589lrcwkz0d4528i33aslqsgh7m17kxj0fyd21pwj5n54l"))
+ (modules '((guix build utils)))
+ ;;There are no icon files to install.
+ (snippet #~(substitute* "install.cmake" (("install_icon.+") "")))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f ;There are no tests.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'link-imgui
+ (lambda* (#:key inputs #:allow-other-keys)
+ (begin (delete-file-recursively "vendor/imgui")
+ (symlink (assoc-ref %build-inputs "imgui-source")
+ "vendor/imgui")))))
+ #:configure-flags
+ #~(list
+ ;; There are texture repositories from both ProjectM and
+ ;; Milkdrop, but their licensing is unclear, so they are not
+ ;; packaged. ProjectM functions fine with only presets.
+ (string-append "-DDEFAULT_PRESETS_PATH="
+ (assoc-ref %build-inputs "projectm-presets"))
+ ;; The config location search path can be changed, but the
+ ;; install path stays the same, so only this value works.
+ ;; And without it, only the binary's path is checked.
+ (string-append "-DDEFAULT_CONFIG_PATH="
+ #$output "/share/projectMSDL/"))))
+ (inputs (list freetype poco projectm projectm-presets sdl2))
+ (native-inputs (list `("imgui-source" ,(package-source imgui))))
+ (home-page "https://github.com/projectM-visualizer/frontend-sdl-cpp")
+ (synopsis "Reference frontend for the libprojectm music visualizer")
+ (description "This is a simple Milkdrop-like music visualizer that uses
+the projectM library to visualize audio input.")
+ (license license:gpl3+)))) ;presets
+
(define-public qjackctl
(package
(name "qjackctl")