diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2023-03-20 22:36:39 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2023-03-21 00:02:59 +0100 |
commit | fa0c6defebed5d59c1319ec621568b1ec4ba71db (patch) | |
tree | 0622de8f986c849e9fac4f9a7c2062f251b2d753 | |
parent | 30f4b3a7e87f6d89d36dad63d8c5a8d065050563 (diff) | |
download | guix-fa0c6defebed5d59c1319ec621568b1ec4ba71db.tar.gz |
gnu: Add ctrlr.
* gnu/packages/music.scm (ctrlr): New variable.
-rw-r--r-- | gnu/packages/music.scm | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index acedfd4a26..dbcb7e4564 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -122,6 +122,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages game-development) + #:use-module (gnu packages gcc) #:use-module (gnu packages gnupg) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) @@ -478,6 +479,70 @@ playing your music.") ;; qocoa is under MIT and CC by-sa for the icons. license:cc-by-sa3.0)))) +(define-public ctrlr + ;; The latest release from 2021 does not have a build system. + (let ((commit "8aa00d82127acda42ad9ac9b7b479461e9436aa4") + (revision "1")) + (package + (name "ctrlr") + (version (git-version "5.5.9" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/RomanKubiak/ctrlr") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lpfkjp9y0wh2kj02isv8ixnxn3wyvrxhkx0rybwzswfiz5kqdlm")))) + (build-system cmake-build-system) + (arguments + (list + #:cmake cmake ;needs 3.25 + #:tests? #false ;there are none + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'pre-configure + (lambda _ + ;; Override default location of fonts.conf. Without this no + ;; fonts will be rendered at all. + (substitute* "JUCE/modules/juce_graphics/native/juce_linux_Fonts.cpp" + (("/usr/share/fonts/fonts.conf") + "/run/current-system/profile/etc/fonts/fonts.conf")) + ;; Do not build the VST or AU plugins, because these require + ;; external proprietary SDKs. + (substitute* "CMakeLists.txt" + (("juce_set_vst2_sdk_path.*") "") + (("FORMATS VST3 VST AU Standalone") + "FORMATS Standalone") + ;; BFD also need -liberty. + (("list\\(APPEND ctrlrLibs \"bfd\"\\)" m) + (string-append m " +list(APPEND ctrlrLibs \"iberty\")"))))) + ;; The install target doesn't install ctrlr but JUCE helpers. + (replace 'install + (lambda _ + (install-file "ctrlr_artefacts/RelWithDebInfo/Standalone/ctrlr" + (string-append #$output "/bin"))))))) + (inputs + (list alsa-lib + boost + eudev + freetype + libiberty + libx11 + webkitgtk)) + (native-inputs + (list pkg-config)) + (home-page "https://ctrlr.org/") + (synopsis "Control any MIDI-enabled hardware") + (description "This package provides a tool to control any MIDI-enabled +hardware such as synthesizers, drum machines, samplers, or effects. It lets +you create custom user interfaces for your MIDI hardware.") + (license (list license:gpl2+ + license:gpl3 ;JUCE + license:bsd-3))))) + (define-public strawberry (package (name "strawberry") |