summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Arndt2019-09-01 23:40:24 +0200
committerChristopher Arndt2019-09-01 23:40:24 +0200
commit2ae9fbfbf18138c9d4e2110c2e5753ad0e5fd0ea (patch)
tree782a9f5ab0bb123486240c96721e197b01a3ce0a
parent7330a1abbfbed350f86b2715fbed0032d6a77d1b (diff)
downloadaur-2ae9fbfbf18138c9d4e2110c2e5753ad0e5fd0ea.tar.gz
Various fixes & updates
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
-rw-r--r--.SRCINFO8
-rw-r--r--ChangeLog8
-rw-r--r--PKGBUILD45
-rw-r--r--juce-pixel-format.patch151
4 files changed, 190 insertions, 22 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f96275ffbf16..c9c5466658c2 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,15 +1,15 @@
pkgbase = dexed-git
pkgdesc = A software synth closely modelled on the Yamaha DX7 (git version)
- pkgver = 0.9.4.1.r233.73a266d
- pkgrel = 2
+ pkgver = 0.9.4.1.r246.760f9ef
+ pkgrel = 1
url = http://asb2m10.github.io/dexed/
changelog = ChangeLog
arch = i686
arch = x86_64
+ groups = pro-audio
groups = vst-plugins
license = GPL3
makedepends = git
- makedepends = steinberg-vst36
depends = alsa-lib
depends = curl
depends = hicolor-icon-theme
@@ -20,8 +20,10 @@ pkgbase = dexed-git
conflicts = dexed-vst-git
source = dexed::git+https://github.com/asb2m10/dexed.git
source = dexed.desktop
+ source = juce-pixel-format.patch
md5sums = SKIP
md5sums = d888f8f2c1a44ed75c77d43faee73361
+ md5sums = 3b8cd62ca811638639c7f6de18306849
pkgname = dexed-git
diff --git a/ChangeLog b/ChangeLog
index 5890289ed97d..621cca270a36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-01 Christopher Arndt <aur -at- chrisarndt -dot- de>
+
+ * 0.9.4.1.r246.760f9ef-1
+ added patch for compiling JUCE with GCC >= 9.1
+ removed 'steinberg-vst36' from makedepends
+ added 'pro-audio' group
+ compile VST plugin and stand-alone version in one pass again
+
2018-04-24 Christopher Arndt <aur -at- chrisarndt -dot- de>
* 0.9.4.r228.eea1256-1
diff --git a/PKGBUILD b/PKGBUILD
index 207759dfcfb4..474027e56cd6 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,21 +2,23 @@
_pkgname=dexed
pkgname="${_pkgname}-git"
-pkgver=0.9.4.1.r233.73a266d
-pkgrel=2
+pkgver=0.9.4.1.r246.760f9ef
+pkgrel=1
pkgdesc="A software synth closely modelled on the Yamaha DX7 (git version)"
arch=('i686' 'x86_64')
url="http://asb2m10.github.io/dexed/"
license=("GPL3")
-groups=('vst-plugins')
+groups=('pro-audio' 'vst-plugins')
depends=('alsa-lib' 'curl' 'hicolor-icon-theme' 'freetype2' 'libxinerama')
-makedepends=('git' 'steinberg-vst36')
+makedepends=('git')
provides=("${_pkgname}")
conflicts=("${_pkgname}" "${_pkgname}-vst-git")
source=("${_pkgname}::git+https://github.com/asb2m10/dexed.git"
- 'dexed.desktop')
+ 'dexed.desktop'
+ 'juce-pixel-format.patch')
md5sums=('SKIP'
- 'd888f8f2c1a44ed75c77d43faee73361')
+ 'd888f8f2c1a44ed75c77d43faee73361'
+ '3b8cd62ca811638639c7f6de18306849')
changelog=ChangeLog
@@ -29,30 +31,35 @@ pkgver() {
echo "$ver.r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)"
}
-build() {
- msg2 "Building Dexed stand-alone..."
- cd "${srcdir}/${_pkgname}/Builds/Linux"
- make CONFIG=Release CXXFLAGS="-D JUCE_JACK=1 -D JUCE_ALSA=1 -D buildVST=0 -D buildStandalone=1"
- cp -f build/Dexed "${srcdir}/${_pkgname}"
- msg2 "Building Dexed VST plug-in..."
+prepare() {
+ cd "${srcdir}/${_pkgname}"
+ # patch JUCE to compile with GCC >= 9.x
+ patch -N -r - -p1 -i "${srcdir}/juce-pixel-format.patch" || return 0
+}
+
+build() {
cd "${srcdir}/${_pkgname}/Builds/Linux"
- make clean
- make CONFIG=Release CXXFLAGS="-D JUCE_JACK=0 -D JUCE_ALSA=0 -D buildVST=1 -D buildStandalone=0"
- cp -f build/Dexed.so "${srcdir}/${_pkgname}"
+ make \
+ CONFIG=Release \
+ CXXFLAGS="-D JUCE_JACK=1 -D JUCE_ALSA=1 -D buildVST=1 -D buildStandalone=1"
}
package() {
cd "${srcdir}/${_pkgname}"
# install VST plugin
- install -Dm755 Dexed.so "${pkgdir}/usr/lib/vst/Dexed.so"
+ install -Dm755 Builds/Linux/build/Dexed.so \
+ "${pkgdir}/usr/lib/vst/Dexed.so"
# install standalone program
- install -Dm755 Dexed "${pkgdir}/usr/bin/dexed"
+ install -Dm755 Builds/Linux/build/Dexed \
+ "${pkgdir}/usr/bin/dexed"
# install icon and desktop file
- install -Dm755 Resources/ui/dexedIcon.png "${pkgdir}/usr/share/icons/hicolor/512x512/apps/dexed.png"
- install -Dm755 "${srcdir}/dexed.desktop" "${pkgdir}/usr/share/applications/dexed.desktop"
+ install -Dm755 Resources/ui/dexedIcon.png \
+ "${pkgdir}/usr/share/icons/hicolor/512x512/apps/dexed.png"
+ install -Dm755 "${srcdir}/dexed.desktop" \
+ "${pkgdir}/usr/share/applications/dexed.desktop"
}
# vim:set ts=2 sw=2 et:
diff --git a/juce-pixel-format.patch b/juce-pixel-format.patch
new file mode 100644
index 000000000000..c5b185c499eb
--- /dev/null
+++ b/juce-pixel-format.patch
@@ -0,0 +1,151 @@
+diff --git a/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h b/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
+index cb0867c..3af7c26 100755
+--- a/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
++++ b/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
+@@ -105,22 +105,9 @@ public:
+
+ //==============================================================================
+ forcedinline uint8 getAlpha() const noexcept { return components.a; }
+- forcedinline uint8 getRed() const noexcept { return components.r; }
++ forcedinline uint8 getRed() const noexcept { return components.r; }
+ forcedinline uint8 getGreen() const noexcept { return components.g; }
+- forcedinline uint8 getBlue() const noexcept { return components.b; }
+-
+- #if JUCE_GCC
+- // NB these are here as a workaround because GCC refuses to bind to packed values.
+- forcedinline uint8& getAlpha() noexcept { return comps [indexA]; }
+- forcedinline uint8& getRed() noexcept { return comps [indexR]; }
+- forcedinline uint8& getGreen() noexcept { return comps [indexG]; }
+- forcedinline uint8& getBlue() noexcept { return comps [indexB]; }
+- #else
+- forcedinline uint8& getAlpha() noexcept { return components.a; }
+- forcedinline uint8& getRed() noexcept { return components.r; }
+- forcedinline uint8& getGreen() noexcept { return components.g; }
+- forcedinline uint8& getBlue() noexcept { return components.b; }
+- #endif
++ forcedinline uint8 getBlue() const noexcept { return components.b; }
+
+ //==============================================================================
+ /** Copies another pixel colour over this one.
+@@ -340,9 +327,6 @@ private:
+ {
+ uint32 internal;
+ Components components;
+- #if JUCE_GCC
+- uint8 comps[4]; // helper struct needed because gcc does not allow references to packed union members
+- #endif
+ };
+ }
+ #ifndef DOXYGEN
+@@ -425,13 +409,9 @@ public:
+
+ //==============================================================================
+ forcedinline uint8 getAlpha() const noexcept { return 0xff; }
+- forcedinline uint8 getRed() const noexcept { return r; }
++ forcedinline uint8 getRed() const noexcept { return r; }
+ forcedinline uint8 getGreen() const noexcept { return g; }
+- forcedinline uint8 getBlue() const noexcept { return b; }
+-
+- forcedinline uint8& getRed() noexcept { return r; }
+- forcedinline uint8& getGreen() noexcept { return g; }
+- forcedinline uint8& getBlue() noexcept { return b; }
++ forcedinline uint8 getBlue() const noexcept { return b; }
+
+ //==============================================================================
+ /** Copies another pixel colour over this one.
+@@ -646,11 +626,9 @@ public:
+
+ //==============================================================================
+ forcedinline uint8 getAlpha() const noexcept { return a; }
+- forcedinline uint8& getAlpha() noexcept { return a; }
+-
+- forcedinline uint8 getRed() const noexcept { return 0; }
++ forcedinline uint8 getRed() const noexcept { return 0; }
+ forcedinline uint8 getGreen() const noexcept { return 0; }
+- forcedinline uint8 getBlue() const noexcept { return 0; }
++ forcedinline uint8 getBlue() const noexcept { return 0; }
+
+ //==============================================================================
+ /** Copies another pixel colour over this one.
+diff --git a/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h b/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
+index 49eed38..822a670 100755
+--- a/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
++++ b/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
+@@ -572,18 +572,10 @@ namespace EdgeTableFillers
+ : destData (image), sourceColour (colour)
+ {
+ if (sizeof (PixelType) == 3 && destData.pixelStride == sizeof (PixelType))
+- {
+ areRGBComponentsEqual = sourceColour.getRed() == sourceColour.getGreen()
+ && sourceColour.getGreen() == sourceColour.getBlue();
+- filler[0].set (sourceColour);
+- filler[1].set (sourceColour);
+- filler[2].set (sourceColour);
+- filler[3].set (sourceColour);
+- }
+ else
+- {
+ areRGBComponentsEqual = false;
+- }
+ }
+
+ forcedinline void setEdgeTableYPos (int y) noexcept
+@@ -665,7 +657,6 @@ namespace EdgeTableFillers
+ const Image::BitmapData& destData;
+ PixelType* linePixels;
+ PixelARGB sourceColour;
+- PixelRGB filler[4];
+ bool areRGBComponentsEqual;
+
+ forcedinline PixelType* getPixel (int x) const noexcept
+@@ -680,47 +671,10 @@ namespace EdgeTableFillers
+
+ forcedinline void replaceLine (PixelRGB* dest, PixelARGB colour, int width) const noexcept
+ {
+- if (destData.pixelStride == sizeof (*dest))
+- {
+- if (areRGBComponentsEqual) // if all the component values are the same, we can cheat..
+- {
+- memset (dest, colour.getRed(), (size_t) width * 3);
+- }
+- else
+- {
+- if (width >> 5)
+- {
+- auto intFiller = reinterpret_cast<const int*> (filler);
+-
+- while (width > 8 && (((pointer_sized_int) dest) & 7) != 0)
+- {
+- dest->set (colour);
+- ++dest;
+- --width;
+- }
+-
+- while (width > 4)
+- {
+- auto d = reinterpret_cast<int*> (dest);
+- *d++ = intFiller[0];
+- *d++ = intFiller[1];
+- *d++ = intFiller[2];
+- dest = reinterpret_cast<PixelRGB*> (d);
+- width -= 4;
+- }
+- }
+-
+- while (--width >= 0)
+- {
+- dest->set (colour);
+- ++dest;
+- }
+- }
+- }
++ if ((size_t) destData.pixelStride == sizeof (*dest) && areRGBComponentsEqual)
++ memset ((void*) dest, colour.getRed(), (size_t) width * 3); // if all the component values are the same, we can cheat..
+ else
+- {
+- JUCE_PERFORM_PIXEL_OP_LOOP (set (colour))
+- }
++ JUCE_PERFORM_PIXEL_OP_LOOP (set (colour));
+ }
+
+ forcedinline void replaceLine (PixelAlpha* dest, const PixelARGB colour, int width) const noexcept