1cflags{
2 '-D NDEBUG',
3 '-Wall', '-Wno-maybe-uninitialized', '-Wno-stringop-overflow', '-Wno-format-overflow',
4 '-D FZ_ENABLE_JS=0',
5 -- HTML and EPUB require harfbuzz
6 '-D FZ_ENABLE_HTML=0',
7 '-D FZ_ENABLE_EPUB=0',
8 -- ICS requires lcms2
9 '-D FZ_ENABLE_ICC=0',
10 -- JPX requires openjpeg
11 '-D FZ_ENABLE_JPX=0',
12 '-D HAVE_PTHREAD',
13 '-D NOTO_SMALL',
14 '-D NO_CJK',
15 '-D NO_ICC',
16 '-D SHARE_JPEG',
17 '-I $srcdir/include',
18 '-I $outdir',
19 '-isystem $builddir/pkg/freetype/include',
20 '-isystem $builddir/pkg/jbig2dec/include',
21 '-isystem $builddir/pkg/libjpeg-turbo/include',
22 '-isystem $builddir/pkg/zlib/include',
23}
24
25sub('tools.ninja', function()
26 toolchain(config.host)
27 cflags{'-Wall'}
28 exe('hexdump', {'scripts/hexdump.c'})
29end)
30
31rule('hexdump', '$outdir/hexdump -s $out $in')
32local fonts = lines('fonts.txt')
33for _, font in ipairs(fonts) do
34 build('hexdump', '$outdir/'..font..'.c', {'$srcdir/resources/fonts/'..font, '|', '$outdir/hexdump'})
35end
36
37pkg.deps = {
38 'pkg/freetype/headers',
39 'pkg/jbig2dec/headers',
40 'pkg/libjpeg-turbo/headers',
41 'pkg/zlib/headers',
42}
43
44lib('libmupdf.a', {
45 expand{'source/', lines('sources.txt')},
46 expand{'$outdir/', fonts, '.c'},
47 '$builddir/pkg/freetype/libfreetype.a.d',
48 '$builddir/pkg/jbig2dec/libjbig2dec.a',
49 '$builddir/pkg/libjpeg-turbo/libjpeg-turbo.a',
50 '$builddir/pkg/zlib/libz.a',
51})
52lib('libmupdf-threads.a', {
53 'source/helpers/mu-threads/mu-threads.c',
54})
55lib('libmupdf-pkcs7.a', {
56 'source/helpers/pkcs7/pkcs7-check.c',
57 'source/helpers/pkcs7/pkcs7-openssl.c',
58})
59
60exe('bin/mutool', [[
61 source/tools/(
62 mutool.c muconvert.c mudraw.c murun.c mutrace.c cmapdump.c
63 pdfclean.c pdfcreate.c pdfextract.c pdfinfo.c pdfmerge.c pdfpages.c
64 pdfposter.c pdfshow.c pdfsign.c
65 )
66 libmupdf.a.d
67 libmupdf-pkcs7.a
68 libmupdf-threads.a
69]])
70file('bin/mutool', '755', '$outdir/bin/mutool')
71
72cc('platform/x11/wl_main.c', {
73 '$gendir/deps',
74 'pkg/libxkbcommon/headers',
75 'pkg/pixman/headers',
76 'pkg/wayland/headers',
77 'pkg/wayland-protocols/headers',
78}, {cflags={
79 '$cflags',
80 '-isystem $builddir/pkg/libxkbcommon/include',
81 '-isystem $builddir/pkg/pixman/include',
82 '-isystem $builddir/pkg/wayland/include',
83 '-isystem $builddir/pkg/wayland-protocols/include',
84}})
85exe('bin/mupdf', [[
86 platform/x11/(pdfapp.c wl_main.c.o)
87 libmupdf.a.d
88 libmupdf-pkcs7.a
89 $builddir/pkg/(
90 jbig2dec/libjbig2dec.a
91 libxkbcommon/libxkbcommon.a
92 pixman/libpixman.a
93 wayland-protocols/xdg-shell-protocol.c.o
94 wayland/libwayland-client.a.d
95 wayland/libwayland-cursor.a
96 )
97]])
98file('bin/mupdf', '755', '$outdir/bin/mupdf')
99
100man{'docs/man/mutool.1', 'docs/man/mupdf.1'}
101
102fetch 'git'