libopenshot-audio: use a minimal patch for gcc9 builds

This reverts commit fbb65f4884.

This should also fix the atomic failures.
This commit is contained in:
q66 2019-12-23 18:32:50 +01:00
parent 0d3a5cd4b0
commit 5b9a0bfd89
3 changed files with 162 additions and 9 deletions

View file

@ -0,0 +1,23 @@
Fix for gcc6 which does not have std::isfinite() but suggests
to use std::finite() instead.
--- JuceLibraryCode/modules/juce_core/maths/juce_MathsFunctions.h 2016-08-30 06:24:27.000000000 +0200
+++ JuceLibraryCode/modules/juce_core/maths/juce_MathsFunctions.h 2016-12-12 14:33:29.170005576 +0100
@@ -381,7 +381,7 @@
#if JUCE_WINDOWS && !JUCE_MINGW
return _finite (value) != 0;
#else
- return std::isfinite (value);
+ return finite (value);
#endif
}
@@ -391,7 +391,7 @@
#if JUCE_WINDOWS && !JUCE_MINGW
return _finite (value) != 0;
#else
- return std::isfinite (value);
+ return finite (value);
#endif
}

View file

@ -0,0 +1,136 @@
commit fa0e4ef1c4969ac1f6c54d306e66b27a31da5b87
Author: q66 <daniel@octaforge.org>
Date: Mon Dec 23 18:23:28 2019 +0100
fix build with gcc9
Adapted from upstream.
diff --git JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
index 0df5987..ea2e990 100644
--- JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
+++ JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
@@ -108,19 +108,6 @@ public:
forcedinline uint8 getGreen() const noexcept { return components.g; }
forcedinline uint8 getBlue() const noexcept { return components.b; }
- #if JUCE_GCC && ! JUCE_CLANG
- // 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.
@@ -339,9 +326,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
@@ -428,10 +412,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.
@@ -645,7 +625,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 JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
index cd8cd36..87bf33e 100644
--- JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
+++ JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
@@ -583,10 +583,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
{
@@ -642,7 +638,6 @@ namespace EdgeTableFillers
const Image::BitmapData& destData;
PixelType* linePixels;
PixelARGB sourceColour;
- PixelRGB filler [4];
bool areRGBComponentsEqual;
forcedinline PixelType* getPixel (const int x) const noexcept
@@ -657,47 +652,10 @@ namespace EdgeTableFillers
forcedinline void replaceLine (PixelRGB* dest, const 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)
- {
- const int* const intFiller = reinterpret_cast<const int*> (filler);
-
- while (width > 8 && (((pointer_sized_int) dest) & 7) != 0)
- {
- dest->set (colour);
- ++dest;
- --width;
- }
-
- while (width > 4)
- {
- int* 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

View file

@ -1,7 +1,7 @@
# Template file for 'libopenshot-audio'
pkgname=libopenshot-audio
version=0.1.8
revision=2
revision=3
build_style=cmake
hostmakedepends="doxygen"
makedepends="alsa-lib-devel libXcursor-devel libXinerama-devel libXrandr-devel
@ -10,17 +10,11 @@ short_desc="OpenShot audio library"
maintainer="Spencer Hill <spencernh77@gmail.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/OpenShot/libopenshot-audio"
distfiles="https://github.com/OpenShot/libopenshot-audio/archive/v${version}.tar.gz
https://patch-diff.githubusercontent.com/raw/OpenShot/libopenshot-audio/pull/39.patch"
checksum="384d0ef39c78f16d77048de3c96152321724084f978dc622675dd6bb16e15e19
ae784a96730f7cf09ba7bf29d06704ba6a0eca662d242d786b0a86a4343e9dc9"
distfiles="https://github.com/OpenShot/libopenshot-audio/archive/v${version}.tar.gz"
checksum=384d0ef39c78f16d77048de3c96152321724084f978dc622675dd6bb16e15e19
CXXFLAGS="-I${XBPS_CROSS_BASE}/usr/include/freetype2"
post_extract() {
patch -p1 <../39.patch
}
libopenshot-audio-devel_package() {
short_desc+=" - development files"
depends+=" ${sourcepkg}>=${version}_${revision}"