summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTérence Clastres2019-06-18 19:19:14 +0200
committerTérence Clastres2019-06-18 19:24:31 +0200
commitb49d495d89c1dbb5d41f63d537aa37dbafdb8d06 (patch)
tree86779ce93c7a2754ba7fd303ccf036a922d2bcae
parent5c877470f6bf01be55ddf6195c90c17716dbf827 (diff)
downloadaur-b49d495d89c1dbb5d41f63d537aa37dbafdb8d06.tar.gz
fix building with gcc9
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD14
-rw-r--r--gcc9-fix.diff139
3 files changed, 151 insertions, 10 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 30c77bc08e4..a85d2a8a3c2 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = giada-git
pkgdesc = A free, minimal, hardcore audio tool for DJs, live performers and electronic musicians
- pkgver = v0.15.3.r71.g3a104597
+ pkgver = v0.15.4.r2.g251c67c3
pkgrel = 1
url = https://www.giadamusic.com/
arch = x86_64
@@ -17,9 +17,11 @@ pkgbase = giada-git
conflicts = giada
conflicts = giada-vst
source = giada-git::git+https://github.com/monocasual/giada.git
- source = git+https://github.com/WeAreROLI/JUCE.git
- sha512sums = SKIP
+ source = JUCE-5.2.3.tar.gz::https://github.com/WeAreROLI/JUCE/archive/5.3.2.tar.gz
+ source = gcc9-fix.diff
sha512sums = SKIP
+ sha512sums = f968a622306e12542c0971fd4cac5c311d70304d63fef8a177e8624a3f43916254122cf5d068974bf062a59d95fd6df97400a3d2ff950b117399cc667b976b9d
+ sha512sums = 0b011913f031930d3540daf2bec8df66b345f59c79d1666a6447f5b1be0b0e59cfd855bd6ec581118cd6949f24aba8e4c503ad73f0fe5a4bb1882b60ed3cd41f
pkgname = giada-git
diff --git a/PKGBUILD b/PKGBUILD
index 4ab35cc4bce..d8ca55a783c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Térence Clastres <t.clastres@gmail.com>
pkgname=giada-git
-pkgver=v0.15.3.r71.g3a104597
+pkgver=v0.15.4.r2.g251c67c3
pkgrel=1
pkgdesc="A free, minimal, hardcore audio tool for DJs, live performers and electronic musicians"
arch=('x86_64')
@@ -13,9 +13,11 @@ makedepends=('gendesk' 'imagemagick')
checkdepends=('catch2')
conflicts=('giada' 'giada-vst')
source=("giada-git::git+https://github.com/monocasual/giada.git"
- "git+https://github.com/WeAreROLI/JUCE.git")
+ "JUCE-5.2.3.tar.gz::https://github.com/WeAreROLI/JUCE/archive/5.3.2.tar.gz"
+ gcc9-fix.diff)
sha512sums=('SKIP'
- 'SKIP')
+ 'f968a622306e12542c0971fd4cac5c311d70304d63fef8a177e8624a3f43916254122cf5d068974bf062a59d95fd6df97400a3d2ff950b117399cc667b976b9d'
+ '0b011913f031930d3540daf2bec8df66b345f59c79d1666a6447f5b1be0b0e59cfd855bd6ec581118cd6949f24aba8e4c503ad73f0fe5a4bb1882b60ed3cd41f')
pkgver() {
cd "$pkgname"
@@ -24,11 +26,9 @@ pkgver() {
prepare() {
cd "$pkgname"
-
- git submodule init src/deps/juce
- git config submodule.src/deps/juce.url $srcdir/JUCE
- git submodule update src/deps/juce
+ cp -r ../JUCE-5.3.2/modules/ src/deps/juce/
+ patch -p2 -i ../../../../../gcc9-fix.diff -d src/deps/juce/modules/
autoreconf -vfi
# XDG desktop file
diff --git a/gcc9-fix.diff b/gcc9-fix.diff
new file mode 100644
index 00000000000..e38d605d248
--- /dev/null
+++ b/gcc9-fix.diff
@@ -0,0 +1,139 @@
+diff --git a/modules/juce_graphics/colour/juce_PixelFormats.h b/modules/juce_graphics/colour/juce_PixelFormats.h
+index 4b1ba87da..aea0e3c8c 100644
+--- a/modules/juce_graphics/colour/juce_PixelFormats.h
++++ b/modules/juce_graphics/colour/juce_PixelFormats.h
+@@ -110,20 +110,6 @@ public:
+ 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
+-
+ //==============================================================================
+ /** Copies another pixel colour over this one.
+
+@@ -342,9 +328,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
+@@ -431,11 +414,7 @@ public:
+ forcedinline uint8 getAlpha() const noexcept { return 0xff; }
+ 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.
+@@ -652,8 +631,6 @@ public:
+
+ //==============================================================================
+ forcedinline uint8 getAlpha() const noexcept { return a; }
+- forcedinline uint8& getAlpha() noexcept { return a; }
+-
+ forcedinline uint8 getRed() const noexcept { return 0; }
+ forcedinline uint8 getGreen() const noexcept { return 0; }
+ forcedinline uint8 getBlue() const noexcept { return 0; }
+diff --git a/modules/juce_graphics/native/juce_RenderingHelpers.h b/modules/juce_graphics/native/juce_RenderingHelpers.h
+index 9ac3ae20b..8c524c276 100644
+--- a/modules/juce_graphics/native/juce_RenderingHelpers.h
++++ b/modules/juce_graphics/native/juce_RenderingHelpers.h
+@@ -582,18 +582,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
+@@ -675,7 +667,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 +681,11 @@ 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);
++ 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..
+
+- 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;
+- }
+- }
+- }
+ 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