diff options
author | Christopher Arndt | 2019-09-01 23:40:24 +0200 |
---|---|---|
committer | Christopher Arndt | 2019-09-01 23:40:24 +0200 |
commit | 2ae9fbfbf18138c9d4e2110c2e5753ad0e5fd0ea (patch) | |
tree | 782a9f5ab0bb123486240c96721e197b01a3ce0a | |
parent | 7330a1abbfbed350f86b2715fbed0032d6a77d1b (diff) | |
download | aur-2ae9fbfbf18138c9d4e2110c2e5753ad0e5fd0ea.tar.gz |
Various fixes & updates
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | PKGBUILD | 45 | ||||
-rw-r--r-- | juce-pixel-format.patch | 151 |
4 files changed, 190 insertions, 22 deletions
@@ -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 @@ -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
|