Message ID | 20220215120625.64711-4-f4bug@amsat.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | buildsys: More fixes to use GCC on macOS | expand |
On Dienstag, 15. Februar 2022 13:06:24 CET Philippe Mathieu-Daudé via wrote: > The coreaudio library includes Objective-C declarations (using the > caret '^' symbol to declare block references [*]). When building > with a C compiler we get: > > [175/839] Compiling C object libcommon.fa.p/audio_coreaudio.c.o > In file included from > /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/System/Library/Framew > orks/CoreAudio.framework/Headers/CoreAudio.h:18, from > ../../audio/coreaudio.c:26: > > /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/System/Library/Framew > orks/CoreAudio.framework/Headers/AudioHardware.h:162:2: error: expected > identifier or '(' before '^' token 162 | > (^AudioObjectPropertyListenerBlock)( UInt32 > inNumberAddresses, > | ^ > > FAILED: libcommon.fa.p/audio_coreaudio.c.o > > Rename the file to use the Objective-C default extension (.m) so > meson calls the correct compiler. > > [*] > https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ > ProgrammingWithObjectiveC/WorkingwithBlocks/WorkingwithBlocks.html > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- We already had a similar discussion before [1] whether to use .c and add required compiler flags or using .m. I find this solution more appropriate. Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com> [1] https://lore.kernel.org/all/7053351.4JHWUSIRgT@silver/ Best regards, Christian Schoenebeck > audio/{coreaudio.c => coreaudio.m} | 0 > audio/meson.build | 2 +- > 2 files changed, 1 insertion(+), 1 deletion(-) > rename audio/{coreaudio.c => coreaudio.m} (100%) > > diff --git a/audio/coreaudio.c b/audio/coreaudio.m > similarity index 100% > rename from audio/coreaudio.c > rename to audio/coreaudio.m > diff --git a/audio/meson.build b/audio/meson.build > index d9b295514f..94dab16891 100644 > --- a/audio/meson.build > +++ b/audio/meson.build > @@ -7,7 +7,7 @@ softmmu_ss.add(files( > 'wavcapture.c', > )) > > -softmmu_ss.add(when: coreaudio, if_true: files('coreaudio.c')) > +softmmu_ss.add(when: coreaudio, if_true: files('coreaudio.m')) > softmmu_ss.add(when: dsound, if_true: files('dsoundaudio.c', > 'audio_win_int.c')) > > audio_modules = {}
diff --git a/audio/coreaudio.c b/audio/coreaudio.m similarity index 100% rename from audio/coreaudio.c rename to audio/coreaudio.m diff --git a/audio/meson.build b/audio/meson.build index d9b295514f..94dab16891 100644 --- a/audio/meson.build +++ b/audio/meson.build @@ -7,7 +7,7 @@ softmmu_ss.add(files( 'wavcapture.c', )) -softmmu_ss.add(when: coreaudio, if_true: files('coreaudio.c')) +softmmu_ss.add(when: coreaudio, if_true: files('coreaudio.m')) softmmu_ss.add(when: dsound, if_true: files('dsoundaudio.c', 'audio_win_int.c')) audio_modules = {}
The coreaudio library includes Objective-C declarations (using the caret '^' symbol to declare block references [*]). When building with a C compiler we get: [175/839] Compiling C object libcommon.fa.p/audio_coreaudio.c.o In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/CoreAudio.h:18, from ../../audio/coreaudio.c:26: /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardware.h:162:2: error: expected identifier or '(' before '^' token 162 | (^AudioObjectPropertyListenerBlock)( UInt32 inNumberAddresses, | ^ FAILED: libcommon.fa.p/audio_coreaudio.c.o Rename the file to use the Objective-C default extension (.m) so meson calls the correct compiler. [*] https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithBlocks/WorkingwithBlocks.html Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- audio/{coreaudio.c => coreaudio.m} | 0 audio/meson.build | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename audio/{coreaudio.c => coreaudio.m} (100%)