diff options
author | Christopher Arndt | 2020-04-04 21:46:55 +0200 |
---|---|---|
committer | Christopher Arndt | 2020-04-04 21:46:55 +0200 |
commit | 229c6230585a0ad4e5ea2c1fcbcf80c9b88f96d8 (patch) | |
tree | 245661b26011e8cdb47698744409b98385c66102 | |
parent | 319d20767790fbcf96aa0ec143228814534fc468 (diff) | |
download | aur-229c6230585a0ad4e5ea2c1fcbcf80c9b88f96d8.tar.gz |
Fix compile error with recent GCC; get version number from VERSION_TF4 file
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | PKGBUILD | 18 | ||||
-rw-r--r-- | juce-pixel.patch | 108 |
4 files changed, 126 insertions, 5 deletions
@@ -1,6 +1,6 @@ pkgbase = tunefish4-git pkgdesc = An additive wavetable-based synthesizer VST plugin (git version) - pkgver = 4.1.0.r80.13bd685 + pkgver = 4.2.0.r90.a199cb0 pkgrel = 1 url = http://www.tunefish-synth.com/ arch = x86_64 @@ -12,7 +12,9 @@ pkgbase = tunefish4-git conflicts = tunefish4 conflicts = tunefish4-vst-bin source = tunefish4::git://github.com/paynebc/tunefish.git + source = juce-pixel.patch sha256sums = SKIP + sha256sums = c0b274515dadd14b530c35517d6fb3749b861344cec90c12eef965c9bca3e479 pkgname = tunefish4-git diff --git a/.gitignore b/.gitignore index eff59503e889..3c46f3ab3e90 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ src/ pkg/ tunefish4/ tunefish4-git-*.tar.xz +tunefish4-git-*.tar.zst tunefish4-git-*.src.tar.gz .AURINFO @@ -2,7 +2,7 @@ _pkgname=tunefish4 pkgname="${_pkgname}-git" -pkgver=4.1.0.r80.13bd685 +pkgver=4.2.0.r90.a199cb0 pkgrel=1 pkgdesc="An additive wavetable-based synthesizer VST plugin (git version)" arch=('x86_64') @@ -14,18 +14,28 @@ depends=('webkit2gtk') makedepends=('git') provides=("${_pkgname}") conflicts=("${_pkgname}" "${_pkgname}-vst-bin") -source=("${_pkgname}::git://github.com/paynebc/tunefish.git") -sha256sums=('SKIP') +source=("${_pkgname}::git://github.com/paynebc/tunefish.git" + "juce-pixel.patch") +sha256sums=('SKIP' + 'c0b274515dadd14b530c35517d6fb3749b861344cec90c12eef965c9bca3e479') pkgver() { cd "${srcdir}/${_pkgname}" - local version="$(git describe --tags | sed -e 's/RELEASE_\([^-]*\).*/\1/;s/_/./g')" + #local version="$(git describe --tags | sed -e 's/RELEASE_\([^-]*\).*/\1/;s/_/./g')" + local version="$(cat VERSION_TF4)" local revision=$(git rev-list --count HEAD) local hash=$(git rev-parse --short HEAD) echo $version.r$revision.$hash } +prepare() { + cd "${srcdir}/${_pkgname}" + + msg2 "Patching JUCE graphics..." + patch -p1 -N -i "${srcdir}/juce-pixel.patch" +} + build() { cd "${srcdir}/${_pkgname}/src/tunefish4/Builds/LinuxMakefile/" diff --git a/juce-pixel.patch b/juce-pixel.patch new file mode 100644 index 000000000000..feff831a6bdf --- /dev/null +++ b/juce-pixel.patch @@ -0,0 +1,108 @@ +diff --git a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h +index f2d8407..ca0ea53 100644 +--- a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h ++++ b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h +@@ -111,19 +111,6 @@ public: + 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 +- + //============================================================================== + /** Copies another pixel colour over this one. + +@@ -342,9 +329,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 +diff --git a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h +index 18ed1c6..e06a799 100644 +--- a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h ++++ b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h +@@ -585,10 +585,6 @@ namespace EdgeTableFillers + { + 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 + { +@@ -675,7 +671,6 @@ namespace EdgeTableFillers + const Image::BitmapData& destData; + PixelType* linePixels; + PixelARGB sourceColour; +- PixelRGB filler[4]; + bool areRGBComponentsEqual; + + forcedinline PixelType* getPixel (int x) const noexcept +@@ -690,47 +685,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 |