-
-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmake: support building VST3 #330
Conversation
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.vst3/Contents/${vst3_arch}-win/$<0:>") | ||
else() | ||
set_target_properties("${NAME}-vst3" PROPERTIES | ||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.vst3/Contents/${vst3_arch}-linux/$<0:>") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm this is not quite correct due to DPF supporting basically anything posix compatible..
I know Steinberg has no spec outside of mac, windows and linux, but that perhaps should not stop us?
Or maybe we raise the issue upstream.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unless mistaken, it would appear that at least FreeBSD already supports the "linux" naming.
The port of sfizz has the VST build option, and we don't have a complaint by yuri about it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tbf yuri just packages things without much concern, so even without complaints it still doesnt seem right.
does bsd even have a vst3 host at this point? (not sure how ardour or qtractor work there)
if someone wants to ship a multi-os binary that includes bsd and linux at the same time, well that is just not possible if both are defined as "linux"
on bsd it would seem logical to just use the "bsd" string instead of "linux". but for a few other systems it is not so clear.
the vst3 spec just needs to say what format or style to use for not-yet-inside-vst3-defined-systems.
lets raise an issue upstream, I will do that now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
opened ticket at steinbergmedia/vst3sdk#86
Do you know if the vst2 macos bundle plist can be used as-is for vst3? The windows build error is an odd one there, perhaps due to the location of V3_API ? |
According to what we have in sfizz, most likely yes.
It would seem so, |
8b655ba
to
f50a866
Compare
Note: Thread and Mutex do not work on MS compiler |
It is not properly supported in mingw and it is a C++11 feature. The thread should be commented out for macos/windows, or I guess more easily for now to just comment it out for windows. |
Note you can't remove the V3_API from the lambda functions, it is needed by mingw32 builds. |
I didn't try anything except to get it to build, which currently it doesn't. With that compiler, the non-capturing lambda pointer admits a conversion operator to a stdcall version of it. |
oh wow, impressively bad haha I will try to get rid of the lambdas soon then, won't postpone it much. |
It's done. |
Thanks! |
Builds the VST3 bundle, has support code to determine the name of the architecture folder.
Has a to-do remark on macOS, lacking the
Info.plist
template at the moment.Add detections for ARM/ARM64 Windows architectures later.
For now it's mentioned by Steinberg as "Proposal" only, and I don't know MSVC architecture strings for this pair.