summaryrefslogtreecommitdiff
path: root/doc/cookbook/meson.build
blob: a23f725f0e86f2d14dd717ee73a5805ffedcb941 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
subdir('examples')

xml_files = [
  'actors.xml',
  'animations.xml',
  'events.xml',
  'introduction.xml',
  'text.xml',
  'textures.xml',
  'layouts.xml',
  'script.xml',
  'effects.xml',
]

xsltproc_options = [
  '--stringparam', 'html.stylesheet', 'style.css',
  '--stringparam', 'chapter.autolabel', '1',
  '--stringparam', 'appending.autolabel', '1',
  '--stringparam', 'section.autolabel', '1',
  '--stringparam', 'gtkdoc.bookname', 'clutter-cookbook',
  '--stringparam', 'gtkdoc.version', clutter_api_version,
  '--stringparam', 'callout.graphics', '0',
  '--path', join_paths(meson.current_source_dir()),
  '--xinclude',
]

xsltproc = find_program('xsltproc', required: false)

docbook_xsl = 'http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl'

cookbook_xml_conf = configuration_data()
cookbook_xml_conf.set('CLUTTER_API_VERSION', clutter_api_version)

cookbook_dir = join_paths(clutter_datadir, 'gtk-doc', 'html')

if xsltproc.found()
  cmd = run_command([xsltproc, '--nonet', docbook_xsl])
  have_docbook_xsl = cmd.returncode() == 0

  if have_docbook_xsl
    custom_target('clutter-cookbook',
      command: [
        xsltproc,
        xsltproc_options,
        '-o', '@OUTPUT@/',
        'cookbook.xsl',
        '@INPUT@',
      ],
      input: configure_file(
        input: 'clutter-cookbook.xml.in',
        output: 'clutter-cookbook.xml',
        configuration: cookbook_xml_conf,
      ),
      output: 'clutter-cookbook',
      install: true,
      install_dir: cookbook_dir,
    )

    install_data('style.css', install_dir: join_paths(cookbook_dir, 'clutter-cookbook'))
    install_subdir('images', install_dir: join_paths(cookbook_dir, 'clutter-cookbook'))
    install_subdir('videos', install_dir: join_paths(cookbook_dir, 'clutter-cookbook'))
  else
    message('Cookbook not available, requires Docbook XSL')
  endif
else
  message('Cookbook not available, requires xsltproc')
endif