summaryrefslogtreecommitdiff
path: root/pkg/mupdf/gen.lua
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/mupdf/gen.lua')
-rw-r--r--pkg/mupdf/gen.lua102
1 files changed, 102 insertions, 0 deletions
diff --git a/pkg/mupdf/gen.lua b/pkg/mupdf/gen.lua
new file mode 100644
index 00000000..9cd4d6ce
--- /dev/null
+++ b/pkg/mupdf/gen.lua
@@ -0,0 +1,102 @@
+cflags{
+ '-D NDEBUG',
+ '-Wall',
+ '-Wno-maybe-uninitialized',
+ '-D FZ_ENABLE_JS=0',
+ -- HTML and EPUB require harfbuzz
+ '-D FZ_ENABLE_HTML=0',
+ '-D FZ_ENABLE_EPUB=0',
+ -- JPX requires openjpeg
+ '-D FZ_ENABLE_JPX=0',
+ '-D NOTO_SMALL',
+ '-D NOCJK',
+ '-D SHARE_JPEG',
+ '-I $srcdir/include',
+ '-I $outdir',
+ '-I pkg/freetype/src/include',
+ '-I pkg/jbig2dec/src',
+ '-I $builddir/pkg/libjpeg-turbo/include',
+ '-I $builddir/pkg/zlib/include',
+}
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ cflags{'-Wall'}
+
+ exe('namedump', {'scripts/namedump.c'})
+ exe('hexdump', {'scripts/hexdump.c'})
+end)
+
+rule('namedump', '$outdir/namedump $in $out')
+build('namedump', {'$outdir/mupdf/pdf/name-table.h', '$outdir/pdf-name-table.h'}, {
+ '$srcdir/resources/pdf/names.txt', '|', '$outdir/namedump',
+})
+
+rule('hexdump', '$outdir/hexdump -p $srcdir/ $out.tmp $in && mv $out.tmp $out')
+local fonts = lines('fonts.txt')
+for _, font in ipairs(fonts) do
+ build('hexdump', '$outdir/'..font..'.c', {'$srcdir/resources/fonts/'..font, '|', '$outdir/hexdump'})
+end
+
+pkg.deps = {
+ 'pkg/curl/headers',
+ 'pkg/libjpeg-turbo/headers',
+ 'pkg/zlib/headers',
+ '$builddir/pkg/freetype/fetch.stamp',
+ '$builddir/pkg/jbig2dec/fetch.stamp',
+ '$outdir/mupdf/pdf/name-table.h',
+}
+
+lib('libmupdf.a', {
+ expand{'source/', lines('sources.txt')},
+ expand{'$outdir/', fonts, '.c'},
+ '$builddir/pkg/freetype/libfreetype.a.d',
+ '$builddir/pkg/jbig2dec/libjbig2dec.a',
+ '$builddir/pkg/libjpeg-turbo/libjpeg-turbo.a',
+ '$builddir/pkg/zlib/libz.a',
+})
+
+exe('bin/mutool', [[
+ source/tools/(
+ mutool.c muconvert.c mudraw.c murun.c
+ pdfclean.c pdfcreate.c pdfextract.c pdfinfo.c pdfmerge.c pdfpages.c
+ pdfportfolio.c pdfposter.c pdfshow.c
+ )
+ libmupdf.a.d
+]])
+file('bin/mutool', '755', '$outdir/bin/mutool')
+
+cc('platform/x11/curl_stream.c', {'pkg/curl/headers'}, {
+ cflags='$cflags -I $builddir/pkg/curl/include',
+})
+cc('platform/x11/wl_main.c', {
+ '$dir/deps',
+ '$builddir/pkg/libxkbcommon/fetch.stamp',
+ 'pkg/pixman/headers',
+ 'pkg/wayland/headers',
+ 'pkg/wayland-protocols/headers',
+}, {cflags={
+ '$cflags',
+ '-I $builddir/pkg/pixman/include',
+ '-I $builddir/pkg/wayland/include',
+ '-I $builddir/pkg/wayland-protocols/include',
+ '-I pkg/libxkbcommon/src',
+}})
+exe('bin/mupdf', [[
+ platform/x11/(pdfapp.c curl_stream.c.o wl_main.c.o)
+ libmupdf.a.d
+ $builddir/pkg/(
+ curl/libcurl.a.d
+ jbig2dec/libjbig2dec.a
+ libxkbcommon/libxkbcommon.a
+ pixman/libpixman.a
+ wayland-protocols/xdg-shell-unstable-v5-protocol.c.o
+ wayland/libwayland-client.a.d
+ wayland/libwayland-cursor.a
+ )
+]])
+file('bin/mupdf', '755', '$outdir/bin/mupdf')
+
+man{'docs/man/mutool.1', 'docs/man/mupdf.1'}
+
+fetch 'git'