| # Here be dragons |
| |
| dot_gv = { |
| 'wayland-architecture': files('dot/wayland-architecture.gv'), |
| 'x-architecture': files('dot/x-architecture.gv'), |
| } |
| |
| # This is a workaround for Meson's custom_target() directive, which |
| # currently does not support outputs pointing to a sub-directory |
| # XXX: try turning these into maps, so they can be indexed with picture name |
| dot_png = [] |
| dot_map = [] |
| |
| doxygen_conf = configuration_data() |
| doxygen_conf.set('VERSION', meson.project_version()) |
| doxygen_conf.set('top_builddir', meson.build_root()) |
| wayland_doxygen = configure_file( |
| input: 'wayland.doxygen.in', |
| output: 'wayland.doxygen', |
| configuration: doxygen_conf, |
| ) |
| |
| shared_files = files([ |
| '../../src/wayland-util.h', |
| ]) |
| |
| client_files = files([ |
| '../../src/wayland-client.c', |
| '../../src/wayland-client.h', |
| '../../src/wayland-client-core.h', |
| ]) |
| |
| server_files = files([ |
| '../../src/event-loop.c', |
| '../../src/wayland-server.c', |
| '../../src/wayland-server.h', |
| '../../src/wayland-server-core.h', |
| '../../src/wayland-shm.c', |
| ]) |
| |
| cursor_files = files([ |
| '../../cursor/wayland-cursor.c', |
| '../../cursor/wayland-cursor.h', |
| ]) |
| |
| extra_client_files = [ |
| 'mainpage.dox', |
| wayland_client_protocol_h, |
| ] |
| |
| extra_server_files = [ |
| 'mainpage.dox', |
| wayland_server_protocol_h, |
| ] |
| |
| extra_cursor_files = [ |
| 'mainpage.dox', |
| ] |
| |
| gen_doxygen = find_program('gen-doxygen.py') |
| |
| subdir('xml') |
| |
| formats = { |
| 'html': { |
| 'Client': shared_files + client_files + extra_client_files, |
| 'Server': shared_files + server_files + extra_server_files, |
| 'Cursor': shared_files + cursor_files + extra_cursor_files, |
| }, |
| } |
| |
| foreach f_name, sections: formats |
| foreach s_name, s_files: sections |
| t_name = '@0@-@1@-doc'.format(f_name, s_name) |
| |
| # We do not really need an output file, but Meson |
| # will complain if one is not set, so we use a |
| # dummy 'stamp' file |
| custom_target( |
| t_name, |
| command: [ |
| gen_doxygen, |
| # XXX pass doxygen path as argument |
| '--builddir=@OUTDIR@', |
| '--section=@0@'.format(s_name), |
| '--output-format=@0@'.format(f_name), |
| '--stamp=doc/doxygen/@0@.stamp'.format(t_name), |
| wayland_doxygen, |
| '@INPUT@', |
| ], |
| input: s_files, |
| output: '@0@.stamp'.format(t_name), |
| depends: [dot_png, dot_map], |
| build_by_default: true, |
| ) |
| endforeach |
| endforeach |
| |
| man_files = shared_files + server_files + client_files + cursor_files |
| custom_target( |
| 'man-pages-3', |
| command: [ |
| gen_doxygen, |
| '--builddir=@OUTDIR@', |
| '--output-format=man3', |
| '--stamp=doc/doxygen/man3.stamp', |
| wayland_doxygen, |
| '@INPUT@', |
| ], |
| input: man_files, |
| output: 'man3', |
| build_by_default: true, |
| install: true, |
| install_dir: join_paths(get_option('prefix'), get_option('mandir')), |
| ) |