diff mbox series

meson: Fix install location of doxygen's man pages

Message ID 20230320195057.16195-1-laurent.pinchart@ideasonboard.com
State New
Headers show
Series meson: Fix install location of doxygen's man pages | expand

Commit Message

Laurent Pinchart March 20, 2023, 7:50 p.m. UTC
The doxygen man pages are incorrectly being installed alongside the HTML
documentation. Install them in the right location, in the $mandir
directory, by specifying a separate install location for each doxygen
target.

As a drive-by cleanup, replace the join_path() function with the meson's
'/' path concatenation operator.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 doc/meson.build | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)


base-commit: cdb3d1a7309d2daed5626c8c4ddbe9e5498e938b

Comments

Laurent Pinchart March 20, 2023, 9:07 p.m. UTC | #1
Hi Mauro,

On Mon, Mar 20, 2023 at 09:36:19PM +0100, Mauro Carvalho Chehab wrote:
> Em Mon, 20 Mar 2023 21:50:57 +0200 Laurent Pinchart escreveu:
> 
> > The doxygen man pages are incorrectly being installed alongside the HTML
> > documentation. Install them in the right location, in the $mandir
> > directory, by specifying a separate install location for each doxygen
> > target.
> > 
> > As a drive-by cleanup, replace the join_path() function with the meson's
> > '/' path concatenation operator.
> 
> Thanks for the quick fix!
> 
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> >  doc/meson.build | 7 ++++---
> >  1 file changed, 4 insertions(+), 3 deletions(-)
> > 
> > diff --git a/doc/meson.build b/doc/meson.build
> > index fef3e83fa432..02a30dc5688a 100644
> > --- a/doc/meson.build
> > +++ b/doc/meson.build
> > @@ -15,15 +15,16 @@ doxyfile = configure_file(input : 'Doxyfile.in',
> >                            output : 'Doxyfile',
> >                            configuration : cdata)
> >  
> > -doxygen_install_dir = join_paths(get_option('datadir'), 'doc',
> > -                                 '@0@'.format(meson.project_name()))
> > +doxygen_install_dirs = []
> >  
> >  doxygen_output = []
> >  if get_option('doxygen-html')
> >      doxygen_output += 'html'
> > +    doxygen_install_dirs += get_option('datadir') / 'doc' / '@0@'.format(meson.project_name())
> >  endif
> >  if get_option('doxygen-man')
> >      doxygen_output += 'man'
> > +    doxygen_install_dirs += get_option('mandir') / '..'
> 
> This is hacky, but it also sounded to me the easiest/quickest way to
> address it. I wonder if are there a cleaner way to avoid it to place
> files under ${mandir}/man/man3. e. g. /usr/share/man/man/man3.

Not by using the custom_target() install_dir argument, as far as I can
see. meson provides a set of install_*() functions that may be
leveraged, and also allows running custom installation scripts with
meson.add_install_script() if needed. I decided to go for this small
hack for simplicity.

> This shouldn't be causing real problems, though, except if some
> distro would use non-Unix standard places, like setting mandir
> to something like "/weird/distro/manual_pages".

Yes, that would be problematic. Let's fix it when this theoretical
problem becomes a real one :-)
diff mbox series

Patch

diff --git a/doc/meson.build b/doc/meson.build
index fef3e83fa432..02a30dc5688a 100644
--- a/doc/meson.build
+++ b/doc/meson.build
@@ -15,15 +15,16 @@  doxyfile = configure_file(input : 'Doxyfile.in',
                           output : 'Doxyfile',
                           configuration : cdata)
 
-doxygen_install_dir = join_paths(get_option('datadir'), 'doc',
-                                 '@0@'.format(meson.project_name()))
+doxygen_install_dirs = []
 
 doxygen_output = []
 if get_option('doxygen-html')
     doxygen_output += 'html'
+    doxygen_install_dirs += get_option('datadir') / 'doc' / '@0@'.format(meson.project_name())
 endif
 if get_option('doxygen-man')
     doxygen_output += 'man'
+    doxygen_install_dirs += get_option('mandir') / '..'
 endif
 
 custom_target('doxygen',
@@ -31,4 +32,4 @@  custom_target('doxygen',
               output : doxygen_output,
               command : [prog_doxygen, doxyfile],
               install : true,
-              install_dir : doxygen_install_dir)
+              install_dir : doxygen_install_dirs)