Skip to content
Snippets Groups Projects
  • Paolo Bonzini's avatar
    3b4da132
    configure: automatically parse command line for meson -D options · 3b4da132
    Paolo Bonzini authored
    
    Right now meson_options.txt lists about 90 options.  Each option
    needs code in configure to parse it and pass the option down to Meson as
    a -D command-line argument; in addition the default must be duplicated
    between configure and meson_options.txt.  This series tries to remove
    the code duplication by generating the case statement for those --enable
    and --disable options, as well as the corresponding help text.
    
    About 80% of the options can be handled completely by the new mechanism.
    Eight meson options are not of the --enable/--disable kind.  Six more need
    to be parsed in configure for various reasons documented in the patch,
    but they still have their help automatically generated.
    
    The advantages are:
    
    - less code in configure
    
    - parsing and help is more consistent (for example --enable-blobs was
      not supported)
    
    - options are described entirely in one place, meson_options.txt.
      This make it more attractive to use Meson options instead of
      hand-crafted configure options and config-host.mak
    
    A few options change name: --enable-tcmalloc and --enable-jemalloc
    become --enable-malloc={tcmalloc,jemalloc}; --disable-blobs becomes
    --disable-install-blobs; --enable-trace-backend becomes
    --enable-trace-backends.  However, the old names are allowed
    for backwards compatibility.
    
    Message-Id: <20211007130829.632254-19-pbonzini@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    3b4da132
    History
    configure: automatically parse command line for meson -D options
    Paolo Bonzini authored
    
    Right now meson_options.txt lists about 90 options.  Each option
    needs code in configure to parse it and pass the option down to Meson as
    a -D command-line argument; in addition the default must be duplicated
    between configure and meson_options.txt.  This series tries to remove
    the code duplication by generating the case statement for those --enable
    and --disable options, as well as the corresponding help text.
    
    About 80% of the options can be handled completely by the new mechanism.
    Eight meson options are not of the --enable/--disable kind.  Six more need
    to be parsed in configure for various reasons documented in the patch,
    but they still have their help automatically generated.
    
    The advantages are:
    
    - less code in configure
    
    - parsing and help is more consistent (for example --enable-blobs was
      not supported)
    
    - options are described entirely in one place, meson_options.txt.
      This make it more attractive to use Meson options instead of
      hand-crafted configure options and config-host.mak
    
    A few options change name: --enable-tcmalloc and --enable-jemalloc
    become --enable-malloc={tcmalloc,jemalloc}; --disable-blobs becomes
    --disable-install-blobs; --enable-trace-backend becomes
    --enable-trace-backends.  However, the old names are allowed
    for backwards compatibility.
    
    Message-Id: <20211007130829.632254-19-pbonzini@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>