As written in a previous mail, I'm trying to adjust meson to provide the same rope as AC.
For xorg-sgml-doctools, there was a small discrepancy if the user was not selecting the defaults. This is easy to fix (diff attached), but I now wonder about pkgconfig .pc files directory. In generated aclocal.m4, pkgconfigdir is said to be, by default, ${libdir}/pkgconfig, and supposed to be settable with --with-pkgconfigdir (it is not settable in fact: the option is not recognized). We put .pc files in ${datadir}/pkgconfig. By default, datadir == datarootdir, but this can be changed (with AC) so that X11 stuff is put in a dedicated subdir, while pkgconfig files are reachable in a more general dir. In fact, on my OS (NetBSD), pkgconfig files are placed in ${libdir}/pkgconfig and not ${datarootdir}/pkgconfig. So is there some rule about this for X11 stuff? -- 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
diff --git a/meson.build b/meson.build index 5b38853..e2fabc5 100644 --- a/meson.build +++ b/meson.build @@ -1,25 +1,43 @@ project('xorg-sgml-doctools', version: '1.12', - meson_version: '>= 0.49.0', + meson_version: '>= 0.58.0', license: 'MIT' ) -datarootdir = get_option('prefix') / get_option('datadir') +# datarootdir will be used as is in pcconfig, and ${prefix} (default) +# replaced only after (since, as is, it is correct in pkgconfig. +# Others are not settable in AC, so neither here. +# +datarootdir = get_option('datarootdir') sgmlrootdir = datarootdir / 'sgml' -sgmlx11dir = sgmlrootdir / 'X11' -sgmldbsdir = sgmlx11dir / 'dbs' +# datadir is a meson built-in and is used as subdir for the +# pkgconfig file. 'datarootdir', settable, if for other data. +# pc_conf = configuration_data({ 'prefix': get_option('prefix'), - 'datarootdir': '${prefix}/share', - 'sgmlrootdir': '${datarootdir}/sgml', + 'datarootdir': datarootdir, + 'sgmlrootdir': sgmlrootdir, 'PACKAGE_VERSION': meson.project_version() }) +# pkgconfigdir can be set via AC with --with-pkgconfigdir. +# +pkgconfigdir = get_option('pkgconfigdir') +pkgconfigdir = pkgconfigdir.replace('${libdir}', get_option('libdir')) + configure_file(input: 'xorg-sgml-doctools.pc.in', output: 'xorg-sgml-doctools.pc', - install_dir: get_option('datadir') / 'pkgconfig', + install_dir: pkgconfigdir, configuration: pc_conf) +# Replace '${prefix}' if existing in datarootdir, and reset other +# paths. +# +datarootdir = datarootdir.replace('${prefix}', get_option('prefix')) +sgmlrootdir = datarootdir / 'sgml' +sgmlx11dir = sgmlrootdir / 'X11' +sgmldbsdir = sgmlx11dir / 'dbs' + sgmlx11_files = [ 'defs.ent', 'xorg.css',
option('datarootdir', type: 'string', value: '${prefix}/share', description: 'read-only arch.-independent data root') option('pkgconfigdir', type: 'string', value: '${libdir}/pkgconfig', description: 'pkg-config installation directory for .pc files')