mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2026-03-22 05:34:12 -04:00
doc: Refactor the build system for complete build dir docs
By structuring things differently, it becomes possible to have a complete build of the docs in the build dir, without having to install anything. Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
This commit is contained in:
parent
c8a0996703
commit
bbb5fa66a7
38 changed files with 138 additions and 164 deletions
|
|
@ -1,16 +1,5 @@
|
||||||
# Here be dragons
|
# 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 = configuration_data()
|
||||||
doxygen_conf.set('VERSION', meson.project_version())
|
doxygen_conf.set('VERSION', meson.project_version())
|
||||||
doxygen_conf.set('top_builddir', meson.project_build_root())
|
doxygen_conf.set('top_builddir', meson.project_build_root())
|
||||||
|
|
@ -91,7 +80,6 @@ foreach f_name, sections: formats
|
||||||
],
|
],
|
||||||
input: s_files,
|
input: s_files,
|
||||||
output: '@0@.stamp'.format(t_name),
|
output: '@0@.stamp'.format(t_name),
|
||||||
depends: [dot_png, dot_map],
|
|
||||||
build_by_default: true,
|
build_by_default: true,
|
||||||
)
|
)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ tgt = custom_target(
|
||||||
],
|
],
|
||||||
input: [ shared_files, client_files ],
|
input: [ shared_files, client_files ],
|
||||||
output: [ 'combine.xslt', 'index.xml' ],
|
output: [ 'combine.xslt', 'index.xml' ],
|
||||||
depends: [dot_png, dot_map]
|
|
||||||
)
|
)
|
||||||
|
|
||||||
doxygen_Client_combine_xslt = tgt[0]
|
doxygen_Client_combine_xslt = tgt[0]
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ tgt = custom_target(
|
||||||
],
|
],
|
||||||
input: [ shared_files, server_files ],
|
input: [ shared_files, server_files ],
|
||||||
output: [ 'combine.xslt', 'index.xml' ],
|
output: [ 'combine.xslt', 'index.xml' ],
|
||||||
depends: [dot_png, dot_map]
|
|
||||||
)
|
)
|
||||||
|
|
||||||
doxygen_Server_combine_xslt = tgt[0]
|
doxygen_Server_combine_xslt = tgt[0]
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,2 @@
|
||||||
# dot_png: list of PNG targets
|
|
||||||
# dot_map: list of MAP targets
|
|
||||||
foreach name, infile: dot_gv
|
|
||||||
dot_png += custom_target(
|
|
||||||
name + '.png',
|
|
||||||
command: [ dot, '-Tpng', '-o@OUTPUT@', '@INPUT@' ],
|
|
||||||
input: infile,
|
|
||||||
output: name + '.png',
|
|
||||||
install: true,
|
|
||||||
install_dir: join_paths(publican_install_prefix, publican_html_dir, 'images')
|
|
||||||
)
|
|
||||||
|
|
||||||
dot_map += custom_target(
|
|
||||||
name + '.map',
|
|
||||||
command: [ dot, '-Tcmapx_np', '-o@OUTPUT@', '@INPUT@' ],
|
|
||||||
input: infile,
|
|
||||||
output: name + '.map',
|
|
||||||
)
|
|
||||||
endforeach
|
|
||||||
|
|
||||||
subdir('Client')
|
subdir('Client')
|
||||||
subdir('Server')
|
subdir('Server')
|
||||||
|
|
|
||||||
14
doc/publican/html/css/meson.build
Normal file
14
doc/publican/html/css/meson.build
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
foreach src : files([
|
||||||
|
'brand.css',
|
||||||
|
'common.css',
|
||||||
|
'default.css',
|
||||||
|
'epub.css',
|
||||||
|
'print.css',
|
||||||
|
])
|
||||||
|
name = fs.name(src)
|
||||||
|
publican_inputs += fs.copyfile(
|
||||||
|
name,
|
||||||
|
install: true,
|
||||||
|
install_dir: publican_install_prefix + '/html/css',
|
||||||
|
)
|
||||||
|
endforeach
|
||||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
28
doc/publican/html/images/meson.build
Normal file
28
doc/publican/html/images/meson.build
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
foreach src : files([
|
||||||
|
'icon.svg',
|
||||||
|
'wayland.png',
|
||||||
|
])
|
||||||
|
name = fs.name(src)
|
||||||
|
publican_inputs += fs.copyfile(
|
||||||
|
name,
|
||||||
|
install: true,
|
||||||
|
install_dir: publican_install_prefix + '/html/images',
|
||||||
|
)
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
foreach src : files([
|
||||||
|
'wayland-architecture.gv',
|
||||||
|
'x-architecture.gv',
|
||||||
|
])
|
||||||
|
input = fs.name(src)
|
||||||
|
output = fs.stem(src) + '.png'
|
||||||
|
|
||||||
|
publican_inputs += custom_target(
|
||||||
|
input + '.png',
|
||||||
|
command: [ dot, '-Tpng', '-o@OUTPUT@', '@INPUT@' ],
|
||||||
|
input: input,
|
||||||
|
output: output,
|
||||||
|
install: true,
|
||||||
|
install_dir: publican_install_prefix + '/html/images',
|
||||||
|
)
|
||||||
|
endforeach
|
||||||
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 7.4 KiB |
|
|
@ -1,6 +1,92 @@
|
||||||
merge_mapcoords_xsl = files('merge-mapcoords.xsl')
|
proto_to_docboox_xsl = files('xsl/protocol-to-docbook.xsl')
|
||||||
|
proto_iface_to_docboox_xsl = files('xsl/protocol-interfaces-to-docbook.xsl')
|
||||||
|
merge_mapcoords_xsl = files('xsl/merge-mapcoords.xsl')
|
||||||
|
to_publican_xsl = files('xsl/doxygen-to-publican.xsl')
|
||||||
|
|
||||||
subdir('sources')
|
publican_inputs = []
|
||||||
|
|
||||||
|
foreach src : files([
|
||||||
|
'Wayland.xml', # must be first in publican_inputs
|
||||||
|
'Wayland.ent',
|
||||||
|
'Book_Info.xml',
|
||||||
|
'Author_Group.xml',
|
||||||
|
'Foreword.xml',
|
||||||
|
'Preface.xml',
|
||||||
|
'Revision_History.xml',
|
||||||
|
'Protocol.xml',
|
||||||
|
'Xwayland.xml',
|
||||||
|
'Compositors.xml',
|
||||||
|
'Color.xml',
|
||||||
|
'Client.xml',
|
||||||
|
'Server.xml',
|
||||||
|
])
|
||||||
|
name = fs.name(src)
|
||||||
|
publican_inputs += fs.copyfile(name)
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
publican_inputs += custom_target(
|
||||||
|
'ProtocolSpec.xml',
|
||||||
|
command: [ xsltproc, '-o', '@OUTPUT@', proto_to_docboox_xsl, '@INPUT@' ],
|
||||||
|
input: wayland_protocol_xml,
|
||||||
|
output: 'ProtocolSpec.xml'
|
||||||
|
)
|
||||||
|
|
||||||
|
publican_inputs += custom_target(
|
||||||
|
'ProtocolInterfaces.xml',
|
||||||
|
command: [ xsltproc, '-o', '@OUTPUT@', proto_iface_to_docboox_xsl, '@INPUT@' ],
|
||||||
|
input: wayland_protocol_xml,
|
||||||
|
output: 'ProtocolInterfaces.xml'
|
||||||
|
)
|
||||||
|
|
||||||
|
ClientAPI_combined = custom_target(
|
||||||
|
'ClientAPI-combined',
|
||||||
|
command: [ xsltproc, '-o', '@OUTPUT@', '@INPUT@' ],
|
||||||
|
input: [ doxygen_Client_combine_xslt, doxygen_Client_index_xml ],
|
||||||
|
output: 'ClientAPI-combined.xml'
|
||||||
|
)
|
||||||
|
|
||||||
|
publican_inputs += custom_target(
|
||||||
|
'ClientAPI.xml',
|
||||||
|
command: [ xsltproc, '-o', '@OUTPUT@', '--stringparam', 'which', 'Client', to_publican_xsl, '@INPUT@' ],
|
||||||
|
input: ClientAPI_combined,
|
||||||
|
output: 'ClientAPI.xml'
|
||||||
|
)
|
||||||
|
|
||||||
|
ServerAPI_combined = custom_target(
|
||||||
|
'ServerAPI-combined',
|
||||||
|
command: [ xsltproc, '-o', '@OUTPUT@', '@INPUT@' ],
|
||||||
|
input: [ doxygen_Server_combine_xslt, doxygen_Server_index_xml ],
|
||||||
|
output: 'ServerAPI-combined.xml'
|
||||||
|
)
|
||||||
|
|
||||||
|
publican_inputs += custom_target(
|
||||||
|
'ServerAPI.xml',
|
||||||
|
command: [ xsltproc, '-o', '@OUTPUT@', '--stringparam', 'which', 'Server', to_publican_xsl, '@INPUT@' ],
|
||||||
|
input: ServerAPI_combined,
|
||||||
|
output: 'ServerAPI.xml'
|
||||||
|
)
|
||||||
|
|
||||||
|
foreach src : files([
|
||||||
|
'Architecture.xml',
|
||||||
|
'Introduction.xml'
|
||||||
|
])
|
||||||
|
name = fs.name(src)
|
||||||
|
publican_inputs += custom_target(
|
||||||
|
name,
|
||||||
|
command: [
|
||||||
|
xsltproc,
|
||||||
|
'-o', '@OUTPUT@',
|
||||||
|
'--stringparam', 'basedir', '.',
|
||||||
|
merge_mapcoords_xsl,
|
||||||
|
'@INPUT@',
|
||||||
|
],
|
||||||
|
input: [name],
|
||||||
|
output: [name],
|
||||||
|
)
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
subdir('html/css')
|
||||||
|
subdir('html/images')
|
||||||
|
|
||||||
custom_target(
|
custom_target(
|
||||||
'Wayland-docbook-html',
|
'Wayland-docbook-html',
|
||||||
|
|
@ -14,19 +100,11 @@ custom_target(
|
||||||
'--stringparam', 'html.stylesheet=css/default.css',
|
'--stringparam', 'html.stylesheet=css/default.css',
|
||||||
'-o', '@OUTPUT@',
|
'-o', '@OUTPUT@',
|
||||||
'html',
|
'html',
|
||||||
'@INPUT@'
|
'@INPUT0@'
|
||||||
],
|
|
||||||
input: publican_processed_main,
|
|
||||||
output: publican_html_dir,
|
|
||||||
depend_files: publican_copied_sources,
|
|
||||||
depends: [
|
|
||||||
publican_processed_targets,
|
|
||||||
ClientAPI_xml,
|
|
||||||
ServerAPI_xml,
|
|
||||||
ProtocolSpec_xml,
|
|
||||||
ProtocolInterfaces_xml
|
|
||||||
],
|
],
|
||||||
|
input: publican_inputs,
|
||||||
|
output: 'html',
|
||||||
build_by_default: true,
|
build_by_default: true,
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: publican_install_prefix
|
install_dir: publican_install_prefix,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
ProtocolSpec_xml = custom_target(
|
|
||||||
'ProtocolSpec.xml',
|
|
||||||
command: [ xsltproc, '-o', '@OUTPUT@', files('../protocol-to-docbook.xsl'), '@INPUT@' ],
|
|
||||||
input: wayland_protocol_xml,
|
|
||||||
output: 'ProtocolSpec.xml'
|
|
||||||
)
|
|
||||||
|
|
||||||
ProtocolInterfaces_xml = custom_target(
|
|
||||||
'ProtocolInterfaces.xml',
|
|
||||||
command: [ xsltproc, '-o', '@OUTPUT@', files('../protocol-interfaces-to-docbook.xsl'), '@INPUT@' ],
|
|
||||||
input: wayland_protocol_xml,
|
|
||||||
output: 'ProtocolInterfaces.xml'
|
|
||||||
)
|
|
||||||
|
|
||||||
ClientAPI_combined = custom_target(
|
|
||||||
'ClientAPI-combined',
|
|
||||||
command: [ xsltproc, '-o', '@OUTPUT@', '@INPUT@' ],
|
|
||||||
input: [ doxygen_Client_combine_xslt, doxygen_Client_index_xml ],
|
|
||||||
output: 'ClientAPI-combined.xml'
|
|
||||||
)
|
|
||||||
|
|
||||||
to_publican_xsl = files('../doxygen-to-publican.xsl')
|
|
||||||
|
|
||||||
ClientAPI_xml = custom_target(
|
|
||||||
'ClientAPI.xml',
|
|
||||||
command: [ xsltproc, '-o', '@OUTPUT@', '--stringparam', 'which', 'Client', to_publican_xsl, '@INPUT@' ],
|
|
||||||
input: ClientAPI_combined,
|
|
||||||
output: 'ClientAPI.xml'
|
|
||||||
)
|
|
||||||
|
|
||||||
ServerAPI_combined = custom_target(
|
|
||||||
'ServerAPI-combined',
|
|
||||||
command: [ xsltproc, '-o', '@OUTPUT@', '@INPUT@' ],
|
|
||||||
input: [ doxygen_Server_combine_xslt, doxygen_Server_index_xml ],
|
|
||||||
output: 'ServerAPI-combined.xml'
|
|
||||||
)
|
|
||||||
|
|
||||||
ServerAPI_xml = custom_target(
|
|
||||||
'ServerAPI.xml',
|
|
||||||
command: [ xsltproc, '-o', '@OUTPUT@', '--stringparam', 'which', 'Server', to_publican_xsl, '@INPUT@' ],
|
|
||||||
input: ServerAPI_combined,
|
|
||||||
output: 'ServerAPI.xml'
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
publican_sources = [
|
|
||||||
'Wayland.ent',
|
|
||||||
# 'Wayland.xml', # handled specially
|
|
||||||
'Book_Info.xml',
|
|
||||||
'Author_Group.xml',
|
|
||||||
'Foreword.xml',
|
|
||||||
'Preface.xml',
|
|
||||||
'Revision_History.xml',
|
|
||||||
'Protocol.xml',
|
|
||||||
'Xwayland.xml',
|
|
||||||
'Compositors.xml',
|
|
||||||
'Color.xml',
|
|
||||||
'Client.xml',
|
|
||||||
'Server.xml'
|
|
||||||
]
|
|
||||||
|
|
||||||
publican_processed_main = configure_file(
|
|
||||||
input: 'Wayland.xml',
|
|
||||||
output: 'Wayland.xml',
|
|
||||||
copy: true
|
|
||||||
)
|
|
||||||
|
|
||||||
publican_copied_sources = []
|
|
||||||
foreach src: publican_sources
|
|
||||||
publican_copied_sources += configure_file(
|
|
||||||
input: src,
|
|
||||||
output: src,
|
|
||||||
copy: true
|
|
||||||
)
|
|
||||||
endforeach
|
|
||||||
|
|
||||||
publican_processed_sources = [
|
|
||||||
'Architecture.xml',
|
|
||||||
'Introduction.xml'
|
|
||||||
]
|
|
||||||
|
|
||||||
publican_processed_targets = []
|
|
||||||
foreach src: publican_processed_sources
|
|
||||||
publican_processed_targets += custom_target(
|
|
||||||
src,
|
|
||||||
command: [ xsltproc, '-o', '@OUTPUT@', '--stringparam', 'basedir', '.', merge_mapcoords_xsl, '@INPUT@' ],
|
|
||||||
input: src,
|
|
||||||
output: src
|
|
||||||
)
|
|
||||||
endforeach
|
|
||||||
|
|
||||||
publican_css_sources = files([
|
|
||||||
'css/brand.css',
|
|
||||||
'css/common.css',
|
|
||||||
'css/default.css',
|
|
||||||
'css/epub.css',
|
|
||||||
'css/print.css'
|
|
||||||
])
|
|
||||||
|
|
||||||
install_data(
|
|
||||||
publican_css_sources,
|
|
||||||
install_dir: join_paths(publican_install_prefix, publican_html_dir, 'css')
|
|
||||||
)
|
|
||||||
|
|
||||||
publican_img_sources = files([
|
|
||||||
'images/icon.svg',
|
|
||||||
'images/wayland.png',
|
|
||||||
'images/xwayland-architecture.png'
|
|
||||||
])
|
|
||||||
|
|
||||||
install_data(
|
|
||||||
publican_img_sources,
|
|
||||||
install_dir: join_paths(publican_install_prefix, publican_html_dir, 'images')
|
|
||||||
)
|
|
||||||
|
|
@ -9,6 +9,10 @@ project(
|
||||||
'c_std=c99',
|
'c_std=c99',
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
fs = import('fs')
|
||||||
|
pkgconfig = import('pkgconfig')
|
||||||
|
|
||||||
wayland_version = meson.project_version().split('.')
|
wayland_version = meson.project_version().split('.')
|
||||||
|
|
||||||
config_h = configuration_data()
|
config_h = configuration_data()
|
||||||
|
|
@ -106,8 +110,6 @@ configure_file(
|
||||||
configuration: config_h,
|
configuration: config_h,
|
||||||
)
|
)
|
||||||
|
|
||||||
pkgconfig = import('pkgconfig')
|
|
||||||
|
|
||||||
wayland_protocol_xml = files('protocol/wayland.xml')
|
wayland_protocol_xml = files('protocol/wayland.xml')
|
||||||
|
|
||||||
root_inc = include_directories('.')
|
root_inc = include_directories('.')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue