[Mesa-dev] [PATCH] anv/meson: Generate dev_icd.json

Chad Versace chadversary at chromium.org
Thu Nov 9 22:47:44 UTC 2017


On Thu 09 Nov 2017, Eric Engestrom wrote:
> On Wednesday, 2017-11-08 13:40:13 -0800, Chad Versace wrote:
> > On Tue 07 Nov 2017, Dylan Baker wrote:
> > > Quoting Eric Engestrom (2017-11-07 07:25:53)
> > > > On Wednesday, 2017-11-01 13:49:03 -0700, Chad Versace wrote:
> > > > > I tested this in a setup where the builddir was outside of the srcdir.
> > > > > ---
> > > > >  src/intel/vulkan/meson.build | 12 ++++++++++++
> > > > >  1 file changed, 12 insertions(+)
> > > > > 
> > > > > diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build
> > > > > index ff24e304ef5..e8b7f407507 100644
> > > > > --- a/src/intel/vulkan/meson.build
> > > > > +++ b/src/intel/vulkan/meson.build
> > > > > @@ -48,6 +48,18 @@ intel_icd = custom_target(
> > > > >    install : true,
> > > > >  )
> > > > >  
> > > > > +dev_icd = custom_target(
> > > > > +  'dev_icd',
> > > > > +  input : 'anv_icd.py',
> > > > > +  output : 'dev_icd. at 0@.json'.format(target_machine.cpu()),
> > > > 
> > > > Strictly speaking, shouldn't that be `host_machine` [1] ?
> > > > I don't see how one would do a canadian build of mesa though, so
> > > > host == target should always be true.
> > > 
> > > That's my fault. There are (or were) a number of cases where I used target
> > > instead of host, that can also be a follow up.
> > > 
> > > In any case:
> > > Acked-by: Dylan Baker <dylan at pnwbakers.com>
> > 
> > I build Mesa (with autotools) where host == x86_64 but target == armv7a.
> > 
> > The icd filename should have the same architecture as the driver it
> > loads, and that's the target_machine. You never need to access the
> > dev_icd.*.json on the host machine (that is, unless your target machine
> > and host machine are the same machine).
> 
> I might be misunderstanding, but I think there's some confusion here.
> From the meson doc I linked earlier [1]:
> 
> > - `build_machine` is the computer that is doing the actual compiling
> > - `host_machine` is the machine on which the compiled binary will run
> > - `target_machine` is the machine on which the compiled binary's
> >   output will run (this is only meaningful for programs such as
> >   compilers that, when run, produce object code for a different CPU
> >   than what the program is being run on)
> 
> I think autotools[host] == meson[build_machine] and
> autotools[target] == meson[host_machine].
> 
> If I understand correctly, you have a build_machine=x86_64 compiling
> code for a host_machine=armv7a, is that correct?
> 
> [1] http://mesonbuild.com/Cross-compilation.html

Ah, thanks for clarifying the nomenclature. I was unaware that Meson and
Autotools differed in the terms used here.

I think we all agree now. It should be named
"dev_icd.{host_machine.cpu()}.json"


More information about the mesa-dev mailing list