[Mesa-dev] [PATCH] RFC: meson: Add a new build-dev-tools option

Rob Clark robdclark at gmail.com
Sat Nov 11 23:50:28 UTC 2017


On Sat, Nov 11, 2017 at 5:39 PM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> On Sat, Nov 11, 2017 at 10:30 AM, Rob Clark <robdclark at gmail.com> wrote:
>>
>> On Sat, Nov 11, 2017 at 12:42 PM, Jason Ekstrand <jason at jlekstrand.net>
>> wrote:
>> > A variety of the different drivers in mesa have some sort of developer
>> > tools to go along with them.  Normal users don't want these but devs do.
>> > This commit adds a new build-dev-tools option which causes these tools
>> > to be built and installed.
>>
>> fwiw, nouveau and etnaviv also have standalone compilers
>>
>> And I kinda think mesa already has too many build config options
>> already,
>
>
> Yeah...  that may be. I've stopped noticing as I just have a build script
> that does it all for me (and, incidentally works with both autotools and
> meson).
>

I go for regen-debug.sh and regen-release.sh scripts to save typing..
but it occurred to me a autotools -> meson compat script would be
clever.. if you have some neat trick, pls share ;-)

>>
>> so maybe tying these to debug build would be a reasonable way
>> to avoid adding another.. I don't insist on it if someone else has a
>> reason to build their driver's "dev tools" outside of a debug build,
>> but I really only have use for ir3compiler in the context of a debug
>> build.
>
>
> Maybe...  However, the aubinator tools that we have are something you may
> want to at least use with a release build.  Whether or not there's any point
> in building them in release mode, I don't know.  Sometimes it is useful to
> use the aubinator out of the same branc as you're hacking on.
>

I tend to jump back and forth between debug and release builds with
out-of-tree builds on same branch.. even before meson, although I
can't say I object to meson enforcing that pattern.. at least it means
I don't have to debug broken out-of-tree builds again ;-)

usually I want both debug and release builds of same thing (release to
profile, and jumping back to debug as soon as I notice something
broken)

BR,
-R

>>
>> BR,
>> -R
>>
>> > Cc: Rob Clark <robdclark at gmail.com>
>> > Cc: Dylan Baker <dylan at pnwbakers.com>
>> > ---
>> >  meson.build                               | 5 +++++
>> >  meson_options.txt                         | 6 ++++++
>> >  src/gallium/drivers/freedreno/meson.build | 3 ++-
>> >  src/intel/meson.build                     | 4 +++-
>> >  src/intel/tools/meson.build               | 6 ++++--
>> >  5 files changed, 20 insertions(+), 4 deletions(-)
>> >
>> > diff --git a/meson.build b/meson.build
>> > index 1f6658b..98b72e9 100644
>> > --- a/meson.build
>> > +++ b/meson.build
>> > @@ -411,6 +411,11 @@ elif with_amd_vk
>> >    error('Radv requires shader cache support')
>> >  endif
>> >
>> > +build_dev_tools = get_option('build-dev-tools')
>> > +if build_dev_tools and get_option('buildtype') == 'release'
>> > +  warning('The build-dev-tools option is for developers only.  Distros
>> > and regular users should leave it off.')
>> > +endif
>> > +
>> >  # Check for GCC style builtins
>> >  foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect',
>> > 'ffs',
>> >               'ffsll', 'popcount', 'popcountll', 'unreachable']
>> > diff --git a/meson_options.txt b/meson_options.txt
>> > index 6c9cd33..8e2716a 100644
>> > --- a/meson_options.txt
>> > +++ b/meson_options.txt
>> > @@ -182,3 +182,9 @@ option(
>> >    choices : ['8', '16', '32'],
>> >    description : 'Number of channel bits for OSMesa.'
>> >  )
>> > +option(
>> > +  'build-dev-tools',
>> > +  type : 'boolean',
>> > +  value : false,
>> > +  description: 'Build and install developer tools.  This option is
>> > recommended for developers only and should not be set by users or
>> > packagers.'
>> > +)
>> > diff --git a/src/gallium/drivers/freedreno/meson.build
>> > b/src/gallium/drivers/freedreno/meson.build
>> > index 3fb94ed..cffb9cd 100644
>> > --- a/src/gallium/drivers/freedreno/meson.build
>> > +++ b/src/gallium/drivers/freedreno/meson.build
>> > @@ -224,5 +224,6 @@ ir3_compiler = executable(
>> >      libglsl_standalone,
>> >      libmesa_util,
>> >    ],
>> > -  build_by_default : true,
>> > +  install : build_dev_tools,
>> > +  build_by_default : build_dev_tools,
>> >  )
>> > diff --git a/src/intel/meson.build b/src/intel/meson.build
>> > index 5767608..777afbf 100644
>> > --- a/src/intel/meson.build
>> > +++ b/src/intel/meson.build
>> > @@ -25,7 +25,9 @@ subdir('genxml')
>> >  subdir('common')
>> >  subdir('isl')
>> >  subdir('compiler')
>> > -subdir('tools')
>> > +if (with_dri_i965 or intel_vk) and build_dev_tools
>> > +  subdir('tools')
>> > +endif
>> >  if with_intel_vk
>> >    subdir('vulkan')
>> >  endif
>> > diff --git a/src/intel/tools/meson.build b/src/intel/tools/meson.build
>> > index 1996d52..b64a005 100644
>> > --- a/src/intel/tools/meson.build
>> > +++ b/src/intel/tools/meson.build
>> > @@ -25,7 +25,8 @@ aubinator = executable(
>> >    include_directories : [inc_common, inc_intel],
>> >    link_with : [libintel_common, libintel_compiler, libmesa_util],
>> >    c_args : [c_vis_args, no_override_init_args],
>> > -  build_by_default : false,
>> > +  build_by_default : true,
>> > +  install : true,
>> >  )
>> >
>> >  aubinator_error_decode = executable(
>> > @@ -35,5 +36,6 @@ aubinator_error_decode = executable(
>> >    include_directories : [inc_common, inc_intel],
>> >    link_with : [libintel_common, libintel_compiler, libmesa_util],
>> >    c_args : [c_vis_args, no_override_init_args],
>> > -  build_by_default : false,
>> > +  build_by_default : true,
>> > +  install : true,
>> >  )
>> > --
>> > 2.5.0.400.gff86faf
>> >
>
>


More information about the mesa-dev mailing list