Hey all,
I’m just trying to get started with the CMake example ‘AudioPlugin’.
So I copied the ‘AudioPlugin’ folder from the example/Cmake folder withn JUCE repo.
Then I copied the JUCE repo folder into my newly created 'AudioPlugin folder, so it exists as a sub-folder.
Then I uncommented the line in CMakeLists.txt to include JUCE as a subfolder.
Then, I would have thought that the following should suffice in the folder I created:
`cmake -G “MinGW Makefiles” .’
( followed by cmake --build . except I don’t get that far… )
I get this:
-- The C compiler identification is GNU 14.2.0
-- The CXX compiler identification is GNU 14.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/msys64/ucrt64/bin/cc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/msys64/ucrt64/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring juceaide
-- Building juceaide
CMake Error at JUCE/extras/Build/juceaide/CMakeLists.txt:142 (message):
Failed to build juceaide
[ 9%] Building CXX object
extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.obj
In file included from
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/juce_core.h:77,
from C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/juce_graphics.h:67,
from C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_gui_basics/juce_gui_basics.h:68,
from C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:65,
from C:\_LOCAL\.projects\.juce\AudioPlugin\JUCE\extras\Build\juceaide\Main.cpp:35:
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/system/juce_TargetPlatform.h:114:6:
warning: #warning before C++23 is a GCC extension
114 | #warning Support for MinGW has been removed. Please use an alternative compiler.
| ^~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/system/juce_TargetPlatform.h:114:6:
warning: #warning Support for MinGW has been removed. Please use an
alternative compiler. [-Wcpp]
In file included from
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/juce_core.h:239:
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/memory/juce_Memory.h:
In function 'void juce::zeromem(void*, size_t)':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/memory/juce_Memory.h:40:71:
error: 'memset' was not declared in this scope
40 | inline void zeromem (void* memory, size_t numBytes) noexcept { memset (memory, 0, numBytes); }
| ^~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/memory/juce_Memory.h:1:1:
note: 'memset' is defined in header '<cstring>'; this is probably fixable
by adding '#include <cstring>'
+++ |+#include <cstring>
1 | /*
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/memory/juce_Memory.h:
In function 'void juce::zerostruct(Type&)':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/memory/juce_Memory.h:44:71:
error: there are no arguments to 'memset' that depend on a template
parameter, so a declaration of 'memset' must be available [-fpermissive]
44 | inline void zerostruct (Type& structure) noexcept { memset ((void*) &structure, 0, sizeof (structure)); }
| ^~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/memory/juce_Memory.h:44:71:
note: (if you use '-fpermissive', G++ will accept your code, but allowing
the use of an undeclared name is deprecated)
In file included from
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/juce_core.h:247:
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_UTF8.h:
In member function 'size_t juce::CharPointer_UTF8::sizeInBytes() const':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_UTF8.h:285:16:
error: 'strlen' was not declared in this scope
285 | return strlen (data) + 1;
| ^~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_UTF8.h:1:1:
note: 'strlen' is defined in header '<cstring>'; this is probably fixable
by adding '#include <cstring>'
+++ |+#include <cstring>
1 | /*
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_UTF8.h:
In member function 'juce::CharPointer_UTF8
juce::CharPointer_UTF8::findTerminatingNull() const':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_UTF8.h:329:41:
error: 'strlen' was not declared in this scope
329 | return CharPointer_UTF8 (data + strlen (data));
| ^~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_UTF8.h:329:41:
note: 'strlen' is defined in header '<cstring>'; this is probably fixable
by adding '#include <cstring>'
In file included from
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/juce_core.h:250:
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:
In member function 'size_t juce::CharPointer_ASCII::length() const':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:169:25:
error: 'strlen' was not declared in this scope
169 | return (size_t) strlen (data);
| ^~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:1:1:
note: 'strlen' is defined in header '<cstring>'; this is probably fixable
by adding '#include <cstring>'
+++ |+#include <cstring>
1 | /*
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:
In member function 'int
juce::CharPointer_ASCII::compare(juce::CharPointer_ASCII) const':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:253:16:
error: 'strcmp' was not declared in this scope
253 | return strcmp (data, other.data);
| ^~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:253:16:
note: 'strcmp' is defined in header '<cstring>'; this is probably fixable
by adding '#include <cstring>'
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:
In member function 'int
juce::CharPointer_ASCII::compareUpTo(juce::CharPointer_ASCII, int) const':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:266:16:
error: 'strncmp' was not declared in this scope
266 | return strncmp (data, other.data, (size_t) maxChars);
| ^~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:266:16:
note: 'strncmp' is defined in header '<cstring>'; this is probably fixable
by adding '#include <cstring>'
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:
In member function 'int
juce::CharPointer_ASCII::compareIgnoreCase(juce::CharPointer_ASCII) const':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_core/text/juce_CharPointer_ASCII.h:281:16:
error: 'stricmp' was not declared in this scope
281 | return stricmp (data, other.data);
| ^~~~~~~
In file included from
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/juce_graphics.h:147:
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:
In member function 'void
juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType,
replaceExisting>::replaceLine(juce::PixelRGB*, juce::PixelARGB, int)
const':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:622:17:
error: there are no arguments to 'memset' that depend on a template
parameter, so a declaration of 'memset' must be available [-fpermissive]
622 | memset ((void*) dest, colour.getRed(), (size_t) width * 3); // if all the component values are the same, we can cheat..
| ^~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:
In member function 'void
juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType,
replaceExisting>::replaceLine(juce::PixelAlpha*, juce::PixelARGB, int)
const':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:630:17:
error: there are no arguments to 'memset' that depend on a template
parameter, so a declaration of 'memset' must be available [-fpermissive]
630 | memset ((void*) dest, colour.getAlpha(), (size_t) width);
| ^~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:
In instantiation of 'void
juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType,
replaceExisting>::replaceLine(juce::PixelRGB*, juce::PixelARGB, int) const
[with PixelType = juce::PixelRGB; bool replaceExisting = true]':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:557:29:
required from 'void
juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType,
replaceExisting>::handleEdgeTableLine(int, int, int) const [with PixelType
= juce::PixelRGB; bool replaceExisting = true]'
557 | replaceLine (dest, p, width);
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1935:79:
required from 'void
juce::RenderingHelpers::ClipRegions::RectangleListRegion<SavedStateType>::SubRectangleIteratorFloat::iterate(Renderer&)
const [with Renderer =
juce::RenderingHelpers::EdgeTableFillers::SolidColour<juce::PixelRGB,
true>; SavedStateType =
juce::RenderingHelpers::SoftwareRendererSavedState]'
1935 | if (clippedWidth > 0) r.handleEdgeTableLine (clippedLeft, clippedWidth, f.topAlpha);
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1501:26:
required from 'void
juce::RenderingHelpers::EdgeTableFillers::renderSolidFill(Iterator&, const
juce::Image::BitmapData&, juce::PixelARGB, bool, DestPixelType*) [with
Iterator =
juce::RenderingHelpers::ClipRegions::RectangleListRegion<juce::RenderingHelpers::SoftwareRendererSavedState>::SubRectangleIteratorFloat;
DestPixelType = juce::PixelRGB]'
1501 | iter.iterate (r);
| ~~~~~~~~~~~~~^~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:2487:67:
required from 'void
juce::RenderingHelpers::SoftwareRendererSavedState::fillWithSolidColour(IteratorType&,
juce::PixelARGB, bool) const [with IteratorType =
juce::RenderingHelpers::ClipRegions::RectangleListRegion<juce::RenderingHelpers::SoftwareRendererSavedState>::SubRectangleIteratorFloat]'
2487 | case Image::RGB: EdgeTableFillers::renderSolidFill (iter, destData, colour, replaceContents, (PixelRGB*) nullptr); break;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1806:39:
required from 'void
juce::RenderingHelpers::ClipRegions::RectangleListRegion<SavedStateType>::fillRectWithColour(SavedStateType&,
juce::Rectangle<float>, juce::PixelARGB) const [with SavedStateType =
juce::RenderingHelpers::SoftwareRendererSavedState]'
1806 | state.fillWithSolidColour (iter, colour, false);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1803:14:
required from here
1803 | void fillRectWithColour (SavedStateType& state, Rectangle<float> area, PixelARGB colour) const override
| ^~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:622:24:
error: 'memset' was not declared in this scope
622 | memset ((void*) dest, colour.getRed(), (size_t) width * 3); // if all the component values are the same, we can cheat..
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1:1:
note: 'memset' is defined in header '<cstring>'; this is probably fixable
by adding '#include <cstring>'
+++ |+#include <cstring>
1 | /*
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:
In instantiation of 'void
juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType,
replaceExisting>::replaceLine(juce::PixelRGB*, juce::PixelARGB, int) const
[with PixelType = juce::PixelRGB; bool replaceExisting = false]':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:557:29:
required from 'void
juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType,
replaceExisting>::handleEdgeTableLine(int, int, int) const [with PixelType
= juce::PixelRGB; bool replaceExisting = false]'
557 | replaceLine (dest, p, width);
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1935:79:
required from 'void
juce::RenderingHelpers::ClipRegions::RectangleListRegion<SavedStateType>::SubRectangleIteratorFloat::iterate(Renderer&)
const [with Renderer =
juce::RenderingHelpers::EdgeTableFillers::SolidColour<juce::PixelRGB,
false>; SavedStateType =
juce::RenderingHelpers::SoftwareRendererSavedState]'
1935 | if (clippedWidth > 0) r.handleEdgeTableLine (clippedLeft, clippedWidth, f.topAlpha);
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1506:26:
required from 'void
juce::RenderingHelpers::EdgeTableFillers::renderSolidFill(Iterator&, const
juce::Image::BitmapData&, juce::PixelARGB, bool, DestPixelType*) [with
Iterator =
juce::RenderingHelpers::ClipRegions::RectangleListRegion<juce::RenderingHelpers::SoftwareRendererSavedState>::SubRectangleIteratorFloat;
DestPixelType = juce::PixelRGB]'
1506 | iter.iterate (r);
| ~~~~~~~~~~~~~^~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:2487:67:
required from 'void
juce::RenderingHelpers::SoftwareRendererSavedState::fillWithSolidColour(IteratorType&,
juce::PixelARGB, bool) const [with IteratorType =
juce::RenderingHelpers::ClipRegions::RectangleListRegion<juce::RenderingHelpers::SoftwareRendererSavedState>::SubRectangleIteratorFloat]'
2487 | case Image::RGB: EdgeTableFillers::renderSolidFill (iter, destData, colour, replaceContents, (PixelRGB*) nullptr); break;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1806:39:
required from 'void
juce::RenderingHelpers::ClipRegions::RectangleListRegion<SavedStateType>::fillRectWithColour(SavedStateType&,
juce::Rectangle<float>, juce::PixelARGB) const [with SavedStateType =
juce::RenderingHelpers::SoftwareRendererSavedState]'
1806 | state.fillWithSolidColour (iter, colour, false);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1803:14:
required from here
1803 | void fillRectWithColour (SavedStateType& state, Rectangle<float> area, PixelARGB colour) const override
| ^~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:622:24:
error: 'memset' was not declared in this scope
622 | memset ((void*) dest, colour.getRed(), (size_t) width * 3); // if all the component values are the same, we can cheat..
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:622:24:
note: 'memset' is defined in header '<cstring>'; this is probably fixable
by adding '#include <cstring>'
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:
In instantiation of 'void
juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType,
replaceExisting>::replaceLine(juce::PixelAlpha*, juce::PixelARGB, int)
const [with PixelType = juce::PixelAlpha; bool replaceExisting = true]':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:557:29:
required from 'void
juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType,
replaceExisting>::handleEdgeTableLine(int, int, int) const [with PixelType
= juce::PixelAlpha; bool replaceExisting = true]'
557 | replaceLine (dest, p, width);
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1935:79:
required from 'void
juce::RenderingHelpers::ClipRegions::RectangleListRegion<SavedStateType>::SubRectangleIteratorFloat::iterate(Renderer&)
const [with Renderer =
juce::RenderingHelpers::EdgeTableFillers::SolidColour<juce::PixelAlpha,
true>; SavedStateType =
juce::RenderingHelpers::SoftwareRendererSavedState]'
1935 | if (clippedWidth > 0) r.handleEdgeTableLine (clippedLeft, clippedWidth, f.topAlpha);
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1501:26:
required from 'void
juce::RenderingHelpers::EdgeTableFillers::renderSolidFill(Iterator&, const
juce::Image::BitmapData&, juce::PixelARGB, bool, DestPixelType*) [with
Iterator =
juce::RenderingHelpers::ClipRegions::RectangleListRegion<juce::RenderingHelpers::SoftwareRendererSavedState>::SubRectangleIteratorFloat;
DestPixelType = juce::PixelAlpha]'
1501 | iter.iterate (r);
| ~~~~~~~~~~~~~^~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:2490:67:
required from 'void
juce::RenderingHelpers::SoftwareRendererSavedState::fillWithSolidColour(IteratorType&,
juce::PixelARGB, bool) const [with IteratorType =
juce::RenderingHelpers::ClipRegions::RectangleListRegion<juce::RenderingHelpers::SoftwareRendererSavedState>::SubRectangleIteratorFloat]'
2490 | default: EdgeTableFillers::renderSolidFill (iter, destData, colour, replaceContents, (PixelAlpha*) nullptr); break;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1806:39:
required from 'void
juce::RenderingHelpers::ClipRegions::RectangleListRegion<SavedStateType>::fillRectWithColour(SavedStateType&,
juce::Rectangle<float>, juce::PixelARGB) const [with SavedStateType =
juce::RenderingHelpers::SoftwareRendererSavedState]'
1806 | state.fillWithSolidColour (iter, colour, false);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1803:14:
required from here
1803 | void fillRectWithColour (SavedStateType& state, Rectangle<float> area, PixelARGB colour) const override
| ^~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:630:24:
error: 'memset' was not declared in this scope
630 | memset ((void*) dest, colour.getAlpha(), (size_t) width);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:630:24:
note: 'memset' is defined in header '<cstring>'; this is probably fixable
by adding '#include <cstring>'
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:
In instantiation of 'void
juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType,
replaceExisting>::replaceLine(juce::PixelAlpha*, juce::PixelARGB, int)
const [with PixelType = juce::PixelAlpha; bool replaceExisting = false]':
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:557:29:
required from 'void
juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType,
replaceExisting>::handleEdgeTableLine(int, int, int) const [with PixelType
= juce::PixelAlpha; bool replaceExisting = false]'
557 | replaceLine (dest, p, width);
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1935:79:
required from 'void
juce::RenderingHelpers::ClipRegions::RectangleListRegion<SavedStateType>::SubRectangleIteratorFloat::iterate(Renderer&)
const [with Renderer =
juce::RenderingHelpers::EdgeTableFillers::SolidColour<juce::PixelAlpha,
false>; SavedStateType =
juce::RenderingHelpers::SoftwareRendererSavedState]'
1935 | if (clippedWidth > 0) r.handleEdgeTableLine (clippedLeft, clippedWidth, f.topAlpha);
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1506:26:
required from 'void
juce::RenderingHelpers::EdgeTableFillers::renderSolidFill(Iterator&, const
juce::Image::BitmapData&, juce::PixelARGB, bool, DestPixelType*) [with
Iterator =
juce::RenderingHelpers::ClipRegions::RectangleListRegion<juce::RenderingHelpers::SoftwareRendererSavedState>::SubRectangleIteratorFloat;
DestPixelType = juce::PixelAlpha]'
1506 | iter.iterate (r);
| ~~~~~~~~~~~~~^~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:2490:67:
required from 'void
juce::RenderingHelpers::SoftwareRendererSavedState::fillWithSolidColour(IteratorType&,
juce::PixelARGB, bool) const [with IteratorType =
juce::RenderingHelpers::ClipRegions::RectangleListRegion<juce::RenderingHelpers::SoftwareRendererSavedState>::SubRectangleIteratorFloat]'
2490 | default: EdgeTableFillers::renderSolidFill (iter, destData, colour, replaceContents, (PixelAlpha*) nullptr); break;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1806:39:
required from 'void
juce::RenderingHelpers::ClipRegions::RectangleListRegion<SavedStateType>::fillRectWithColour(SavedStateType&,
juce::Rectangle<float>, juce::PixelARGB) const [with SavedStateType =
juce::RenderingHelpers::SoftwareRendererSavedState]'
1806 | state.fillWithSolidColour (iter, colour, false);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1803:14:
required from here
1803 | void fillRectWithColour (SavedStateType& state, Rectangle<float> area, PixelARGB colour) const override
| ^~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:630:24:
error: 'memset' was not declared in this scope
630 | memset ((void*) dest, colour.getAlpha(), (size_t) width);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/_LOCAL/.projects/.juce/AudioPlugin/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:630:24:
note: 'memset' is defined in header '<cstring>'; this is probably fixable
by adding '#include <cstring>'
mingw32-make[2]: ***
[extras\Build\juceaide\CMakeFiles\juceaide.dir\build.make:76:
extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:130:
extras/Build/juceaide/CMakeFiles/juceaide.dir/all] Error 2
mingw32-make: *** [Makefile:135: all] Error 2
-- Configuring incomplete, errors occurred!
What am I doing wrong?
I have CMake and MinGW (via MSYS) installed and up-to-date.
I did pretty much the exact same thing on Linux (manjaro) and the build succeeded, although (predictably I suppose) it only builds a Linux plugin.
I’d like to be able to buld a Windows VST3 without having to resort to installing Visual Studio. Surely there’s a way to do that on windows, I thought that’s what the CMake examples were for?
