kockie69/SquinkyVCV-main

current code doesn't build

Closed this issue · 9 comments

Just tried to build these and am getting this error:

error: #error "Plugins must only include rack.hpp. Including other Rack headers is unsupported."

Fixed these (had to make sure rack.hpp includes are always done first.
But build now fails because setNextCableColor is removed....

All fixed, new codeset uploaded.

still doesn't compile for me:

In file included from src/ctrl/SemitoneDisplay.h:5,
from src/CHBModule.cpp:1:
../../include/rack.hpp:10:2: error: #error "Plugins must only include rack.hpp. Including other Rack headers is unsupported."
10 | #error "Plugins must only include rack.hpp. Including other Rack headers is unsupported."
| ^~~~~

Interesting, as my automated github builds for all 3 platforms built succesfully. They all build new fresh installs so it must be something in your environment.

yeah, ok. right. I probably don't know how to build plugins.

If I put #include "rack.hpp" at the top of each module that doesn't build the problem goes away.

I hope your response was/is cynical, and you were not offended by my response. If so, that wasn't want I meant as of course I respect your work a lot and am in no way doubting your competences.

It is not ' just' putting the include on top of the file where it is included, but you also have to make sure that file gets included first in the other files.
Actually, this whole thing doesn't really make sense to me, as it states you shouldn't include other rack files , only the rack.hpp. And as far as I know, you never break that rule.
But it solves the problem, but maybe I should raise it as an issuie to Andrew.

Yes, I do "violate" that rule. Which, btw, it a new rule, and did not exist before this week. You can find some places where I did this if you grep for #include.*/ I see a few - not sure which are the culprits. Here's an example:

#ifdef __PLUGIN
#include "engine/Param.hpp"
#include "engine/Port.hpp"
#endif

And, yes, I did find your response dismissive. As you know, "works for me" is an ancient cliche used mostly by lazy programmers. You did not seem interested at all in what the problems might be. You might have started out by trying to find out what might be going on.

Rereading my answer I understand my response could have been interpreted as "works for me" but that wasn't what I meant. I used interesting, which to me means I am interested and want to find out what is going on. As I wrote the code release I did is building without errors on all 3 platforms, so it is weird it is not working for you. Unless you didn't pull the latest version from my repo. That wasn't clear from your earlier answer.
Next poi t is if my solution is the perfect one. No I don't think it is, but it is working for now, and as I am fixing other issues as well I will work on a hopefully better release in parallel.
Again , the response wasn't meant to be dismissive.

ok. Hopefully at some point in the future these plugins will build for me.