rack.hpp file not found on Mac?

Howdy!

This problem has been addressed a few times, but never on Mac. I’m just starting out with rack development, and I followed all of the steps in this tutorial, but when I went to compile MyModule.cpp, it couldn’t find the rack.hpp file, which had been included with plugin.hpp.

I feel like it has to do with my file placement. I’ve tried it two ways: first, with the MyPlugin file and the Rack-SDK file both in a file on my desktop, and then with the MyPlugin file in the Rack-SDK file.

The setup is confusing to me, though, because the src file inside of MyPlugin has a plugin.hpp file that includes rack.hpp, which in turn is being included by MyModule.cpp. The include file in Rack-SDK also has a plugin.hpp file, but it looks completely different. Is this the one that MyModule.cpp is trying to include?

That’s a lot of file talk, but does anyone know how to help? Even just telling me where you guys put your plugin folders and what’s in the src folder would help.

Thanks so much :slight_smile:

I don’t use the sdk, I build against rack. There is a plugins folder beneath the top level rack folder, then all the modules are beneath that. For example Rack/plugins/Fundamental

Here’s the folder structure for my latest project. Both my project folder, and the Rack SDK are in the same folder.

~/Source/Rack/
├── Inklen-CableColourKey
│   ├── Makefile
│   ├── plugin.json
│   ├── presets
│   │   └── CableColourKey
│   │       ├── 00_Defaults.vcvm
│   │       ├── 01_1234567890 (keys only).vcvm
│   │       ├── 02_RYGBP.vcvm
│   │       ├── 03_Omri Cohen.vcvm
│   │       └── 04_UAMSLRVTXGYCB.vcvm
│   ├── res
│   │   └── Teko-Medium-Mod-Small.ttf
│   └── src
│       ├── CableColourKey.cpp
│       ├── CableColourKeyGlobalPluginSettings.hpp
│       ├── plugin.cpp
│       └── plugin.hpp
├── Rack-SDK
│   ├── LICENSE-GPLv3.txt
│   ├── LICENSE-dist.md
│   ├── LICENSE.md
│   ├── arch.mk
│   ├── compile.mk
...

Then, from Terminal, to make/install the project:

nick@Nicks-MBP-2 ~ % cd ~/Source/Rack/Inklen-CableColourKey
nick@Nicks-MBP-2 Inklen-CableColourKey % export RACK_DIR=../Rack-SDK
nick@Nicks-MBP-2 Inklen-CableColourKey % make install

I hope that helps a little.

I believe the instructions for setting up a dev environment tell you to set and export an environment variable for the path to the sdk.

But it might just work if you put you plugin into a plugins folder in the sdk.

Rack-SDK
---include
---src
---plugins
   ---myPlugin
      ---src
      ---Makefile
      ---plugin.json

check for case inconsistancies. ie. Rack.hpp vs rack.hpp

Only on Linux. Mac isn’t case sensitive, is it?

It should be. Afaik only windows filesystems are case-insensitive.

[edit: apparently not. it can be case-sensitive, but the default is insensitive. Did not expect that :)]

1 Like

It all depends on how you prepare your disk. In Monterey, the default type of filesystem that Disk Utility is preparing when you init a new disk is APFS Encrypted - which is case-insensitive. You can select other filesystem types to make it case-sensitive.

1 Like

Independent of whether your file system is case sensitive or only case-preserving, you can never go wrong by doing 2 things:

  1. Never create two names that differ only in case
  2. Always refer to files with the exact case
1 Like

Of course, but it’s an easy mistake to make.

Definitely an easy mistake to make – happens all the time. I think it probably happens for every Windows user (case preserving) starting to use git (case sensitive). That’s why I wrote about this in the getting started guide for my last team.

1 Like

wouldn’t it be great if gcc had an option to check case on systems where the file system isn’t case sensitive?

1 Like

Yes, as long as it’s an option and not a default it would be great, because it might incur a performance hit.