clangen / musikcube

a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
https://musikcube.com
BSD 3-Clause "New" or "Revised" License
4.08k stars 295 forks source link

[macOS] ObjC sources do not build with gcc #656

Closed barracuda156 closed 5 months ago

barracuda156 commented 5 months ago
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_musikcube/musikcube/work/musikcube-3.0.2/src/plugins/macosmediakeys/NSObject+SPInvocationGrabbing.m: In function '-[SPInvocationGrabber runInBackground]':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_musikcube/musikcube/work/musikcube-3.0.2/src/plugins/macosmediakeys/NSObject+SPInvocationGrabbing.m:39:14: error: '-fobjc-exceptions' is required to enable Objective-C exception syntax
   39 |         @try {
      |              ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_musikcube/musikcube/work/musikcube-3.0.2/src/plugins/macosmediakeys/NSObject+SPInvocationGrabbing.m: In function '-[SPInvocationGrabber printBacktrace]':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_musikcube/musikcube/work/musikcube-3.0.2/src/plugins/macosmediakeys/NSObject+SPInvocationGrabbing.m:91:9: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
   91 |         for(int x = 3; x < frameCount; x++) {
      |         ^~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_musikcube/musikcube/work/musikcube-3.0.2/src/plugins/macosmediakeys/NSObject+SPInvocationGrabbing.m:91:9: note: use option '-std=c99', '-std=gnu99', '-std=c11' or '-std=gnu11' to compile your code
make[2]: *** [src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/NSObject+SPInvocationGrabbing.m.o] Error 1
barracuda156 commented 5 months ago

Okay, this actually compiles if -std=c11 -fobjc-exceptions is passed to cflags (which is not done automatically).