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:
Andreas Müller
2017-07-12 22:35:14 +02:00
parent 6102528ec2
commit cbceb2ba28
8 changed files with 112 additions and 275 deletions

View File

@@ -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 \
"

View File

@@ -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

View File

@@ -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}"

View 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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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