On Sun, Mar 03, 2024 at 12:39:12PM -0800, Alan Coopersmith wrote: > On 3/3/24 12:06, tlaro...@kergis.com wrote: > > [I'm back to working on Xorg stuff]. > > > > When writing a meson.build, I realize that all the options settable > > with GNU AC are not available in meson built-ins. This does mean > > that one has to add a meson_options.txt for everything used that is > > not a built-in options in meson? > > > > I take the example of xorg-sgml-doctools. I think there are two bugs: > > > > 1) meson.build defines: > > > > datarootdir = get_option('prefix') / get_option('datadir') > > sgmlrootdir = datarootdir / 'sgml' > > > > and generates the pkgconfig file from the template with: > > > > pc_conf = configuration_data({ > > 'prefix': get_option('prefix'), > > 'datarootdir': '${prefix}/share', > > 'sgmlrootdir': '${datarootdir}/sgml', > > 'PACKAGE_VERSION': meson.project_version() > > }) > > configure_file(input: 'xorg-sgml-doctools.pc.in', > > output: 'xorg-sgml-doctools.pc', > > install_dir: get_option('datadir') / 'pkgconfig', > > configuration: pc_conf) > > > > Above, for the pkgconfig file, datarootdir is reset with something > > that can be different from the first definition if 'datadir' (a meson > > built-in option) is something else than the default 'share'. > > That seems like a mistake - I don't remember any reason that the datadir & > sgmlrootdir variables weren't used for the values in pc_conf. > > > 2) In the pkgconfig template, there are: > > > > prefix=@prefix@ > > datarootdir=@datarootdir@ > > sgmlrootdir=@sgmlrootdir@ > > > > These can all be set, if I'm not mistaken, with AC, independantly. But > > with the meson file, since there are no meson_options.txt, not exactly > > the same thing can be achieved (for example, sgmlrootdir can not be > > set independantly). > > I don't see any way in the autoconf to set sgmlrootdir - it appears to be > hardcoded in configure.ac to: > > AC_SUBST([sgmlrootdir],['${datarootdir}/sgml']) > > and there's no flag to set it listed by configure --help nor do I see any > flags > defined in that configure.ac to check with AC_ARG_WITH or similar.
They are so many things "implied" by AC, with a mix of lowercase/uppercase, and no trace in configure.ac, that I had taken it for granted that all the '@string@' were converted automatically to configurable options... Since I'm on writing meson stuff for xcb-proto (I'm neither using meson nor python myself, but meson.build is far more readable for me than the AC stuff), I will fix xorg-sgml-doctools also by the way, adding as meson options whatever is settable by the AC stuff (configuring the AC stuff and simply looking at the options; better than guessing ;-) -- Thierry Laronde <tlaronde +AT+ kergis +dot+ com> http://www.kergis.com/ http://kertex.kergis.com/ Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C