calf: rework lv2 file generation: use qemu instead of native
When creating lv2-ttf and gui-xml the conversion tool - for calf calfmakerdf - loads libraries which are available only as cross build. So use qemu to start cross calfmakerdf. This fixes at least the build for calf-fluidsynth lv2-files. Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
This commit is contained in:
@@ -1,14 +0,0 @@
|
||||
require ${BPN}.inc
|
||||
|
||||
inherit autotools pkgconfig native
|
||||
|
||||
DEPENDS += " \
|
||||
glib-2.0-native \
|
||||
lv2-native \
|
||||
expat-native \
|
||||
"
|
||||
|
||||
SRC_URI += " \
|
||||
file://0001-align-configuration-that-calfmakerdf-is-build-and-in.patch \
|
||||
file://0002-makerdf-fix-preset-file-name-in-manifest.patch \
|
||||
"
|
||||
@@ -1,27 +0,0 @@
|
||||
require ${BPN}.inc
|
||||
|
||||
inherit autotools-brokensep pkgconfig gtk-icon-cache bash-completion
|
||||
|
||||
DEPENDS += " \
|
||||
${BPN}-native \
|
||||
gtk+ \
|
||||
jack \
|
||||
fluidsynth \
|
||||
liblo \
|
||||
ladspa-sdk \
|
||||
"
|
||||
|
||||
SRC_URI += "file://0003-don-not-build-cross-calfmakerdf.patch"
|
||||
|
||||
EXTRA_OECONF += "--enable-experimental"
|
||||
|
||||
do_compile_append() {
|
||||
# we need native calfmakerdf at the position where the build expects it so
|
||||
# link it there
|
||||
ln -fs ${STAGING_BINDIR_NATIVE}/calfmakerdf ${B}/src/calfmakerdf
|
||||
}
|
||||
|
||||
FILES_${PN} += "${libdir}/lv2"
|
||||
INSANE_SKIP_${PN} = "dev-so"
|
||||
|
||||
# TBD: SSE -> NEON
|
||||
@@ -1,14 +0,0 @@
|
||||
SUMMARY = "High quality open source audio plugins for musicians"
|
||||
HOMEPAGE = "http://calf-studio-gear.org/"
|
||||
LICENSE = "GPLv2 & LGPLv2.1"
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://COPYING;md5=dcf3c825659e82539645da41a7908589 \
|
||||
file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \
|
||||
"
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/calf-studio-gear/calf.git \
|
||||
"
|
||||
SRCREV = "82188d3300fa6ed1084ca8874d6a6b2b74702172"
|
||||
S = "${WORKDIR}/git"
|
||||
PV = "0.0.60+git${SRCPV}"
|
||||
57
recipes-misc/recipes-multimedia/calf-studio-gear/calf_git.bb
Normal file
57
recipes-misc/recipes-multimedia/calf-studio-gear/calf_git.bb
Normal file
@@ -0,0 +1,57 @@
|
||||
SUMMARY = "High quality open source audio plugins for musicians"
|
||||
HOMEPAGE = "http://calf-studio-gear.org/"
|
||||
LICENSE = "GPLv2 & LGPLv2.1"
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://COPYING;md5=dcf3c825659e82539645da41a7908589 \
|
||||
file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \
|
||||
"
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/calf-studio-gear/calf.git \
|
||||
file://0001-Do-store-calfmakerdf-commandline-for-later-use-in-qe.patch \
|
||||
"
|
||||
SRCREV = "82d61aef1207dc74aafde73b6baaa64c23a3aeb3"
|
||||
S = "${WORKDIR}/git"
|
||||
PV = "0.0.60+git${SRCPV}"
|
||||
|
||||
inherit autotools-brokensep pkgconfig gtk-icon-cache bash-completion qemu-ext
|
||||
|
||||
DEPENDS += " \
|
||||
gtk+ \
|
||||
jack \
|
||||
fluidsynth \
|
||||
liblo \
|
||||
ladspa-sdk \
|
||||
"
|
||||
|
||||
EXTRA_OECONF += "--enable-experimental"
|
||||
|
||||
do_configure_prepend() {
|
||||
sed -i 's:%QEMUCOMMAND%:${WORKDIR}/QemuCommands:g' `find ${S} -name Makefile.am`
|
||||
}
|
||||
|
||||
QEMU_EXTRA_LIBDIR = "${D}${libdir}/calf"
|
||||
|
||||
do_install_prepend() {
|
||||
# These are installed by calfmakerdf but that's moved to end of installation
|
||||
install -d ${D}${libdir}/lv2
|
||||
install -d ${D}${datadir}/calf
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
# build ttl-files must be done in quemu (lv2-ttl-generator-data loads
|
||||
# so-files and calls functions to create ttl-files)
|
||||
cat ${WORKDIR}/QemuCommands | while read calfmakerdf_param; do
|
||||
${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', '${D}${bindir}/calfmakerdf')} ${calfmakerdf_param}
|
||||
done
|
||||
|
||||
chown -R root:root ${D}${libdir}/lv2
|
||||
chown root:root ${D}${datadir}/calf/*.xml
|
||||
|
||||
# job is done - not needed on target
|
||||
rm ${D}${bindir}/calfmakerdf
|
||||
|
||||
}
|
||||
|
||||
FILES_${PN} += "${libdir}/lv2"
|
||||
INSANE_SKIP_${PN} = "dev-so"
|
||||
@@ -0,0 +1,55 @@
|
||||
From 8aa3fc79ca124de4933025ad8fededb7db80c60a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
|
||||
Date: Tue, 11 Jul 2017 00:08:47 +0200
|
||||
Subject: [PATCH] Do store calfmakerdf-commandline for later use in qemu /
|
||||
install calfmakerdf
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
|
||||
---
|
||||
gui/Makefile.am | 2 +-
|
||||
src/Makefile.am | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/gui/Makefile.am b/gui/Makefile.am
|
||||
index 10dc5ff..24220e7 100644
|
||||
--- a/gui/Makefile.am
|
||||
+++ b/gui/Makefile.am
|
||||
@@ -4,7 +4,7 @@ STYLES = $(wildcard $(srcdir)/styles/*)
|
||||
EXTRA_DIST = $(wildcard $(srcdir)/styles) $(wildcard $(srcdir)/strips) $(wildcard $(srcdir)/gui)
|
||||
|
||||
install-data-hook:
|
||||
- $(top_builddir)/src/calfmakerdf -m gui -p $(DESTDIR)$(pkgdatadir)
|
||||
+ echo "-m gui -p $(DESTDIR)$(pkgdatadir)" >> %QEMUCOMMAND%
|
||||
for f in ${STYLES}; do \
|
||||
sn=`basename $${f}` ; \
|
||||
sed 's#@guidatadir@#$(pkgdatadir)/styles/'$${sn}'#g' "$${f}"/gtk.rc.in >"$${f}"/gtk.rc ; \
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 794e668..298aece 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -30,7 +30,7 @@ endif
|
||||
endif
|
||||
|
||||
AM_CXXFLAGS += $(GLIB_DEPS_CFLAGS)
|
||||
-noinst_PROGRAMS += calfmakerdf
|
||||
+bin_PROGRAMS += calfmakerdf
|
||||
calfmakerdf_SOURCES = makerdf.cpp
|
||||
calfmakerdf_LDADD = calf.la
|
||||
|
||||
@@ -82,7 +82,7 @@ if USE_LV2_GUI
|
||||
install -c -m 755 $(top_builddir)/src/.libs/calflv2gui.so $(DESTDIR)$(lv2dir)/calflv2gui.so
|
||||
endif
|
||||
rm -f $(DESTDIR)$(lv2dir)/*.ttl
|
||||
- $(top_builddir)/src/calfmakerdf -m ttl -p $(DESTDIR)$(lv2dir)/ -d $(DESTDIR)$(pkgdatadir)/
|
||||
+ echo "-m ttl -p $(DESTDIR)$(lv2dir)/ -d $(DESTDIR)$(pkgdatadir)/" >> %QEMUCOMMAND%
|
||||
if USE_SORDI
|
||||
for f in $(DESTDIR)$(lv2dir)/*.ttl; do sout=`sordi -o turtle "$$f"`; if test $$? != 0; then echo "RDF file $$f is corrupted:"; echo $$sout"<<<"; fi; done
|
||||
endif
|
||||
--
|
||||
2.9.4
|
||||
|
||||
@@ -1,143 +0,0 @@
|
||||
From fa4ca610a210ccc2029ba1300cce846c92aaa6b5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
|
||||
Date: Sun, 8 Jan 2017 20:36:48 +0100
|
||||
Subject: [PATCH] align configuration that calfmakerdf is build and installed
|
||||
for native
|
||||
|
||||
we need to pin LV2(GUI) support
|
||||
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
|
||||
---
|
||||
configure.ac | 80 ---------------------------------------------------------
|
||||
src/Makefile.am | 2 +-
|
||||
src/makerdf.cpp | 3 +++
|
||||
3 files changed, 4 insertion(+), 81 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index ec9aa6d..bbb2def 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -53,90 +53,10 @@ AC_CHECK_HEADERS([memory.h stdint.h stdlib.h string.h time.h math.h])
|
||||
AC_CHECK_HEADER(expat.h, true, AC_MSG_ERROR([Expat XML library not found]))
|
||||
AC_CHECK_LIB(expat, XML_Parse, true, AC_MSG_ERROR([Expat XML library not found]))
|
||||
|
||||
-# JACK
|
||||
-AC_CHECK_HEADERS([jack/jack.h], have_jack_header=yes, have_jack_header=no)
|
||||
-
|
||||
# GLib
|
||||
PKG_CHECK_MODULES(GLIB_DEPS, glib-2.0 >= 2.0.0 gthread-2.0 >= 2.0.0, true, AC_MSG_ERROR([Calf requires glib2 and gthread2]))
|
||||
|
||||
-# Fluidsynth
|
||||
-PKG_CHECK_MODULES(FLUIDSYNTH_DEPS, fluidsynth >= 1.0.7, true, AC_MSG_ERROR([fluidsynth library not found]))
|
||||
-
|
||||
-# Sordi
|
||||
-AC_CHECK_PROG(SORDI_ENABLED, sordi, yes, no)
|
||||
-
|
||||
-if test "$have_jack_header" = "yes"; then
|
||||
- PKG_CHECK_MODULES(JACK_DEPS, jack >= 0.103.0,
|
||||
- AC_CHECK_LIB([jack], [jack_port_register], JACK_FOUND="yes", ),)
|
||||
-fi
|
||||
-
|
||||
-if test "$JACK_FOUND" = "yes"; then
|
||||
- PKG_CHECK_MODULES(JACK_MIDI_DEPS, jack >= 0.105.0, OLD_JACK="no", OLD_JACK="yes")
|
||||
-fi
|
||||
-
|
||||
-PKG_CHECK_MODULES(LV2_DEPS, lv2core >= 6, LV2_FOUND="yes", LV2_FOUND="no")
|
||||
-
|
||||
-PKG_CHECK_MODULES(LASH_DEPS, lash-1.0 >= 0.6.0,
|
||||
- AC_CHECK_LIB([lash], [lash_client_is_being_restored], LASH_0_6_FOUND="yes", LASH_0_6_FOUND="no"),
|
||||
- LASH_0_6_FOUND="no")
|
||||
-if test "$LASH_0_6_FOUND" = "yes"; then
|
||||
- LASH_FOUND="yes"
|
||||
-else
|
||||
- PKG_CHECK_MODULES(LASH_DEPS, lash-1.0 >= 0.5.2, LASH_FOUND="yes", LASH_FOUND="no")
|
||||
-fi
|
||||
-PKG_CHECK_MODULES(SLV2_HACK, slv2 <= 0.6.1, SLV2_UNSUPPORTED="yes", SLV2_UNSUPPORTED="no")
|
||||
-
|
||||
-############################################################################################
|
||||
-# Assign initial values to feature control variables
|
||||
-
|
||||
-LV2_ENABLED=$LV2_FOUND
|
||||
-LASH_ENABLED=$LASH_FOUND
|
||||
-
|
||||
-if test "$JACK_FOUND" = "yes" -o "$LV2_FOUND" = "yes"; then
|
||||
- PKG_CHECK_MODULES(GUI_DEPS, gtk+-2.0 >= 2.12.0 cairo >= 1.2.0,
|
||||
- GUI_ENABLED="yes",
|
||||
- GUI_ENABLED="no (GTK+ 2.12 and cairo 1.2 or newer required)"
|
||||
- )
|
||||
-fi
|
||||
-
|
||||
-############################################################################################
|
||||
-# Look for settings and installed libraries to determine what to compile/install/use
|
||||
-if test "$LV2_FOUND" = "yes"; then
|
||||
- AC_MSG_CHECKING([whether to allow LV2])
|
||||
- AC_ARG_WITH(lv2,
|
||||
- AC_HELP_STRING([--without-lv2],[disable LV2 interface]),
|
||||
- [if test "$withval" = "no"; then LV2_ENABLED="no"; fi],[])
|
||||
- AC_MSG_RESULT($LV2_ENABLED)
|
||||
-fi
|
||||
-
|
||||
-if test "$LASH_FOUND" = "yes"; then
|
||||
- AC_MSG_CHECKING([whether to allow LASH])
|
||||
- AC_ARG_WITH(lash,
|
||||
- AC_HELP_STRING([--without-lash],[disable LASH compatibility (GPL)]),
|
||||
- [if test "$withval" = "no"; then LASH_ENABLED="no"; fi],[])
|
||||
- AC_MSG_RESULT($LASH_ENABLED)
|
||||
-fi
|
||||
|
||||
-AC_MSG_CHECKING([whether to enable experimental/unfinished features])
|
||||
-AC_ARG_ENABLE(experimental,
|
||||
- AC_HELP_STRING([--enable-experimental],[enable unfinished features - not recommended!]),
|
||||
- [set_enable_experimental="$enableval"],
|
||||
- [set_enable_experimental="no"])
|
||||
-AC_MSG_RESULT($set_enable_experimental)
|
||||
-
|
||||
-AC_MSG_CHECKING([whether to enable debugging mode])
|
||||
-AC_ARG_ENABLE(debug,
|
||||
- AC_HELP_STRING([--enable-debug],[enable debug mode - slow!]),
|
||||
- [set_enable_debug="$enableval"],
|
||||
- [set_enable_debug="no"])
|
||||
-AC_MSG_RESULT($set_enable_debug)
|
||||
-
|
||||
-AC_MSG_CHECKING([whether to compile with SSE])
|
||||
-AC_ARG_ENABLE(sse,
|
||||
- AC_HELP_STRING([--enable-sse],[compile with SSE extensions]),
|
||||
- [set_enable_sse="$enableval"],
|
||||
- [set_enable_sse="no"])
|
||||
-AC_MSG_RESULT($set_enable_sse)
|
||||
|
||||
############################################################################################
|
||||
# Compute status shell variables
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 794e668..dad8f89 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -30,7 +30,7 @@ endif
|
||||
endif
|
||||
|
||||
AM_CXXFLAGS += $(GLIB_DEPS_CFLAGS)
|
||||
-noinst_PROGRAMS += calfmakerdf
|
||||
+bin_PROGRAMS += calfmakerdf
|
||||
calfmakerdf_SOURCES = makerdf.cpp
|
||||
calfmakerdf_LDADD = calf.la
|
||||
|
||||
diff --git a/src/makerdf.cpp b/src/makerdf.cpp
|
||||
index ddc6318..4e3284d 100644
|
||||
--- a/src/makerdf.cpp
|
||||
+++ b/src/makerdf.cpp
|
||||
@@ -21,6 +21,8 @@
|
||||
#include <calf/giface.h>
|
||||
#include <calf/preset.h>
|
||||
#include <calf/utils.h>
|
||||
+#define USE_LV2 1
|
||||
+#define USE_LV2_GUI 1
|
||||
#if USE_LV2
|
||||
#include <lv2.h>
|
||||
#include <calf/lv2_atom.h>
|
||||
--
|
||||
2.5.5
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
From 7827a72dd24e199c06ce8c73aeee5cc38f6353f0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
|
||||
Date: Mon, 9 Jan 2017 20:08:13 +0100
|
||||
Subject: [PATCH] makerdf: fix preset file name in manifest
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
We have to use label from ladspa_plugin_info (e.g 'Filter') instead of name
|
||||
set in presets.xml (e.g 'filter').
|
||||
|
||||
Fixes:
|
||||
|
||||
| Error opening file /usr/lib/lv2/calf.lv2/presets-filter.ttl (No such file or directory)
|
||||
| lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/calf.lv2/presets-filter.ttl'
|
||||
| Error opening file /usr/lib/lv2/calf.lv2/presets-filter.ttl (No such file or directory)
|
||||
| lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/calf.lv2/presets-filter.ttl'
|
||||
| Error opening file /usr/lib/lv2/calf.lv2/presets-filter.ttl (No such file or directory)
|
||||
| lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/calf.lv2/presets-filter.ttl'
|
||||
| Error opening file /usr/lib/lv2/calf.lv2/presets-flanger.ttl (No such file or directory)
|
||||
...
|
||||
|
||||
Upstream-Status: Submitted [1]
|
||||
|
||||
[1] https://github.com/calf-studio-gear/calf/pull/117
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
|
||||
---
|
||||
src/makerdf.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/makerdf.cpp b/src/makerdf.cpp
|
||||
index ddc6318..119c68b 100644
|
||||
--- a/src/makerdf.cpp
|
||||
+++ b/src/makerdf.cpp
|
||||
@@ -459,7 +459,7 @@ void make_ttl(string path_prefix, const string *data_dir)
|
||||
+ ">";
|
||||
ttl += uri + " a lv2p:Preset ;\n"
|
||||
" lv2:appliesTo " + ilm->second.second + " ;\n"
|
||||
- " rdfs:seeAlso <presets-" + pr.plugin + ".ttl> .\n";
|
||||
+ " rdfs:seeAlso <presets-" + ilm->second.first + ".ttl> .\n";
|
||||
|
||||
presets_ttl += uri +
|
||||
" a lv2p:Preset ;\n"
|
||||
--
|
||||
2.5.5
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
From b99b13e109d4104904be39e8d3b3e71ceed2cd70 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
|
||||
Date: Sun, 8 Jan 2017 22:24:08 +0100
|
||||
Subject: [PATCH] don not build cross calfmakerdf
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
|
||||
---
|
||||
src/Makefile.am | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 794e668..ef8a3cd 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -30,9 +30,6 @@ endif
|
||||
endif
|
||||
|
||||
AM_CXXFLAGS += $(GLIB_DEPS_CFLAGS)
|
||||
-noinst_PROGRAMS += calfmakerdf
|
||||
-calfmakerdf_SOURCES = makerdf.cpp
|
||||
-calfmakerdf_LDADD = calf.la
|
||||
|
||||
calfbenchmark_SOURCES = benchmark.cpp
|
||||
calfbenchmark_LDADD = calf.la
|
||||
--
|
||||
2.5.5
|
||||
|
||||
Reference in New Issue
Block a user