summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiroslav Šulc <fordfrog@gentoo.org>2023-12-19 23:34:13 +0100
committerMiroslav Šulc <fordfrog@gentoo.org>2023-12-19 23:35:33 +0100
commitc318dc516a2b39839d4c2b026111e87652f5f4f9 (patch)
treefa73b69b99dedfbe2f69352fb74f2624661182d0 /media-sound/zynaddsubfx
parentnet-misc/proxytunnel: drop 1.11.1 (diff)
downloadgentoo-c318dc516a2b39839d4c2b026111e87652f5f4f9.tar.gz
gentoo-c318dc516a2b39839d4c2b026111e87652f5f4f9.tar.bz2
gentoo-c318dc516a2b39839d4c2b026111e87652f5f4f9.zip
media-sound/zynaddsubfx: build new UI instead of unmaintained one
Closes: https://bugs.gentoo.org/920178 Closes: https://github.com/gentoo/gentoo/pull/34315 Signed-off-by: Jason A. Donenfeld <zx2c4@gentoo.org> Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'media-sound/zynaddsubfx')
-rw-r--r--media-sound/zynaddsubfx/Manifest1
-rw-r--r--media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-cflags_ldflags.patch19
-rw-r--r--media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-libzest_location.patch11
-rw-r--r--media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-makefile_find.patch69
-rw-r--r--media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-system_wide_location.patch40
-rw-r--r--media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-docs.patch2
-rw-r--r--media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-libzest_location.patch11
-rw-r--r--media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-stdint.patch149
-rw-r--r--media-sound/zynaddsubfx/zynaddsubfx-3.0.6-r2.ebuild113
9 files changed, 376 insertions, 39 deletions
diff --git a/media-sound/zynaddsubfx/Manifest b/media-sound/zynaddsubfx/Manifest
index 899fdbeb6639..748fcac41684 100644
--- a/media-sound/zynaddsubfx/Manifest
+++ b/media-sound/zynaddsubfx/Manifest
@@ -1 +1,2 @@
+DIST zyn-fusion-ui-src-3.0.6.tar.bz2 5266884 BLAKE2B d9715c319bfd313792f550e12a47939dec665eda6ef395f8bb7a175b11f0922a4037428f99dc95fe749c40074ce8976fa9d257b6bc1e8f1feb63ca943c3bdd76 SHA512 7f195cf6a193376160441863d725383640bc75ad0c21b8ef7786da67a42fe014be103e3c3d9c29c83ffc3d78b9e11a4031a6b3922d457a336d184228c16077cd
DIST zynaddsubfx-3.0.6.tar.bz2 10001014 BLAKE2B 4adbeffb9bc0bd77bf81a6734f5c26fc676426e644e27cebb8e54e8d74d869c0e1b468782cd1a64aacef8f9b788d434a8d30a194944650eea03c4fd146ee7bf7 SHA512 86311f00d97e20c7eb22a46c99736c56765ed9737e728ef380a324e4a92c731086ed74f5d7bfeae104b690ab1ee1b40bfb8f240bc4c46f8afd47308ec48cbcea
diff --git a/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-cflags_ldflags.patch b/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-cflags_ldflags.patch
new file mode 100644
index 000000000000..005b1733e5e2
--- /dev/null
+++ b/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-cflags_ldflags.patch
@@ -0,0 +1,19 @@
+--- i/Makefile
++++ w/Makefile
+@@ -16,10 +16,14 @@ linux:
+ $(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -v mrbc | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \
+ ./deps/libnanovg.a \
+ src/osc-bridge/libosc-bridge.a \
+- `pkg-config --libs libuv` -lm -lX11 -lGL -lpthread
++ $(CFLAGS) \
++ `pkg-config --libs libuv` -lm -lX11 -lGL -lpthread \
++ $(LDFLAGS)
+ $(CC) test-libversion.c deps/pugl/pugl/pugl_x11.c \
++ $(CFLAGS) \
+ -DPUGL_HAVE_GL \
+- -ldl -o zest -lX11 -lGL -lpthread -I deps/pugl -std=gnu99 -Wno-trigraphs
++ -ldl -o zest -lX11 -lGL -lpthread -I deps/pugl -std=gnu99 -Wno-trigraphs \
++ $(LDFLAGS)
+
+ osx: deps/libuv.a
+ ruby ./rebuild-fcache.rb
diff --git a/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-libzest_location.patch b/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-libzest_location.patch
new file mode 100644
index 000000000000..a24921196fe6
--- /dev/null
+++ b/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-libzest_location.patch
@@ -0,0 +1,11 @@
+--- i/test-libversion.c
++++ w/test-libversion.c
+@@ -660,7 +660,7 @@ int main(int argc, char **argv)
+ if(!handle)
+ handle = dlopen("libzest.so", RTLD_LAZY);
+ if(!handle)
+- handle = dlopen("/opt/zyn-fusion/libzest.so", RTLD_LAZY);
++ handle = dlopen("/usr/lib64/zynaddsubfx/libzest.so", RTLD_LAZY);
+ #endif
+ if(!handle) {
+ printf("[ERROR] Cannot Open libzest.so\n");
diff --git a/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-makefile_find.patch b/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-makefile_find.patch
new file mode 100644
index 000000000000..77cc47913f57
--- /dev/null
+++ b/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-makefile_find.patch
@@ -0,0 +1,69 @@
+From c1f5fcbad97c20b14a35e894477081d69519f6b0 Mon Sep 17 00:00:00 2001
+From: David Runge <dave@sleepmap.de>
+Date: Sat, 21 May 2022 13:19:48 +0200
+Subject: [PATCH] Use find internals instead of piping into grep
+
+Makefile:
+Use GNU find internals (e.g. `-iname`, `-exec` and conditionals) instead
+of piping into multiple instances of grep.
+Simplify line counting by using wc from find.
+--- a/Makefile
++++ b/Makefile
+@@ -13,7 +13,7 @@ linux:
+ # force rebuilding all code that depends on hotloading.
+ touch src/mruby-widget-lib/src/api.c
+ cd mruby && $(HOTLOADING) MRUBY_CONFIG=../build_config.rb rake
+- $(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -v mrbc | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \
++ $(CC) -shared -o libzest.so `find mruby/build/host -type f \( -not -iwholename "*mrbc*" -a -not -iwholename "*bin*" -a -iname "*.o" \)` \
+ ./deps/libnanovg.a \
+ src/osc-bridge/libosc-bridge.a \
+ `pkg-config --libs libuv` -lm -lX11 -lGL -lpthread
+@@ -30,7 +30,7 @@ osx: deps/libuv.a
+ cd deps/pugl && python2 ./waf
+ cd src/osc-bridge && CFLAGS="-I ../../deps/libuv/include " make lib
+ cd mruby && MRUBY_CONFIG=../build_config.rb rake
+- $(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -v mrbc | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \
++ $(CC) -shared -o libzest.so `find mruby/build/host -type f \( -not -iwholename "*mrbc*" -a -not -iwholename "*bin*" -a -iname "*.o" \)` ./deps/libnanovg.a \
+ ./deps/libnanovg.a \
+ src/osc-bridge/libosc-bridge.a \
+ ./deps/libuv/.libs/libuv.a -lm -framework OpenGL -lpthread
+@@ -41,7 +41,7 @@ windows: buildpuglwin deps/libuv-win.a
+ $(AR) rc deps/libnanovg.a deps/nanovg/src/*.o
+ cd src/osc-bridge && CFLAGS="-mstackrealign -I ../../deps/libuv/include " make lib
+ cd mruby && WINDOWS=1 MRUBY_CONFIG=../build_config.rb rake
+- $(CC) -mstackrealign -shared -o libzest.dll -static-libgcc `find mruby/build/w64 -type f | grep -e "\.o$$" | grep -v bin` \
++ $(CC) -mstackrealign -shared -o libzest.dll -static-libgcc `find mruby/build/w64 -type f \( -not -iwholename "*mrbc*" -a -not -iwholename "*bin*" -a -iname "*.o" \)` \
+ ./deps/libnanovg.a \
+ src/osc-bridge/libosc-bridge.a \
+ ./deps/libuv-win.a \
+@@ -98,21 +98,21 @@ stats:
+ @echo 'mruby-qml-parse commits: ' `cd src/mruby-qml-parse && git log --oneline | wc -l`
+ @echo 'mruby-qml-spawn commits: ' `cd src/mruby-qml-spawn && git log --oneline | wc -l`
+ @echo 'osc-bridge commits: ' `cd src/osc-bridge && git log --oneline | wc -l`
+- @echo 'number of qml files:' `find src/ -type f | grep -e qml$$ | wc -l`
+- @echo 'number of ruby files:' `find src/ -type f | grep -e rb$$ | wc -l`
+- @echo 'number of c files:' `find src/ -type f | grep -e c$$ | wc -l`
+- @echo 'number of header files:' `find src/ -type f | grep -e h$$ | wc -l`
++ @echo 'number of qml files:' `find src/ -type f -iname "*.qml" | wc -l`
++ @echo 'number of ruby files:' `find src/ -type f -iname "*.rb" | wc -l`
++ @echo 'number of c files:' `find src/ -type f -iname "*.c" | wc -l`
++ @echo 'number of header files:' `find src/ -type f -iname "*.h" | wc -l`
+ @echo 'lines of OSC schema:' `wc -l src/osc-bridge/schema/test.json`
+ @echo 'lines of qml:'
+- @wc -l `find src/ -type f | grep qml$$` | tail -n 1
++ @`find src/ -type f -iname "*.qml" -exec wc -l {} +` | tail -n 1
+ @echo 'lines of ruby:'
+- @wc -l `find src/ -type f | grep -e rb$$ | grep -v fcache` | tail -n 1
++ @`find src/ -type f \( -iname "*.rb" -a -not -iwholename "*fcache*" \) -exec wc -l {} +` | tail -n 1
+ @echo 'lines of c source:'
+- @wc -l `find src/ -type f | grep -e c$$` | tail -n 1
++ @`find src/ -type f -iname "*.c" -exec wc -l {} +` | tail -n 1
+ @echo 'lines of c header:'
+- @wc -l `find src/ -type f | grep -e h$$` | tail -n 1
++ @`find src/ -type f -iname "*.h" -exec wc -l {} +` | tail -n 1
+ @echo 'total lines of code:'
+- @wc -l `find src/ -type f | grep -Ee "(qml|rb|c|h)$$" | grep -v fcache` | tail -n 1
++ @`find src/ -type f \( -iname "*.qml" -o -iname "*.rb" -o -iname "*.c" -o -iname "*.h" -a -not -iwholename "*fcache*" \) -exec wc -l {} +` | tail -n 1
+
+
+ verbose: ## Compile mruby with --trace
diff --git a/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-system_wide_location.patch b/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-system_wide_location.patch
new file mode 100644
index 000000000000..3001e08754dc
--- /dev/null
+++ b/media-sound/zynaddsubfx/files/zyn-fusion-ui-3.0.6-system_wide_location.patch
@@ -0,0 +1,40 @@
+--- i/src/mruby-widget-lib/mrblib/script.rb
++++ w/src/mruby-widget-lib/mrblib/script.rb
+@@ -160,13 +160,13 @@ class ZRunner
+ search = @search_path
+ search ||= ""
+ font_error = false
+- sans = [search + "font/Roboto-Regular.ttf", "deps/nanovg/example/Roboto-Regular.ttf"]
++ sans = ["/usr/share/fonts/roboto/Roboto-Regular.ttf", search + "font/Roboto-Regular.ttf", "deps/nanovg/example/Roboto-Regular.ttf"]
+ if(@vg.create_font('sans', sans[0]) == -1 && @vg.create_font('sans', sans[1]) == -1)
+ GL::debug "[ERROR] could not find sans font"
+ font_error = true
+ end
+
+- bold = [search + "font/Roboto-Bold.ttf", "deps/nanovg/example/Roboto-Bold.ttf"]
++ bold = ["/usr/share/fonts/roboto/Roboto-Bold.ttf", search + "font/Roboto-Bold.ttf", "deps/nanovg/example/Roboto-Bold.ttf"]
+ if(@vg.create_font('bold', bold[0]) == -1 && @vg.create_font('bold', bold[1]) == -1)
+ GL::debug "[ERROR] could not find bold font"
+ font_error = true
+--- i/src/mruby-widget-lib/src/api.c
++++ w/src/mruby-widget-lib/src/api.c
+@@ -110,7 +110,7 @@ zest_open(char *address)
+ if(strstr(path, "libzest"))
+ strstr(path, "libzest")[0] = 0;
+ char path2[256];
+- snprintf(path2, sizeof(path2), "%s%s", path, "./qml/MainWindow.qml");
++ snprintf(path2, sizeof(path2), "%s%s", path, "../../share/zynaddsubfx/qml/MainWindow.qml");
+ FILE *f = fopen(path2, "r");
+ if(f) {
+ printf("[INFO:Zyn] Found Assets at %s\n", path);
+--- i/src/osc-bridge/src/bridge.c
++++ w/src/osc-bridge/src/bridge.c
+@@ -431,7 +431,7 @@ schema_t br_get_schema(bridge_t *br, uri_t uri)
+ schema_t sch;
+
+ //printf("[debug] loading json file\n");
+- FILE *f = fopen("schema/test.json", "r");
++ FILE *f = fopen("/usr/share/zynaddsubfx/schema/test.json", "r");
+ if(!f && br->search_path) {
+ char tmp[256];
+ snprintf(tmp, sizeof(tmp), "%s%s", br->search_path, "schema/test.json");
diff --git a/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-docs.patch b/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-docs.patch
index e10b92d096eb..0db30ed2395c 100644
--- a/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-docs.patch
+++ b/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-docs.patch
@@ -1,5 +1,3 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5c70857..20e20d2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,9 +35,6 @@ include(CTestConfig.cmake)
diff --git a/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-libzest_location.patch b/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-libzest_location.patch
new file mode 100644
index 000000000000..79e9e30083e5
--- /dev/null
+++ b/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-libzest_location.patch
@@ -0,0 +1,11 @@
+--- i/src/Plugin/ZynAddSubFX/ZynAddSubFX-UI-Zest.cpp
++++ w/src/Plugin/ZynAddSubFX/ZynAddSubFX-UI-Zest.cpp
+@@ -68,7 +68,7 @@ public:
+ #else
+ handle = dlopen("./libzest.so", RTLD_LAZY);
+ if(!handle)
+- handle = dlopen("/opt/zyn-fusion/libzest.so", RTLD_LAZY);
++ handle = dlopen("/usr/lib64/zynaddsubfx/libzest.so", RTLD_LAZY);
+ if(!handle)
+ handle = dlopen("libzest.so", RTLD_LAZY);
+ #endif
diff --git a/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-stdint.patch b/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-stdint.patch
index 4590183ab0f9..3c1bd7937810 100644
--- a/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-stdint.patch
+++ b/media-sound/zynaddsubfx/files/zynaddsubfx-3.0.6-stdint.patch
@@ -1,46 +1,121 @@
-Upstream Commit: https://github.com/zynaddsubfx/zynaddsubfx/commit/f384d92486d6b515cb628d0f52008a9e03341d8c
-Upstream Commit: https://github.com/zynaddsubfx/zynaddsubfx/commit/70905c96fe7b9ffde19bc4bc05b0dc53a1ed1707
-
-From f384d92486d6b515cb628d0f52008a9e03341d8c Mon Sep 17 00:00:00 2001
-From: fundamental <mark.d.mccurry@gmail.com>
-Date: Wed, 19 Apr 2023 21:52:01 -0400
-Subject: [PATCH] Bank: Add stdint.h header include
-
-As uint8_t is used, this header should be included.
----
- src/Misc/Bank.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/Misc/Bank.h b/src/Misc/Bank.h
-index 5120441a5..3f324dd84 100644
---- a/src/Misc/Bank.h
-+++ b/src/Misc/Bank.h
-@@ -18,6 +18,7 @@
+--- zynaddsubfx-3.0.6/src/Params/ADnoteParameters.h
++++ zynaddsubfx-3.0.6.mod/src/Params/ADnoteParameters.h
+@@ -16,6 +16,7 @@
+
+ #include "../globals.h"
+ #include "PresetsArray.h"
++#include <cstdint>
+
+ namespace zyn {
+
+--- zynaddsubfx-3.0.6/src/Params/Controller.h
++++ zynaddsubfx-3.0.6.mod/src/Params/Controller.h
+@@ -17,6 +17,7 @@
+
+ #include <stdint.h>
+ #include "../globals.h"
++#include <cstdint>
+
+ namespace zyn {
+
+--- zynaddsubfx-3.0.6/src/Params/EnvelopeParams.h
++++ zynaddsubfx-3.0.6.mod/src/Params/EnvelopeParams.h
+@@ -17,6 +17,7 @@
+ #include "../globals.h"
+ #include "../Misc/XMLwrapper.h"
+ #include "Presets.h"
++#include <cstdint>
+
+ namespace zyn {
+
+--- zynaddsubfx-3.0.6/src/Params/FilterParams.h
++++ zynaddsubfx-3.0.6.mod/src/Params/FilterParams.h
+@@ -17,6 +17,7 @@
+ #include "../globals.h"
+ #include "../Misc/XMLwrapper.h"
+ #include "PresetsArray.h"
++#include <cstdint>
+
+ namespace zyn {
+
+--- zynaddsubfx-3.0.6/src/Params/LFOParams.h
++++ zynaddsubfx-3.0.6.mod/src/Params/LFOParams.h
+@@ -17,6 +17,7 @@
+ #include <Misc/Time.h>
+ #include <rtosc/ports.h>
+ #include "Presets.h"
++#include <cstdint>
+
+ #define LFO_SINE 0
+ #define LFO_TRIANGLE 1
+--- zynaddsubfx-3.0.6/src/Params/PADnoteParameters.h
++++ zynaddsubfx-3.0.6.mod/src/Params/PADnoteParameters.h
+@@ -19,7 +19,7 @@
+ #include "Presets.h"
+ #include <string>
+ #include <functional>
+-
++#include <cstdint>
+ namespace zyn {
+
+ /**
+--- zynaddsubfx-3.0.6/src/Params/SUBnoteParameters.h
++++ zynaddsubfx-3.0.6.mod/src/Params/SUBnoteParameters.h
+@@ -17,6 +17,7 @@
+ #include <stdint.h>
+ #include "../globals.h"
+ #include "Presets.h"
++#include <cstdint>
+
+ namespace zyn {
+
+--- zynaddsubfx-3.0.6.old/src/Misc/Bank.cpp
++++ zynaddsubfx-3.0.6/src/Misc/Bank.cpp
+@@ -17,6 +17,7 @@
+ #include <cstring>
+ #include <cstdio>
+ #include <cstdlib>
++#include <cstdint>
+ #include <dirent.h>
+ #include <sys/stat.h>
+ #include <algorithm>
+--- zynaddsubfx-3.0.6.old/src/Misc/Bank.h
++++ zynaddsubfx-3.0.6/src/Misc/Bank.h
+@@ -16,6 +16,7 @@
+
+ #include <string>
#include <vector>
++#include <cstdint>
#include "../globals.h"
#include "Config.h"
-+#include <stdint.h>
-
- //entries in a bank
- #define BANK_SIZE 160
-
-From 70905c96fe7b9ffde19bc4bc05b0dc53a1ed1707 Mon Sep 17 00:00:00 2001
-From: fundamental <mark.d.mccurry@gmail.com>
-Date: Sat, 22 Apr 2023 10:21:09 -0400
-Subject: [PATCH] MidiIn: Add stdint.h header include
-
----
- src/Nio/MidiIn.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/Nio/MidiIn.h b/src/Nio/MidiIn.h
-index ce0bcfec3..c6b30c61d 100644
---- a/src/Nio/MidiIn.h
-+++ b/src/Nio/MidiIn.h
+
+--- zynaddsubfx-3.0.6.old/src/Nio/InMgr.cpp
++++ zynaddsubfx-3.0.6/src/Nio/InMgr.cpp
+@@ -17,6 +17,7 @@
+ #include "../Misc/MiddleWare.h"
+ #include <rtosc/thread-link.h>
+ #include <iostream>
++#include <cstdint>
+ using namespace std;
+
+ extern zyn::MiddleWare *middleware;
+--- zynaddsubfx-3.0.6.old/src/Nio/MidiIn.cpp
++++ zynaddsubfx-3.0.6/src/Nio/MidiIn.cpp
+@@ -15,6 +15,7 @@
+ #include "../globals.h"
+ #include "InMgr.h"
+ #include <string.h>
++#include <cstdint>
+
+ namespace zyn {
+
+--- zynaddsubfx-3.0.6.old/src/Nio/MidiIn.h
++++ zynaddsubfx-3.0.6/src/Nio/MidiIn.h
@@ -17,6 +17,7 @@
#define MIDI_IN_H
#include "Engine.h"
-+#include <stdint.h>//uint8_t
++#include <cstdint>
namespace zyn {
+
diff --git a/media-sound/zynaddsubfx/zynaddsubfx-3.0.6-r2.ebuild b/media-sound/zynaddsubfx/zynaddsubfx-3.0.6-r2.ebuild
new file mode 100644
index 000000000000..7303db4ad930
--- /dev/null
+++ b/media-sound/zynaddsubfx/zynaddsubfx-3.0.6-r2.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="Software synthesizer capable of making a countless number of instruments"
+HOMEPAGE="https://zynaddsubfx.sourceforge.net/"
+
+SRC_URI="
+ mirror://sourceforge/zynaddsubfx/${P}.tar.bz2
+ mirror://sourceforge/zynaddsubfx/zyn-fusion-ui-src-${PV}.tar.bz2
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+alsa doc dssi jack lash portaudio"
+REQUIRED_USE="|| ( alsa jack portaudio )"
+
+DEPEND="
+ dev-libs/mxml
+ media-libs/liblo
+ sci-libs/fftw:3.0
+ sys-libs/zlib
+ alsa? ( media-libs/alsa-lib )
+ doc? ( dev-texlive/texlive-fontutils )
+ dssi? ( media-libs/dssi )
+ jack? ( virtual/jack )
+ lash? ( media-sound/lash )
+ portaudio? ( media-libs/portaudio )
+"
+RDEPEND="
+ ${DEPEND}
+ media-fonts/roboto
+"
+BDEPEND="
+ dev-lang/ruby:*
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-docs.patch
+ "${FILESDIR}"/${P}-stdint.patch
+ "${FILESDIR}"/${P}-libzest_location.patch
+)
+ZYN_FUSION_UI_PATCHES=(
+ "${FILESDIR}"/zyn-fusion-ui-${PV}-cflags_ldflags.patch
+ "${FILESDIR}"/zyn-fusion-ui-${PV}-libzest_location.patch
+ "${FILESDIR}"/zyn-fusion-ui-${PV}-makefile_find.patch
+ "${FILESDIR}"/zyn-fusion-ui-${PV}-system_wide_location.patch
+)
+
+DOCS=( AUTHORS.txt NEWS.txt README.adoc )
+
+src_prepare() {
+ cmake_src_prepare
+
+ if ! use dssi; then
+ sed -i -e '/pkg_search_module.*DSSI/s/^/#DONT/' src/CMakeLists.txt || die
+ fi
+ if ! use jack; then
+ sed -e '/pkg_check_modules.*JACK/s/^/#DONT/' -i {rtosc,src}/CMakeLists.txt || die
+ fi
+ if ! use lash; then
+ sed -i -e '/pkg_search_module.*LASH/s/^/#DONT/' src/CMakeLists.txt || die
+ fi
+ if ! use portaudio; then
+ sed -i -e '/pkg_check_modules.*PORTAUDIO/s/^/#DONT/' src/CMakeLists.txt || die
+ fi
+
+ # FIXME upstream: sandbox error
+ sed -i -e '/add_subdirectory(bash-completion)/d' doc/CMakeLists.txt || die
+
+ cd ../zyn-fusion-ui-src-${PV}
+ eapply "${ZYN_FUSION_UI_PATCHES[@]}"
+}
+
+src_configure() {
+ append-cxxflags -std=c++11
+
+ local mycmakeargs=(
+ -DPluginLibDir=$(get_libdir)
+ -DGuiModule=zest
+ -DDefaultInput=jack
+ -DDefaultOutput=jack
+ $(cmake_use_find_package alsa Alsa)
+ $(cmake_use_find_package doc Doxygen)
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ use doc && cmake_src_compile doc
+ emake -C ../zyn-fusion-ui-src-${PV}
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
+ cmake_src_install
+
+ cd ../zyn-fusion-ui-src-${PV}
+ newbin zest zyn-fusion
+ insinto /usr/$(get_libdir)/${PN}
+ doins libzest.so
+ insinto /usr/share/${PN}/qml
+ doins -r src/mruby-zest/{example,qml}/*.qml
+ insinto /usr/share/${PN}/schema
+ doins src/osc-bridge/schema/test.json
+}