Issues compiling the tip for AU host


#1

I just updated to the tip and am having trouble recompiling JUCE libs for AU hosting.

Works fine with the default flags, but setting the AU_PLUGINHOST flag I get this:

Not really sure what to make of it, so thought I would drop it here.


#2

I think I sorted this out in a check-in a couple of days ago…?

There are some hacks required to avoid the global “Point” symbol in the old Apple Carbon headers. Search for “define point” in the juce code for more info. I’m just in the middle of some big changes right now but will double-check that it all works when I next do a check-in.


#3

Nah - looks like it’s still an issue.

Thanks for all the hard work. The improvements in Juce have been phenomenal lately, even if things get temporarily broken along the way.


#4

doh! This is still an issue … even after the git update a couple days back.

Any chance I can get some love for the JUCE_PLUGINHOST_AU compiling people?


#5

In doing the new modularised stuff I built the host demo so fairly sure that works now.


#6

Hmmm … yeah, it seems the plugHost does compile fine.

Oddly though, I still get the above errors when trying to compile the Juce lib.
Not that it matters too much, I don’t have to link compiled version of Juce of course, I can just add the amalgamated.

But still - you should give it a look - this is a fresh clone, and all I did was set the AU_PLUGINHOST flag and try a compile.


#7

Any news on this issue (having the same problem here…)


#8

Is this fixed in the post-quake juce?


#9

this issue showed up shortly before the Jucequake and is yet unresolved. I am using the tip as of this morning.


#10

I fixed the host build and checked it in yesterday, didn’t I…?


#11

nope … doesn’t look like it. At least, I just did a pull but still can’t compile Juce libs with AU flag on.


#12

No, it definitely compiles now, and is definitely checked-in. Maybe you didn’t pull the right branch or something?


#13

Haha! Got it. Not sure why this is an issue for me and not you … elaborate if you can.

On my machine, a new clone of the master branch definitely still yields above errors … BECAUSE:

'Point' does not name a type in file included from ....
In file included from /Users/aaronleese/Desktop/code/juce/Builds/MacOSX/../../src/audio/plugin_host/formats/juce_AudioUnitPluginFormat.mm
In file included from /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/AudioUnit.framework/Headers/AUCocoaUIView.h
In file included from /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h 

Tracing through that, I find that juce_AudioUnitPluginFormat.mm includes …

#include “…/…/…/core/juce_TargetPlatform.h”

Which does this at line 60ish:

#elif defined (__APPLE_CPP__) || defined(__APPLE_CC__)
  #define Point CarbonDummyPointName // (workaround to avoid definition of "Point" by old Carbon headers)
  #include <CoreFoundation/CoreFoundation.h> // (needed to find out what platform we're using)
  #undef Point

Which leaves Point undefined …

Not sure what magic gets it working on you’re machine, but would be very obliged if you could look at removing that last #undef line (commenting it out seems to resolve the issue).


#14

Sorry, I was talking about the modules branch. Will have a look at the master branch.


#15

cool man, thanks. There is also some sort of scoping error in CarbonViewWrapperComponent when JUCE_SUPPORT_CARBON is enabled along JUCE_PLUGINHOST_AU. You’ll see it.


#16

Erm… it works fine for me in the master branch too.

But maybe you’ve got a Apple headers or something? Maybe try this, in juce_AudioUnitPluginFormat.mm

[code]#if JUCE_PLUGINHOST_AU && ! (JUCE_LINUX || JUCE_WINDOWS)

#define Point CarbonDummyPointName // (workaround to avoid definition of “Point” by old Carbon headers)
#include <AudioUnit/AudioUnit.h>
#include <AudioUnit/AUCocoaUIView.h>
#include <CoreAudioKit/AUGenericView.h>

#if JUCE_SUPPORT_CARBON
#include <AudioToolbox/AudioUnitUtilities.h>
#include <AudioUnit/AudioUnitCarbonView.h>
#endif
#undef Point

#include “…/…/…/core/juce_StandardHeader.h”
[/code]


#17

Yeah, that seems to do the trick.

You’re the man Jules, Thanks!


#18

Ps - looks like it happens for juce_VSTPluginFormat.cpp as well.

Just fixed it the same way as above (line 53):

#else
#define Point CarbonDummyPointName // (workaround to avoid definition of "Point" by old Carbon headers)
 #include <Cocoa/Cocoa.h>
 #include <Carbon/Carbon.h>
#undef Point
#endif

#19

I wish I knew why it compiles for me but not for you… but thanks!


#20

Yeah - it’s a mystery alright.

We must have somewhat different system files somehow … not sure why that would be though. I’m OSX 10.6 of course, nothing different about any of it as far as I know.