summaryrefslogtreecommitdiffstats
path: root/meta-openembedded/meta-multimedia/classes
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-multimedia/classes')
-rw-r--r--meta-openembedded/meta-multimedia/classes/juce.bbclass47
1 files changed, 47 insertions, 0 deletions
diff --git a/meta-openembedded/meta-multimedia/classes/juce.bbclass b/meta-openembedded/meta-multimedia/classes/juce.bbclass
new file mode 100644
index 000000000..3927235ef
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/classes/juce.bbclass
@@ -0,0 +1,47 @@
+inherit pkgconfig
+
+# List of JUCE modules that requires external dependencies
+JUCE_MODULES ??= " \
+ juce_core \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'juce_audio_devices', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'juce_graphics juce_gui_basics', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'juce_opengl', '', d)} \
+"
+JUCE_X11_DEPS = "libx11 libxext libxinerama libxrandr libxcursor"
+
+PACKAGECONFIG_prepend= "${JUCE_MODULES} "
+PACKAGECONFIG[juce_core] = ",,curl,"
+PACKAGECONFIG[juce_audio_devices] = ",,alsa-lib,"
+PACKAGECONFIG[juce_graphics] = ",,${JUCE_X11_DEPS} freetype,"
+PACKAGECONFIG[juce_gui_basics] = ",,${JUCE_X11_DEPS},"
+PACKAGECONFIG[juce_opengl] = ",,virtual/libgl,"
+
+DEPENDS_prepend = "projucer-native "
+
+export OE_JUCE_PROJUCER = "${STAGING_BINDIR_NATIVE}/Projucer"
+
+juce_do_configure() {
+ if [ -z "${JUCE_JUCERS}" ]; then
+ JUCERS=`find . -type f -iname "*.jucer"` && IFS=$'\n'
+ else
+ JUCERS="${JUCE_JUCERS}"
+ fi
+
+ if [ -z "$JUCERS" ]; then
+ die "JUCE_JUCERS not set and no profiles found in $PWD"
+ fi
+
+ # XXX: Hack for Projucer, since it requires a X Display even when running in
+ # console mode. This will be fixed in future. Most cases DISPLAY=:0 will just work,
+ # the only case why we have JUCE_DISPLAY variable, is in case of a build system,
+ # such as jenkins, that can have multiple virtual X server running for each build.
+ test -z "${JUCE_DISPLAY}" && export DISPLAY=:0 || export DISPLAY=${JUCE_DISPLAY}
+
+ for i in $JUCERS; do
+ ${OE_JUCE_PROJUCER} --resave $i
+ done
+}
+
+EXPORT_FUNCTIONS do_configure
+
+addtask configure after do_unpack do_patch before do_compile
OpenPOWER on IntegriCloud