Cabbage Logo
Back to Cabbage Site

Build on macOs

Hello,
I’m trying to build cabbage on macOs but Xcode can’t find some files.
I tried to look for the file but I can’t find it anywhere, if I delete that file I generate a chain of other errors, mostly files not found.
Another file that can’t be found is CabbageNumberBox both cpp and h, but this one I can find it somewhere else, same for the files inside the “Juce Library Code” directory in xcode, they’re all marked red by xcode.
I’m using Juce v5.3.2 and I followed the instructions in the readme. The script buildCabbage.sh also doesn’t work, fails with multiple errors.
Please help, I’d like to build cabbage on my macOs

clang: error: no such file or directory: ‘/Users/antonio/cabbage/cabbage-2.0.03/Source/Application/CabbageContentComponent.cpp’
clang: error: no input files

I think I was able to build it, I’ll do some testing and I’ll update this thread.

Instructions at the bottom of the readme (I was trying to do everything from xcode)
launch the Projucer, open the relevant *.jucer file for the Cabbage project you wish to build, i.e, and hit save. This will auto-generate Xcode files for that particular project. Open Xcode and open the recently created xcode project, it will be found in Cabbage/Builds/MacOSX folder.

it builds but I can’t generate any of these: CabbagePluginSynth.vst, CabbagePluginEffect.component, CabbagePluginEffect.vst, CabbagePluginMIDIEffect.component. CabbagePluginSynth.component .

the projects CabbagePlugin.jucer, CabbagePluginMIDIEffect.jucer both generate VST and components named CabbagePlugin, if I try to rename them and put them in the .app component folder the plugin gets generated but it doesn’t work.

Run thy build script in the Mac OS build folder. That should do everything you need.

that’s where I’m running the build

If you want to build everything run the buildAll.sh script in that folder. If you only want to build selected projects open then on XCode and build from there.

You know there are binaries for the latest master branch for OSX available at all times?

I know there are binaries available.
there is no buildall script in the macos folder.
As I said before if I build with XCode it building process goes well but CabbagePlugin.jucer, CabbagePluginMIDIEffect.jucer, CabbagePluginSynth.jucer all produce the same files, I tried to rename them but it doesn’t work.
Cabbage IDE expects a file named CabbagePluginEffect.vst to export vsts, and none of juce project I mentioned generate that file.

This is the one I meant:

Any luck with this? That script should build everything and put it in the appropriate folders…

no, that doesn’t work.
I just tried starting clean, de-compacted Juce and Cabbage zip files, made sure xcode and projucer work fine and ran the script. I get multiple errors from running it and the generated folders are incomplete or empty.

No one else has reported problems with that script before, and it works fine for me here. For what it’s worth, you can take a look at the TravisCI file for building on OSX. The following section in particular (which is more or less the same as the buildCabbage.sh script)

https://github.com/rorywalsh/cabbage/blob/master/.travis.yml#L46-L80

The travis .yml file contains all the instructions to build Cabbage on a fresh OSX image. That has to work.

I think the problem is that every Juicer project inside the macos build folder, besides the one for the IDE, generate the exact same VST and component.
If I try to build using juicer the only project that works properly is CabbageIDE.jucer, the .app that gets generated works but I can’t export because the vst and component files are missing.
I really can’t understand why it works for you.

The errors I get from running the script are the following:

clang: error: no such file or directory: ‘/Users/antoniotari/cabbage/cabbage-2.0.03/Source/Application/CabbageContentComponent.cpp’
clang: error: no input files

/Users/antoniotari/cabbage/cabbage-2.0.03/Source/Audio/Plugins/CsoundPluginProcessor.cpp:112:2: error: unknown type name ‘PluginHostType’
PluginHostType pluginType;