Building auwrapper

Hallo,
I’m locking for some hints, how to build the AUwrapper and a Plugin that uses it.
I have installed VST 3.6.9
I have installed the Core Audio SDK beside the VST3_SDK-Folder.

[VST_SDK]
| |
[VST3_SDK] [CoreAudio]

The SMTG_COREAUDIO_SDK_PATH is set correctly to this path.
But cmake does not create a target for the again_au-example.

I found in “public.sdk\source\vst\auwrapper\CMakeLists.txt”

and in “public.sdk\source\vst\auwrapper\again\CMakeLists.txt”

the SMTG_MAC option must be set.

I have done it. Now I have the auwrapper and the agein_au target are in the project.
But it builds with some errors:

Building with Xcode version: 9.0
macOS Deployment Target: 10.10

CMake Error at public.sdk/source/vst/auwrapper/CMakeLists.txt:48 (add_library):
Cannot find source file:
/Users/georg/Documents/VST_SDK/VST3_SDK/public.sdk/source/vst/hosting/pluginterfacesupport.cpp

I found the ‘pluginterfacesupport.cpp’ file not in the SDK but in the internet.
I copied it and put it in the SDK.

Now it compiles but I get some linker errors:

“VST3::StringConvert::convert(char16_t const*, unsigned int)”, referenced from:
VST3::Hosting::ClassInfo::ClassInfo(Steinberg::PClassInfoW const&) in libauwrapper.a(module.o)
“VST3::StringConvert::convert(char const*, unsigned int)”, referenced from:
VST3::Hosting::FactoryInfo::vendor() const in libauwrapper.a(module.o)
VST3::Hosting::FactoryInfo::url() const in libauwrapper.a(module.o)
VST3::Hosting::FactoryInfo::email() const in libauwrapper.a(module.o)
VST3::Hosting::ClassInfo::ClassInfo(Steinberg::PClassInfo const&) in libauwrapper.a(module.o)
VST3::Hosting::ClassInfo::ClassInfo(Steinberg::PClassInfo2 const&) in libauwrapper.a(module.o)
VST3::Hosting::ClassInfo::ClassInfo(Steinberg::PClassInfoW const&) in libauwrapper.a(module.o)
“Steinberg::IPluginBase::iid”, referenced from:
Steinberg::FUnknownPtrSteinberg::IPluginBase::FUnknownPtr(Steinberg::FUnknown*) in libauwrapper.a(auwrapper.o)
“Steinberg::IPluginFactory2::iid”, referenced from:
Steinberg::FUnknownPtrSteinberg::IPluginFactory2::FUnknownPtr(Steinberg::FUnknown*) in libauwrapper.a(auwrapper.o)
Steinberg::FUnknownPtrSteinberg::IPluginFactory2::FUnknownPtr(Steinberg::FUnknown*) in libauwrapper.a(module.o)
“Steinberg::IPluginFactory3::iid”, referenced from:
Steinberg::FUnknownPtrSteinberg::IPluginFactory3::FUnknownPtr(Steinberg::FUnknown*) in libauwrapper.a(module.o)

I found in “public.sdk\source\vst\hosting”
the “stringconvert.cpp” with a lot of string convert functions but it seems, the missed symbols are not there.

It is not realy easy to understand… :frowning:


Thanls for help
Georg

Jamba is using 3.6.9 and does it automatically for you. You may want to check how I did it jamba/audio-unit at master · pongasoft/jamba · GitHub

The main CMake file is jamba/jamba.cmake at v4.4.0 · pongasoft/jamba · GitHub

An easy way to see it in action is to go to Web - Jamba generate a dummy plugin, follow the instructions to configure and then you can run ./jamba.sh build-au

Yan

Thank you, Yan for your answer.
I have discovert your jamba project befor. It is a great work!
I could build with it a xcode project. It compiles the plugin and others, but while creating the au-plugin the linker fails.
A lot of symbols were not found:
Steinberg::IPluginBase::iid
Steinberg::IPluginFactory2::iid
Steinberg::Vst::IComponent::iid
and some more.
But these symbols are defined in headerfiles e.g. “ipluginbase.h” or “ivstcomponent.h” which are includet in the xcode project.
May be, there is something wrong with my configuration or some trouble with dependencies or namespaces.
I don’t know, but I’m not so familiar with software developement on Mac.

Jörg