building auwrapper

SDK for VST 3 audio plug-in and host development.
Post Reply
George99
Posts: 2
Joined: Thu Jul 30, 2020 10:06 am

building auwrapper

Post by George99 »

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::FUnknownPtr<Steinberg::IPluginBase>::FUnknownPtr(Steinberg::FUnknown*) in libauwrapper.a(auwrapper.o)
"Steinberg::IPluginFactory2::iid", referenced from:
Steinberg::FUnknownPtr<Steinberg::IPluginFactory2>::FUnknownPtr(Steinberg::FUnknown*) in libauwrapper.a(auwrapper.o)
Steinberg::FUnknownPtr<Steinberg::IPluginFactory2>::FUnknownPtr(Steinberg::FUnknown*) in libauwrapper.a(module.o)
"Steinberg::IPluginFactory3::iid", referenced from:
Steinberg::FUnknownPtr<Steinberg::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... :-(


Thanls for help
Georg

User avatar
pongasoft
Posts: 109
Joined: Sun Mar 11, 2018 5:57 pm
Location: Las Vegas, USA
Contact:

Re: building auwrapper

Post by pongasoft »

Jamba is using 3.6.9 and does it automatically for you. You may want to check how I did it https://github.com/pongasoft/jamba/tree ... audio-unit

The main CMake file is https://github.com/pongasoft/jamba/blob ... cmake#L227

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

Yan

George99
Posts: 2
Joined: Thu Jul 30, 2020 10:06 am

Re: building auwrapper

Post by George99 »

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

Post Reply