master hovercats/oakiss / pkg / mupdf / gen.lua
  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'