[Ardour-Dev] building A3 on OSX; patches

Robin Gareus robin at gareus.org
Tue Nov 29 07:27:41 PST 2011


On 11/29/2011 03:50 PM, Paul Davis wrote:
[..]
> excellent point. i'd prefer something that, rather than removing AU
> support, removed Carbon AU support. i wonder how complex that is.

libs/ardour/audio_unit.cc is using Carbon which has 64bit support.

It is _quartz_ holding back the 64bit build. Only
gtk2_ardour/au_pluginui.mm needs to be rewritten or removed.

../gtk2_ardour/au_pluginui.mm: In destructor 'virtual
AUPluginUI::~AUPluginUI()':
../gtk2_ardour/au_pluginui.mm:201: error: 'DisposeWindow' was not
declared in this scope
../gtk2_ardour/au_pluginui.mm: In member function 'int
AUPluginUI::create_carbon_view()':
../gtk2_ardour/au_pluginui.mm:430: error: 'CreateNewWindow' was not
declared in this scope
../gtk2_ardour/au_pluginui.mm:436: error: 'GetRootControl' was not
declared in this scope
../gtk2_ardour/au_pluginui.mm:438: error: 'DisposeWindow' was not
declared in this scope
../gtk2_ardour/au_pluginui.mm:449: error: 'DisposeWindow' was not
declared in this scope
../gtk2_ardour/au_pluginui.mm:457: error: 'GetControlBounds' was not
declared in this scope
../gtk2_ardour/au_pluginui.mm:464: error: 'SizeWindow' was not declared
in this scope
../gtk2_ardour/au_pluginui.mm: In member function 'virtual void
AUPluginUI::activate()':
../gtk2_ardour/au_pluginui.mm:493: error: 'ActivateWindow' was not
declared in this scope
../gtk2_ardour/au_pluginui.mm: In member function 'virtual void
AUPluginUI::deactivate()':
../gtk2_ardour/au_pluginui.mm:500: error: 'ActivateWindow' was not
declared in this scope
../gtk2_ardour/au_pluginui.mm: In member function 'int
AUPluginUI::parent_carbon_window()':
../gtk2_ardour/au_pluginui.mm:533: error: 'MoveWindow' was not declared
in this scope
../gtk2_ardour/au_pluginui.mm:534: error: 'ShowWindow' was not declared
in this scope
../gtk2_ardour/au_pluginui.mm:539: error: 'SetWindowActivationScope' was
not declared in this scope
../gtk2_ardour/au_pluginui.mm: In member function 'virtual void
AUPluginUI::on_window_hide()':
../gtk2_ardour/au_pluginui.mm:651: error: 'HideWindow' was not declared
in this scope
../gtk2_ardour/au_pluginui.mm:652: error: 'ActivateWindow' was not
declared in this scope
../gtk2_ardour/au_pluginui.mm: In member function 'virtual bool
AUPluginUI::on_window_show(const std::string&)':
../gtk2_ardour/au_pluginui.mm:668: error: 'ShowWindow' was not declared
in this scope
../gtk2_ardour/au_pluginui.mm:669: error: 'ActivateWindow' was not
declared in this scope


Now that I've got AU support working, I'll see if I can modify my
patches to build a 64bit version w/ AU Support but w/o AU-GUI.

I'll report back later. These >1 hour compile time after modifying
compiler flags causes flashbacks. Though waf is better in many ways,
for quick tests as such: autotools is much easier to subvert. Any hints
on how to override waf's dependency system are welcomed.

> [ ... ]
> 
> ok, all makes sense now. thanks for explaining that.
> 
>> I think it can be explained like this:
>>
>> The CoreFoundation.h header that is included from audio_unit.cc uses the
>> _Cocoa_ API these days (getCFRunLoop(), CFRunLoopGetCurrent() etc.).
>>
>> GetCurrentEventLoop() is part of the _Carbon_ Event Manager. You need to
>> explicitly include Carbon headers and link to the Carbon Framework on
>> OSX >=10.6.
> 
> we need to get rid of it.

Of what? OSX? sure.

The Carbon Event mgr calls? Why? Just include <Carbon/Carbon.h>; that
should be good until there's gtk+4.0 with Cocoa backend and APPLE
deprecates Cocoa :-)

robin



More information about the Ardour-Dev mailing list