steinbergmedia / vst3sdk

VST 3 Plug-In SDK
Other
1.59k stars 162 forks source link

Unable to build on GCC 9, Ubuntu 20.04 LTS #55

Closed Jobsecond closed 4 years ago

Jobsecond commented 4 years ago

System version:

Ubuntu 20.04 LTS

GCC version:

$ gcc --version
gcc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

CMake version:

$ cmake --version
cmake version 3.16.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).

Build output:

$ make
Scanning dependencies of target vstgui
[  1%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/animation/animations.cpp.o
[  1%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/animation/animator.cpp.o
[  1%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/animation/timingfunctions.cpp.o
[  1%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cbitmap.cpp.o
[  2%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cbitmapfilter.cpp.o
[  2%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/ccolor.cpp.o
[  2%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cdatabrowser.cpp.o
[  2%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cdrawcontext.cpp.o
[  3%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cdrawmethods.cpp.o
[  3%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cdropsource.cpp.o
[  3%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cfileselector.cpp.o
[  3%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cfont.cpp.o
[  4%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cframe.cpp.o
[  4%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cgradientview.cpp.o
[  4%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cgraphicspath.cpp.o
[  4%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/clayeredviewcontainer.cpp.o
[  5%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/clinestyle.cpp.o
[  5%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/coffscreencontext.cpp.o
[  5%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cautoanimation.cpp.o
[  5%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cbuttons.cpp.o
[  6%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/ccolorchooser.cpp.o
[  6%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/ccontrol.cpp.o
[  6%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cfontchooser.cpp.o
[  6%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cknob.cpp.o
[  6%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/clistcontrol.cpp.o
[  7%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cmoviebitmap.cpp.o
[  7%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cmoviebutton.cpp.o
[  7%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/coptionmenu.cpp.o
[  7%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cparamdisplay.cpp.o
[  8%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cscrollbar.cpp.o
[  8%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/csearchtextedit.cpp.o
[  8%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/csegmentbutton.cpp.o
[  8%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cslider.cpp.o
[  9%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cspecialdigit.cpp.o
[  9%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/csplashscreen.cpp.o
[  9%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cstringlist.cpp.o
[  9%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cswitch.cpp.o
[ 10%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/ctextedit.cpp.o
[ 10%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/ctextlabel.cpp.o
[ 10%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cvumeter.cpp.o
[ 10%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/controls/cxypad.cpp.o
[ 11%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/copenglview.cpp.o
[ 11%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cpoint.cpp.o
[ 11%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/crect.cpp.o
[ 11%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/crowcolumnview.cpp.o
[ 12%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cscrollview.cpp.o
[ 12%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cshadowviewcontainer.cpp.o
[ 12%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/csplitview.cpp.o
[ 12%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cstring.cpp.o
[ 13%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/ctabview.cpp.o
[ 13%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/ctooltipsupport.cpp.o
[ 13%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cview.cpp.o
[ 13%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cviewcontainer.cpp.o
[ 13%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/cvstguitimer.cpp.o
[ 14%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/genericstringlistdatabrowsersource.cpp.o
[ 14%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/platform/common/genericoptionmenu.cpp.o
[ 14%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/vstguidebug.cpp.o
[ 14%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/platform/common/fileresourceinputstream.cpp.o
[ 15%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/platform/common/generictextedit.cpp.o
[ 15%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/platform/linux/cairobitmap.cpp.o
/tmp/vst3sdk/vstgui4/vstgui/lib/platform/linux/cairobitmap.cpp:203:2: warning: #warning TODO: alphaPremultiplied is currently ignored, always treated as true [-Wcpp]
  203 | #warning TODO: alphaPremultiplied is currently ignored, always treated as true
      |  ^~~~~~~
[ 15%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/platform/linux/cairocontext.cpp.o
/tmp/vst3sdk/vstgui4/vstgui/lib/platform/linux/cairocontext.cpp:447:2: warning: #warning TODO: Implementation [-Wcpp]
  447 | #warning TODO: Implementation
      |  ^~~~~~~
/tmp/vst3sdk/vstgui4/vstgui/lib/platform/linux/cairocontext.cpp:532:2: warning: #warning TODO: Implementation [-Wcpp]
  532 | #warning TODO: Implementation
      |  ^~~~~~~
[ 15%] Building CXX object vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/platform/linux/cairofont.cpp.o
In file included from /usr/include/x86_64-linux-gnu/sys/stat.h:446,
                 from /usr/include/fontconfig/fontconfig.h:29,
                 from /usr/include/cairo/cairo-ft.h:50,
                 from /tmp/vst3sdk/vstgui4/vstgui/lib/platform/linux/cairofont.cpp:10:
/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed/bits/statx.h:38:25: error: missing binary operator before token "("
   38 | #if __glibc_has_include ("__linux__/stat.h")
      |                         ^
/tmp/vst3sdk/vstgui4/vstgui/lib/platform/linux/cairofont.cpp:316:2: warning: #warning TODO: Implementation [-Wcpp]
  316 | #warning TODO: Implementation
      |  ^~~~~~~
/tmp/vst3sdk/vstgui4/vstgui/lib/platform/linux/cairofont.cpp:323:2: warning: #warning TODO: Implementation [-Wcpp]
  323 | #warning TODO: Implementation
      |  ^~~~~~~
make[2]: *** [vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/build.make:856: vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/platform/linux/cairofont.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:807: vstgui4/vstgui/lib/CMakeFiles/vstgui.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
Jobsecond commented 4 years ago

Update: I tried using GCC 7 to build, everything is fine.

CC=gcc-7 CXX=g++-7 cmake ../vst3sdk/
make

Probably the code is not compatible with GCC 9 yet.

rehans commented 4 years ago

The build succeeds without any issues. I built on a clean

Ubuntu 20.04 LTS

with

gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

and

cmake version 3.16.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).

running

cmake --build . --config Release

results in

[ 18%] Built target vstgui
[ 35%] Built target vstgui_uidescription
[ 36%] Built target vstgui_support
[ 39%] Built target vstgui_standalone
[ 40%] Built target ImageStitcher
[ 40%] Built target uidesccompressor
[ 41%] Built target pluginterfaces
[ 44%] Built target base
[ 48%] Built target sdk
[ 60%] Built target validator
[ 62%] Built target adelay
[ 63%] Built target againsimple
[ 64%] Built target again
[ 66%] Built target channelcontext
[ 70%] Built target hostchecker
[ 71%] Built target legacymidiccout
[ 89%] Built target mda-vst3
[ 92%] Built target noteexpressionsynth
[ 93%] Built target noteexpressiontext
[ 94%] Built target pitchnames
[ 96%] Built target prefetchablesupport
[ 97%] Built target programchange
[100%] Built target editorhost

I am running a newer version of gcc. Maybe update your Ubuntu installation. That's the only difference I see compared to my system.