Plugin Deps Resolution

Hi

I have a plugin (https://github.com/surge-synthesizer/surge-rack) which has a sub-module. If I build it using

git submodule update --init --recursive
RACK_DIR=(...) make

then everything works. If I haven’t done the submodule update, it doesn’t, of course, because it doesn’t find the submodule.

But I have been trying somewhat futile-ly to make it so the submodule init is part of my DEPS. I did something glike

DEPS += surge/LICENSE

and then had a rule for surge/LICENSE which did a submodule update, but that rule fires after my C++ tries to build (and fails)

So my question is

  1. Is it OK if my plugin requires a submodule update before a build - like will that break the plugin manager or is that an expected step for when I submit it? and
  2. Assuming it is not, is there some makefile magic for a plugin I just can’t figure out which does the submodule update --init --recursive before the build starts?

Thank you for any help.

IMO Makefiles shouldn’t know about git. Theoretically someone should be able to ZIP your source and build it after manually copying submodules based on .gitmodules.

OK cool. That’s fine with me as long as it won’t screw up the community builds! (And while I would have been OK with either option, I agree with you - I explicitly do a submodule in our CI builds rather than have the makefile do it).

Heya! So just checking again. I got a user today whose build of my modules failed because

  1. They hadn’t done a git submodule update —init —recursive
  2. make dep didn’t do that step

So while I understand @vortico’s point about git and makefiles, just wondering if other folks with submodules for their plugins have taken a different tack.

Just say RTFM and point them to https://vcvrack.com/manual/Building.html#building-rack-plugins.

2 Likes

Clear as day. OK! (I update my README also with a reminder)

1 Like