summaryrefslogtreecommitdiff
path: root/meson.build
blob: 94f8e785cf89fd5877b78c1df581ac3f41fba484 (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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
project('encodings',
        version: '1.1.0',
        meson_version: '>= 0.58.0',
        license: 'MIT'
)

mkfontscale = find_program('mkfontscale', required: true, native: true)

if get_option('gzip-small-encodings') or get_option('gzip-large-encodings')
    gzip = find_program('gzip', required: true, native: true)
endif

encodingsdir = get_option('encodingsdir')
if encodingsdir == ''
  fontrootdir = get_option('fontrootdir')
  if fontrootdir == ''
    fontutil = dependency('fontutil', required: false, version: '>= 1.1.0')
    if fontutil.found()
      fontrootdir = fontutil.get_variable('fontrootdir')
    endif
    if fontrootdir == ''
      fontrootdir = get_option('datadir') / 'fonts' / 'X11'
    endif
  endif
  encodingsdir = fontrootdir / 'encodings'
endif

small_encoding_files = [
  'adobe-dingbats.enc',
  'adobe-standard.enc',
  'adobe-symbol.enc',
  'armscii-8.enc',
  'ascii-0.enc',
  'dec-special.enc',
  'ibm-cp437.enc',
  'ibm-cp850.enc',
  'ibm-cp852.enc',
  'ibm-cp866.enc',
  'iso8859-11.enc',
  'iso8859-13.enc',
  'iso8859-14.enc',
  'iso8859-16.enc',
  'iso8859-6.16.enc',
  'iso8859-6.8x.enc',
  'microsoft-cp1250.enc',
  'microsoft-cp1251.enc',
  'microsoft-cp1252.enc',
  'microsoft-cp1253.enc',
  'microsoft-cp1254.enc',
  'microsoft-cp1255.enc',
  'microsoft-cp1256.enc',
  'microsoft-cp1257.enc',
  'microsoft-cp1258.enc',
  'microsoft-win3.1.enc',
  'mulearabic-0.enc',
  'mulearabic-1.enc',
  'mulearabic-2.enc',
  'mulelao-1.enc',
  'suneu-greek.enc',
  'tcvn-0.enc',
  'tis620-2.enc',
  'viscii1.1-1.enc'
]

if get_option('gzip-small-encodings')
  foreach small_encoding_input : small_encoding_files
    small_encoding_output = small_encoding_input + '.gz'
    custom_target(small_encoding_output,
                  input: small_encoding_input,
                  output: small_encoding_output,
                  command: [gzip, '-c', '-n', '@INPUT@'],
                  capture: true, # capture output from stdout
                  install: true,
                  install_dir: encodingsdir)
  endforeach
else
  install_data(small_encoding_files, install_dir: encodingsdir)
endif

subdir('large')

conf_data = configuration_data({
  'mkfontscale': mkfontscale.full_path(),
  'encodingsdir': encodingsdir
})
mkencodingsdir = configure_file(input : 'mkencodingsdir.in',
                                output : 'mkencodingsdir',
                                configuration : conf_data)
meson.add_install_script(mkencodingsdir)

summary({'encodingsdir': encodingsdir,
         'gzip-small-encodings': get_option('gzip-small-encodings'),
         'gzip-large-encodings':  get_option('gzip-large-encodings'),
         'mkfontscale': mkfontscale})