cabbage: attempt to fix gcc9 builds and mark broken
The current version we have does not support newer versions of JUCE which have this fixed and I don't dare update this to a newer version as the whole thing seems way too cursed. Someone else can try their hand at it later.
This commit is contained in:
parent
509531bf5d
commit
48f905584a
2 changed files with 135 additions and 0 deletions
134
srcpkgs/cabbage/patches/gcc9.patch
Normal file
134
srcpkgs/cabbage/patches/gcc9.patch
Normal file
|
@ -0,0 +1,134 @@
|
|||
commit 1d53d416b47aee20b0d093e319b7bc9131b85adc
|
||||
Author: q66 <daniel@octaforge.org>
|
||||
Date: Sat Jan 4 23:52:36 2020 +0100
|
||||
|
||||
fix build with gcc9, adapted from upstream
|
||||
|
||||
diff --git JUCE-5.3.2/modules/juce_graphics/colour/juce_PixelFormats.h JUCE-5.3.2/modules/juce_graphics/colour/juce_PixelFormats.h
|
||||
index 4b1ba87..f77b885 100644
|
||||
--- JUCE-5.3.2/modules/juce_graphics/colour/juce_PixelFormats.h
|
||||
+++ JUCE-5.3.2/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
|
||||
@@ -433,10 +417,6 @@ public:
|
||||
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; }
|
||||
-
|
||||
//==============================================================================
|
||||
/** Copies another pixel colour over this one.
|
||||
|
||||
@@ -652,7 +632,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; }
|
||||
diff --git JUCE-5.3.2/modules/juce_graphics/native/juce_RenderingHelpers.h JUCE-5.3.2/modules/juce_graphics/native/juce_RenderingHelpers.h
|
||||
index 9ac3ae2..9f41084 100644
|
||||
--- JUCE-5.3.2/modules/juce_graphics/native/juce_RenderingHelpers.h
|
||||
+++ JUCE-5.3.2/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;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- JUCE_PERFORM_PIXEL_OP_LOOP (set (colour))
|
||||
- }
|
||||
+ 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));
|
||||
}
|
||||
|
||||
forcedinline void replaceLine (PixelAlpha* dest, const PixelARGB colour, int width) const noexcept
|
|
@ -20,6 +20,7 @@ distfiles="https://github.com/WeAreROLI/JUCE/archive/${_jucever}.tar.gz
|
|||
checksum="b7c604bb6a7f9752934f89d72133713f7a65e82478bba80ccb4709d0edb58033
|
||||
80f36d010a1f9bb14469fba70e12a5df7e24e92bec511c7157d5a1e90c0314d3
|
||||
5e8f1058177472f6dd3b5c1e7f8e0e76f37c5f751fed65936e04ff2441ce831a"
|
||||
broken="undefined reference to ComponentLayoutEditor::..."
|
||||
|
||||
# without TARGET_ARCH, the build system will assume -march=native,
|
||||
# which is wrong as we're building a generic package and -march does
|
||||
|
|
Loading…
Reference in a new issue