File: meson.build

package info (click to toggle)
bitwuzla 0.8.2-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 43,292 kB
  • sloc: cpp: 94,870; python: 3,254; ansic: 1,613; sh: 50; makefile: 10
file content (66 lines) | stat: -rw-r--r-- 2,278 bytes parent folder | download | duplicates (2)
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
doxygen = find_program('doxygen', required: true)
python = import('python').find_installation()
sphinx_build = find_program('sphinx-build', required: true)

# Check required Python modules
required_python_modules = ['breathe', 'sphinxcontrib.bibtex', 'sphinx_tabs.tabs']
foreach module : required_python_modules
  if run_command([python, '-c', 'import ' + module], check: false).returncode() != 0
    error('Python module `' + module + '` not found. Skipping c/c++ documentation')
  endif
endforeach

subdir('c')
subdir('cpp')

conf_data = configuration_data()
conf_data.set('bitwuzla_python_dir', join_paths(meson.project_build_root(), 'src', 'api', 'python'))
conf_data.set('current_source_dir', meson.current_source_dir())
conf_data.set('current_build_dir', meson.current_build_dir())
conf_data.set('version', meson.project_version())
conf_py = configure_file(input: 'conf.py.in',
               output: 'conf.py',
               configuration: conf_data)

depends = [docs_doxygen_c, docs_doxygen_cpp]
depend_files = ['index.rst']
if get_option('python')
  depends += [bitwuzla_py_ext]
  depend_files += ['python/api.rst', 'python/interface.rst']
endif

docs_usage = custom_target('cli-usage',
  build_by_default: true,
  build_always_stale: true,
  capture: true,
  output: 'cli_usage.txt',
  command: [bitwuzla_bin, '-h'],
  depends: bitwuzla_bin,
)
depends += [docs_usage]

docs_html = custom_target('docs-html',
  #  build_by_default: true,
  build_always_stale: true,
  command: [sphinx_build, '-b', 'html',
            # Tell breathe where to find the Doxygen output
            '-Dbreathe_projects.Bitwuzla_c=' + docs_doxygen_c.full_path(),
            '-Dbreathe_projects.Bitwuzla_cpp=' + docs_doxygen_cpp.full_path(),
            '-Dbreathe_projects.std=' + docs_doxygen_cpp.full_path(),
            # Tell sphinx where to find conf.py
            '-c', meson.current_build_dir(),
            meson.current_source_dir(), meson.current_build_dir()
           ],
  output: '.',
  depends: depends,
  depend_files: depend_files
)

jekyll_fix = files('jekyll_fix.py')
docs = custom_target('docs',
  build_by_default: true,
  build_always_stale: true,
  command: [python, jekyll_fix, meson.current_build_dir()],
  depends: docs_html,
  output: 'jekyll-fix-fake-output'
)