steinbergmedia / vst3sdk

VST 3 Plug-In SDK
Other
1.61k stars 163 forks source link

Version 3.7.7 cannot fully build on linux due to missing Steinberg::SystemClipboard::copyTextToClipboard() implementation #102

Closed frispete closed 1 year ago

frispete commented 1 year ago

Hi,

an attempt to build 3.7.7 for linux results in:

[   51s] make[2]: Entering directory '/home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build'
[   51s] [ 92%] Linking CXX shared module ../../../../VST3/RelWithDebInfo/hostchecker.vst3/Contents/x86_64-linux/hostchecker.so
[   51s] cd /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/public.sdk/samples/vst/hostchecker && /usr/bin/cmake -E cmake_link_script CMakeFiles/hostchecker.dir/link.txt --verbose=1
[   51s] /usr/bin/c++ -fPIC -include cstdio -include limits -std=c++2a -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -Wno-multichar -O2 -g -DNDEBUG -flto=auto -Wl,--as-needed -shared  -o ../../../../VST3/RelWithDebInfo/hostchecker.vst3/Contents/x86_64-linux/hostchecker.so CMakeFiles/hostchecker.dir/source/editorsizecontroller.cpp.o CMakeFiles/hostchecker.dir/source/eventlistcheck.cpp.o CMakeFiles/hostchecker.dir/source/eventlogdatabrowsersource.cpp.o CMakeFiles/hostchecker.dir/source/eventlogger.cpp.o CMakeFiles/hostchecker.dir/source/factory.cpp.o CMakeFiles/hostchecker.dir/source/hostcheck.cpp.o CMakeFiles/hostchecker.dir/source/hostcheckercontroller.cpp.o CMakeFiles/hostchecker.dir/source/hostcheckerprocessor.cpp.o CMakeFiles/hostchecker.dir/source/parameterchangescheck.cpp.o CMakeFiles/hostchecker.dir/source/processcontextcheck.cpp.o CMakeFiles/hostchecker.dir/source/processsetupcheck.cpp.o CMakeFiles/hostchecker.dir/__/__/__/source/main/linuxmain.cpp.o  -lstdc++fs -lpthread -ldl ../../../../lib/RelWithDebInfo/libvstgui_support.a ../../../../lib/RelWithDebInfo/libsdk.a ../../../../lib/RelWithDebInfo/libvstgui_uidescription.a ../../../../lib/RelWithDebInfo/libvstgui.a /usr/lib64/libX11.so /usr/lib64/libXext.so /usr/lib64/libfreetype.so -lxcb -lxcb-util -lxcb-cursor -lxcb-keysyms -lxcb -lxcb-util -lxcb-cursor -lxcb-keysyms -lxcb-xkb -lxkbcommon -lxkbcommon-x11 -lxkbcommon -lxkbcommon-x11 -lglib-2.0 -lcairo -lpangocairo-1.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lcairo -lpangocairo-1.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lharfbuzz -lfontconfig -lfreetype -lfontconfig -lfreetype /usr/lib64/libexpat.so ../../../../lib/RelWithDebInfo/libsdk_common.a ../../../../lib/RelWithDebInfo/libbase.a ../../../../lib/RelWithDebInfo/libpluginterfaces.a -lstdc++fs -lpthread -ldl 
[   51s] cd /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/public.sdk/samples/vst/hostchecker && objcopy --only-keep-debug /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/VST3/RelWithDebInfo/hostchecker.vst3/Contents/x86_64-linux/hostchecker.so /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/VST3/RelWithDebInfo/hostchecker.vst3/Contents/x86_64-linux/hostchecker.so.dbg
[   51s] cd /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/public.sdk/samples/vst/hostchecker && /usr/bin/strip --strip-debug --strip-unneeded /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/VST3/RelWithDebInfo/hostchecker.vst3/Contents/x86_64-linux/hostchecker.so
[   51s] cd /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/public.sdk/samples/vst/hostchecker && objcopy --add-gnu-debuglink=/home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/VST3/RelWithDebInfo/hostchecker.vst3/Contents/x86_64-linux/hostchecker.so.dbg /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/VST3/RelWithDebInfo/hostchecker.vst3/Contents/x86_64-linux/hostchecker.so
[   51s] cd /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/bin/RelWithDebInfo && /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/bin/RelWithDebInfo/moduleinfotool -create -version 3.7.7.0 -path /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/VST3/RelWithDebInfo/hostchecker.vst3 -output /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/VST3/RelWithDebInfo/hostchecker.vst3/Contents/moduleinfo.json
[   51s] dlopen failed.
[   51s] /home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build/VST3/RelWithDebInfo/hostchecker.vst3/Contents/x86_64-linux/hostchecker.so: undefined symbol: _ZN9Steinberg15SystemClipboard19copyTextToClipboardERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmake[2]: *** [public.sdk/samples/vst/hostchecker/CMakeFiles/hostchecker.dir/build.make:306: VST3/RelWithDebInfo/hostchecker.vst3/Contents/x86_64-linux/hostchecker.so] Error 1
[   51s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/build'
[   51s] make[1]: *** [CMakeFiles/Makefile2:1341: public.sdk/samples/vst/hostchecker/CMakeFiles/hostchecker.dir/all] Error 2
[   51s] make: *** [Makefile:94: all] Error 2

which translates to:

$ c++filt _ZN9Steinberg15SystemClipboard19copyTextToClipboardERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Steinberg::SystemClipboard::copyTextToClipboard(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)

Searching this method:

$ grep -r copyTextToClipboard /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/
/var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/public.sdk/samples/vst/hostchecker/source/hostcheckercontroller.cpp:                    SystemClipboard::copyTextToClipboard (s.str ());
/var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/public.sdk/source/common/systemclipboard.h:bool copyTextToClipboard (const std::string& text);
/var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/public.sdk/source/common/systemclipboard_mac.mm:bool copyTextToClipboard (const std::string& text)
/var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/vst3sdk-3.7.7/public.sdk/source/common/systemclipboard_win32.cpp:bool copyTextToClipboard (const std::string& text)

shows, that there's no implementation for it.

Not sure, how to proceed from here (other than implementing it, but I'm a GTK noob).

ygrabit commented 1 year ago

fixed in VST SDK 3.7.8