* [PATCH] meson.build: Always require an objc compiler on macos hosts
@ 2024-03-11 13:33 Peter Maydell
2024-03-11 13:36 ` Daniel P. Berrangé
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Peter Maydell @ 2024-03-11 13:33 UTC (permalink / raw)
To: qemu-devel
Cc: Paolo Bonzini, Philippe Mathieu-Daudé,
Daniel P. Berrangé, Thomas Huth, Marc-André Lureau
We currently only insist that an ObjectiveC compiler is present on
macos hosts if we're building the Cocoa UI. However, since then
we've added some other parts of QEMU which are also written in ObjC:
the coreaudio audio backend, and the vmnet net backend. This means
that if you try to configure QEMU on macos with --disable-cocoa the
build will fail:
../meson.build:3741:13: ERROR: No host machine compiler for 'audio/coreaudio.m'
Since in practice any macos host will have an ObjC compiler
available, rather than trying to gate the compiler detection on an
increasingly complicated list of every bit of QEMU that uses ObjC,
just require it unconditionally on macos hosts.
Resolves https://gitlab.com/qemu-project/qemu/-/issues/2138
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
Per the commit message, in theory we could allow a no-objc
build and disable coreaudio, vmnet, etc. But I didn't really see
a reason why that would be useful, and it's bound to keep
breaking unless we actively defend it in CI. So I preferred
to simply require ObjC on macos.
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index f9dbe7634e5..e3fab8ce9ff 100644
--- a/meson.build
+++ b/meson.build
@@ -66,7 +66,7 @@ if host_os == 'windows' and add_languages('cpp', required: false, native: false)
cxx = meson.get_compiler('cpp')
endif
if host_os == 'darwin' and \
- add_languages('objc', required: get_option('cocoa'), native: false)
+ add_languages('objc', required: true, native: false)
all_languages += ['objc']
objc = meson.get_compiler('objc')
endif
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] meson.build: Always require an objc compiler on macos hosts
2024-03-11 13:33 [PATCH] meson.build: Always require an objc compiler on macos hosts Peter Maydell
@ 2024-03-11 13:36 ` Daniel P. Berrangé
2024-03-11 14:17 ` Philippe Mathieu-Daudé
2024-03-12 8:15 ` Philippe Mathieu-Daudé
2 siblings, 0 replies; 4+ messages in thread
From: Daniel P. Berrangé @ 2024-03-11 13:36 UTC (permalink / raw)
To: Peter Maydell
Cc: qemu-devel, Paolo Bonzini, Philippe Mathieu-Daudé,
Thomas Huth, Marc-André Lureau
On Mon, Mar 11, 2024 at 01:33:34PM +0000, Peter Maydell wrote:
> We currently only insist that an ObjectiveC compiler is present on
> macos hosts if we're building the Cocoa UI. However, since then
> we've added some other parts of QEMU which are also written in ObjC:
> the coreaudio audio backend, and the vmnet net backend. This means
> that if you try to configure QEMU on macos with --disable-cocoa the
> build will fail:
>
> ../meson.build:3741:13: ERROR: No host machine compiler for 'audio/coreaudio.m'
>
> Since in practice any macos host will have an ObjC compiler
> available, rather than trying to gate the compiler detection on an
> increasingly complicated list of every bit of QEMU that uses ObjC,
> just require it unconditionally on macos hosts.
>
> Resolves https://gitlab.com/qemu-project/qemu/-/issues/2138
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> Per the commit message, in theory we could allow a no-objc
> build and disable coreaudio, vmnet, etc. But I didn't really see
> a reason why that would be useful, and it's bound to keep
> breaking unless we actively defend it in CI. So I preferred
> to simply require ObjC on macos.
Yeah, I think simplicity wins here, unless someone can provide
a compelling reason why they absolutely must be able to build
without objc being present, even if it were unused.
> meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
>
> diff --git a/meson.build b/meson.build
> index f9dbe7634e5..e3fab8ce9ff 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -66,7 +66,7 @@ if host_os == 'windows' and add_languages('cpp', required: false, native: false)
> cxx = meson.get_compiler('cpp')
> endif
> if host_os == 'darwin' and \
> - add_languages('objc', required: get_option('cocoa'), native: false)
> + add_languages('objc', required: true, native: false)
> all_languages += ['objc']
> objc = meson.get_compiler('objc')
> endif
> --
> 2.34.1
>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] meson.build: Always require an objc compiler on macos hosts
2024-03-11 13:33 [PATCH] meson.build: Always require an objc compiler on macos hosts Peter Maydell
2024-03-11 13:36 ` Daniel P. Berrangé
@ 2024-03-11 14:17 ` Philippe Mathieu-Daudé
2024-03-12 8:15 ` Philippe Mathieu-Daudé
2 siblings, 0 replies; 4+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-03-11 14:17 UTC (permalink / raw)
To: Peter Maydell, qemu-devel
Cc: Paolo Bonzini, Daniel P. Berrangé, Thomas Huth,
Marc-André Lureau
On 11/3/24 14:33, Peter Maydell wrote:
> We currently only insist that an ObjectiveC compiler is present on
> macos hosts if we're building the Cocoa UI. However, since then
> we've added some other parts of QEMU which are also written in ObjC:
> the coreaudio audio backend, and the vmnet net backend. This means
> that if you try to configure QEMU on macos with --disable-cocoa the
> build will fail:
>
> ../meson.build:3741:13: ERROR: No host machine compiler for 'audio/coreaudio.m'
>
> Since in practice any macos host will have an ObjC compiler
> available, rather than trying to gate the compiler detection on an
> increasingly complicated list of every bit of QEMU that uses ObjC,
> just require it unconditionally on macos hosts.
>
> Resolves https://gitlab.com/qemu-project/qemu/-/issues/2138
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> Per the commit message, in theory we could allow a no-objc
> build and disable coreaudio, vmnet, etc. But I didn't really see
> a reason why that would be useful, and it's bound to keep
> breaking unless we actively defend it in CI. So I preferred
> to simply require ObjC on macos.
>
> meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] meson.build: Always require an objc compiler on macos hosts
2024-03-11 13:33 [PATCH] meson.build: Always require an objc compiler on macos hosts Peter Maydell
2024-03-11 13:36 ` Daniel P. Berrangé
2024-03-11 14:17 ` Philippe Mathieu-Daudé
@ 2024-03-12 8:15 ` Philippe Mathieu-Daudé
2 siblings, 0 replies; 4+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-03-12 8:15 UTC (permalink / raw)
To: Peter Maydell, qemu-devel
Cc: Paolo Bonzini, Daniel P. Berrangé, Thomas Huth,
Marc-André Lureau
On 11/3/24 14:33, Peter Maydell wrote:
> We currently only insist that an ObjectiveC compiler is present on
> macos hosts if we're building the Cocoa UI. However, since then
> we've added some other parts of QEMU which are also written in ObjC:
> the coreaudio audio backend, and the vmnet net backend. This means
> that if you try to configure QEMU on macos with --disable-cocoa the
> build will fail:
>
> ../meson.build:3741:13: ERROR: No host machine compiler for 'audio/coreaudio.m'
>
> Since in practice any macos host will have an ObjC compiler
> available, rather than trying to gate the compiler detection on an
> increasingly complicated list of every bit of QEMU that uses ObjC,
> just require it unconditionally on macos hosts.
>
> Resolves https://gitlab.com/qemu-project/qemu/-/issues/2138
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> Per the commit message, in theory we could allow a no-objc
> build and disable coreaudio, vmnet, etc. But I didn't really see
> a reason why that would be useful, and it's bound to keep
> breaking unless we actively defend it in CI. So I preferred
> to simply require ObjC on macos.
>
> meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Queued, thanks.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-03-12 8:16 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-11 13:33 [PATCH] meson.build: Always require an objc compiler on macos hosts Peter Maydell
2024-03-11 13:36 ` Daniel P. Berrangé
2024-03-11 14:17 ` Philippe Mathieu-Daudé
2024-03-12 8:15 ` Philippe Mathieu-Daudé
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).