1project('encodings',
2        version: '1.1.0',
3        meson_version: '>= 0.58.0',
4        license: 'MIT'
5)
6
7mkfontscale = find_program('mkfontscale', required: true, native: true)
8
9if get_option('gzip-small-encodings') or get_option('gzip-large-encodings')
10    gzip = find_program('gzip', required: true, native: true)
11endif
12
13encodingsdir = get_option('encodingsdir')
14if encodingsdir == ''
15  fontrootdir = get_option('fontrootdir')
16  if fontrootdir == ''
17    fontutil = dependency('fontutil', required: false, version: '>= 1.1.0')
18    if fontutil.found()
19      fontrootdir = fontutil.get_variable('fontrootdir')
20    endif
21    if fontrootdir == ''
22      fontrootdir = get_option('datadir') / 'fonts' / 'X11'
23    endif
24  endif
25  encodingsdir = fontrootdir / 'encodings'
26endif
27
28small_encoding_files = [
29  'adobe-dingbats.enc',
30  'adobe-standard.enc',
31  'adobe-symbol.enc',
32  'armscii-8.enc',
33  'ascii-0.enc',
34  'dec-special.enc',
35  'ibm-cp437.enc',
36  'ibm-cp850.enc',
37  'ibm-cp852.enc',
38  'ibm-cp866.enc',
39  'iso8859-11.enc',
40  'iso8859-13.enc',
41  'iso8859-14.enc',
42  'iso8859-16.enc',
43  'iso8859-6.16.enc',
44  'iso8859-6.8x.enc',
45  'microsoft-cp1250.enc',
46  'microsoft-cp1251.enc',
47  'microsoft-cp1252.enc',
48  'microsoft-cp1253.enc',
49  'microsoft-cp1254.enc',
50  'microsoft-cp1255.enc',
51  'microsoft-cp1256.enc',
52  'microsoft-cp1257.enc',
53  'microsoft-cp1258.enc',
54  'microsoft-win3.1.enc',
55  'mulearabic-0.enc',
56  'mulearabic-1.enc',
57  'mulearabic-2.enc',
58  'mulelao-1.enc',
59  'suneu-greek.enc',
60  'tcvn-0.enc',
61  'tis620-2.enc',
62  'viscii1.1-1.enc'
63]
64
65if get_option('gzip-small-encodings')
66  foreach small_encoding_input : small_encoding_files
67    small_encoding_output = small_encoding_input + '.gz'
68    custom_target(small_encoding_output,
69                  input: small_encoding_input,
70                  output: small_encoding_output,
71                  command: [gzip, '-c', '-n', '@INPUT@'],
72                  capture: true, # capture output from stdout
73                  install: true,
74                  install_dir: encodingsdir)
75  endforeach
76else
77  install_data(small_encoding_files, install_dir: encodingsdir)
78endif
79
80subdir('large')
81
82conf_data = configuration_data({
83  'mkfontscale': mkfontscale.full_path(),
84  'encodingsdir': encodingsdir
85})
86mkencodingsdir = configure_file(input : 'mkencodingsdir.in',
87                                output : 'mkencodingsdir',
88                                configuration : conf_data)
89meson.add_install_script(mkencodingsdir)
90
91summary({'encodingsdir': encodingsdir,
92         'gzip-small-encodings': get_option('gzip-small-encodings'),
93         'gzip-large-encodings':  get_option('gzip-large-encodings'),
94         'mkfontscale': mkfontscale})
95