summaryrefslogtreecommitdiff
path: root/build-aux/meson.build
blob: 16d085505d7708dc4d7245d21f13803a9f93ca38 (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
68
69
70
71
72
flake8_path = ''
if flake8_prog.found()
  flake8_path = flake8_prog.full_path()
endif

if host_machine.system() == 'freebsd' or host_machine.system() == 'darwin'
  make_prog = find_program('gmake')
  sed_prog = find_program('gsed')
else
  make_prog = find_program('make')
  sed_prog = find_program('sed')
endif

if host_machine.system() == 'freebsd'
  grep_prog = find_program('grep')
  grep_cmd = run_command(grep_prog, '--version', check: true)
  if grep_cmd.stdout().startswith('grep (BSD grep')
    grep_prog = find_program('/usr/local/bin/grep', required: false)
    if not grep_prog.found()
      error('GNU grep not found')
    endif
  endif
elif host_machine.system() == 'darwin'
  grep_prog = find_program('ggrep')
else
  grep_prog = find_program('grep')
endif

awk_prog = find_program('awk')

syntax_check_conf = configuration_data({
  'top_srcdir': meson.project_source_root(),
  'top_builddir': meson.project_build_root(),
  'flake8_path': flake8_path,
  'runutf8': ' '.join(runutf8),
  'PYTHON3': python3_prog.full_path(),
  'GREP': grep_prog.full_path(),
  'SED': sed_prog.full_path(),
  'AWK': awk_prog.full_path(),
})

configure_file(
  input: 'Makefile.in',
  output: '@BASENAME@',
  configuration: syntax_check_conf,
)

rc = run_command(
  'sed', '-n',
  's/^sc_\\([a-zA-Z0-9_-]*\\):.*/\\1/p',
  meson.current_source_dir() / 'syntax-check.mk',
  check: true,
)

sc_tests = rc.stdout().strip().split()


# Skip syntax-check if not building from git because we get the list of files
# to check using git commands and it fails if we are not in git repository.
if git
  foreach target : sc_tests
    test(
      target,
      make_prog,
      args: [ '-C', meson.current_build_dir(), 'sc_@0@'.format(target) ],
      depends: [
        potfiles_dep,
      ],
      suite: 'syntax-check',
    )
  endforeach
endif