So I started using automated building and releasing Plugins on Github on my public github modules today and it succeeded at the Windows build but failed at the MacOS build and I don’t understand the errors.
The first error
IceTray.cpp:242:8: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
float buffers [BUFFER_COUNT][BUFFER_SIZE_MAX][MAX_CHANNELS];
But if you look the source for IceTray all size indexes there are #defines
What further confused me is IceTray.cpp hasn’t changed since it was last built by the VCV team and published to the library, so I know it can be built for MacOS successfully.
Anyone have any idea what might be going on here?
Full Log:
Run export RACK_DIR=$HOME/Rack-SDK
export RACK_DIR=$HOME/Rack-SDK
make -j dep
make -j dist
shell: /bin/bash --noprofile --norc -e -o pipefail {0}
env:
rack-sdk-version: 2.0.3
make: Nothing to be done for `dep'.
c++ -std=c++11 -stdlib=libc++ -fPIC -I/Users/runner/Rack-SDK/include -I/Users/runner/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nehalem -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.9 -c -o build/src/AstroVibe.cpp.o src/AstroVibe.cpp
c++ -std=c++11 -stdlib=libc++ -fPIC -I/Users/runner/Rack-SDK/include -I/Users/runner/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nehalem -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.9 -c -o build/src/GlassPane.cpp.o src/GlassPane.cpp
c++ -std=c++11 -stdlib=libc++ -fPIC -I/Users/runner/Rack-SDK/include -I/Users/runner/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nehalem -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.9 -c -o build/src/IceTray.cpp.o src/IceTray.cpp
c++ -std=c++11 -stdlib=libc++ -fPIC -I/Users/runner/Rack-SDK/include -I/Users/runner/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nehalem -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.9 -c -o build/src/IceTray2.cpp.o src/IceTray2.cpp
c++ -std=c++11 -stdlib=libc++ -fPIC -I/Users/runner/Rack-SDK/include -I/Users/runner/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nehalem -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.9 -c -o build/src/ShiftyMod.cpp.o src/ShiftyMod.cpp
c++ -std=c++11 -stdlib=libc++ -fPIC -I/Users/runner/Rack-SDK/include -I/Users/runner/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nehalem -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.9 -c -o build/src/plugin.cpp.o src/plugin.cpp
c++ -std=c++11 -stdlib=libc++ -fPIC -I/Users/runner/Rack-SDK/include -I/Users/runner/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nehalem -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.9 -c -o build/src/util.cpp.o src/util.cpp
src/AstroVibe.cpp:339:40: warning: suggest braces around initialization of subobject [-Wmissing-braces]
float masterOut [MAX_CHANNELS][2] = {0,0};
^~~
{ }
src/IceTray.cpp:242:8: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
float buffers [BUFFER_COUNT][BUFFER_SIZE_MAX][MAX_CHANNELS];
^
src/IceTray.cpp:282:3: error: cannot initialize object parameter of type 'rack::engine::Module' with an expression of type 'IceTray'
config(PARAMS_LEN, INPUTS_LEN, OUTPUTS_LEN, LIGHTS_LEN);
^~~~~~
src/IceTray.cpp:284:3: error: no matching member function for call to 'configParam'
configParam(SPEED_NUM_PARAM, 1.f, 11.f, 6.f, "Record Speed Numerator");
^~~~~~~~~~~
/Users/runner/Rack-SDK/include/engine/Module.hpp:119:18: note: candidate function template not viable: no known conversion from 'IceTray' to 'rack::engine::Module' for object argument
TParamQuantity* configParam(int paramId, float minValue, float maxValue, float defaultValue, std::string name = "", std::string unit = "", float displayBase = 0.f, float displayMultiplier = 1.f, float displayOffset = 0.f) {
^
src/IceTray.cpp:285:3: error: no matching member function for call to 'configParam'
configParam(SPEED_NUM_CK_PARAM, -1.f, 1.f, 0.f, "Numerator CV Scalar", "%", 0.f, 100.f, 0.f);
^~~~~~~~~~~
/Users/runner/Rack-SDK/include/engine/Module.hpp:119:18: note: candidate function template not viable: no known conversion from 'IceTray' to 'rack::engine::Module' for object argument
TParamQuantity* configParam(int paramId, float minValue, float maxValue, float defaultValue, std::string name = "", std::string unit = "", float displayBase = 0.f, float displayMultiplier = 1.f, float displayOffset = 0.f) {
^
src/IceTray.cpp:286:3: error: no matching member function for call to 'configParam'
configParam(SPEED_DENOM_PARAM, 1.f, 11.f, 6.f, "Record Speed Denominator");
^~~~~~~~~~~
/Users/runner/Rack-SDK/include/engine/Module.hpp:119:18: note: candidate function template not viable: no known conversion from 'IceTray' to 'rack::engine::Module' for object argument
TParamQuantity* configParam(int paramId, float minValue, float maxValue, float defaultValue, std::string name = "", std::string unit = "", float displayBase = 0.f, float displayMultiplier = 1.f, float displayOffset = 0.f) {
^
src/IceTray.cpp:287:3: error: no matching member function for call to 'configParam'
configParam(SPEED_DENOM_CK_PARAM, -1.f, 1.f, 0.f, "Denominator CV Sclar", "%", 0.f, 100.f, 0.f);
^~~~~~~~~~~
/Users/runner/Rack-SDK/include/engine/Module.hpp:119:18: note: candidate function template not viable: no known conversion from 'IceTray' to 'rack::engine::Module' for object argument
TParamQuantity* configParam(int paramId, float minValue, float maxValue, float defaultValue, std::string name = "", std::string unit = "", float displayBase = 0.f, float displayMultiplier = 1.f, float displayOffset = 0.f) {
configButton(CUBE_SWITCH_PARAM + i, "Cube " + cs);
^~~~~~~~~~~~
/Users/runner/Rack-SDK/include/engine/Module.hpp:157:19: note: candidate function template not viable: no known conversion from 'IceTray' to 'rack::engine::Module' for object argument
TSwitchQuantity* configButton(int paramId, std::string name = "") {
^
src/IceTray.cpp:301:3: error: no matching member function for call to 'configInput'
configInput(LEFT_INPUT, "Left Audio Input");
^~~~~~~~~~~
/Users/runner/Rack-SDK/include/engine/Module.hpp:168:13: note: candidate function template not viable: no known conversion from 'IceTray' to 'rack::engine::Module' for object argument
TPortInfo* configInput(int portId, std::string name = "") {
^
src/IceTray.cpp:302:3: error: no matching member function for call to 'configInput'
configInput(RIGHT_INPUT, "Right Audio Input");
^~~~~~~~~~~
/Users/runner/Rack-SDK/include/engine/Module.hpp:168:13: note: candidate function template not viable: no known conversion from 'IceTray' to 'rack::engine::Module' for object argument
TPortInfo* configInput(int portId, std::string name = "") {
^
src/IceTray.cpp:303:3: error: no matching member function for call to 'configInput'
configInput(CLOCK_RECORD_INPUT, "Record Clock");
^~~~~~~~~~~
/Users/runner/Rack-SDK/include/engine/Module.hpp:168:13: note: candidate function template not viable: no known conversion from 'IceTray' to 'rack::engine::Module' for object argument
TPortInfo* configInput(int portId, std::string name = "") {
^
src/IceTray.cpp:304:3: error: no matching member function for call to 'configInput'
configInput(CLOCK_PLAYBACK_INPUT, "Playback Clock");
^~~~~~~~~~~
/Users/runner/Rack-SDK/include/engine/Module.hpp:168:13: note: candidate function template not viable: no known conversion from 'IceTray' to 'rack::engine::Module' for object argument
TPortInfo* configInput(int portId, std::string name = "") {
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [build/src/IceTray.cpp.o] Error 1
make: *** Waiting for unfinished jobs....
1 warning generated.
Error: Process completed with exit code 2.