diff options
| author | Michael Forney <mforney@mforney.org> | 2017-09-17 00:03:34 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2017-09-25 19:23:06 -0700 |
| commit | ba94a8513d9a0aadb3f2c834c74b64aa644c61e8 (patch) | |
| tree | 48ac6c85baa7b9d960b9e1e726a906e61ca60967 /pkg/mupdf | |
| parent | cb362b531d79708a259bbf070dee5104fd63df08 (diff) | |
Rewrite ninja generation scripts in Lua
Diffstat (limited to 'pkg/mupdf')
| -rw-r--r-- | pkg/mupdf/gen.lua | 102 | ||||
| -rw-r--r-- | pkg/mupdf/gen.rc | 86 | ||||
| -rw-r--r-- | pkg/mupdf/sources.txt | 3 |
3 files changed, 103 insertions, 88 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' diff --git a/pkg/mupdf/gen.rc b/pkg/mupdf/gen.rc deleted file mode 100644 index fcffe9c6..00000000 --- a/pkg/mupdf/gen.rc +++ /dev/null @@ -1,86 +0,0 @@ -# HTML/EPUB require harfbuzz, JPX requires openjpeg -cflags\ - -D NDEBUG\ - -Wall\ - -Wno-maybe-uninitialized\ - -D 'FZ_ENABLE_JS=0' \ - -D 'FZ_ENABLE_HTML=0' \ - -D 'FZ_ENABLE_EPUB=0' \ - -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 - -{ - toolchain host - cflags -Wall - - exe namedump scripts/namedump.c - exe hexdump scripts/hexdump.c -} >tools.ninja && subninja tools.ninja - -rule namedump '$outdir/namedump $in $out' -outs='$outdir'/^(mupdf/pdf/name-table.h pdf-name-table.h) -build $"outs namedump '$srcdir'/resources/pdf/names.txt '|' '$outdir'/namedump - -rule hexdump '$outdir/hexdump -p $srcdir/ $out.tmp $in && mv $out.tmp $out' -fonts=`{grep -v '^#' fonts.txt} ; checkstatus -for(font in $fonts) - build '$outdir'/$font.c hexdump '$srcdir'/resources/fonts/$font '|' '$outdir'/hexdump - -phony deps\ - pkg/^(curl libjpeg-turbo zlib)^/headers\ - '$builddir'/pkg/^(freetype jbig2dec)^/fetch.stamp\ - '$outdir'/mupdf/pdf/name-table.h - -srcs=`{grep -v -e '^#' -e harfbuzz.c sources.txt} ; checkstatus -lib libmupdf.a -d '$dir'/deps source/$srcs '$outdir'/$fonts.c\ - '$builddir'/pkg/^(\ - freetype/libfreetype.a.d\ - jbig2dec/libjbig2dec.a\ - libjpeg-turbo/libjpeg-turbo.a\ - zlib/libz.a\ - ) - -exe bin/mutool -d '$dir'/deps 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 '$outdir'/bin/mutool 755 - -cc platform/x11/curl_stream.c '||' pkg/curl/headers ; with\ - cflags '$cflags -I $builddir/pkg/curl/include' -phony wldeps\ - '$dir'/deps\ - '$builddir'/pkg/libxkbcommon/fetch.stamp\ - pkg/^(pixman wayland wayland-protocols)^/headers -cc platform/x11/wl_main.c '||' '$dir'/wldeps ; cflags=(\ - -I '$builddir'/pkg/pixman/include\ - -I '$builddir'/pkg/wayland/include\ - -I '$builddir'/pkg/wayland-protocols/include\ - -I pkg/libxkbcommon/src\ -) with cflags '$cflags '$"cflags -exe bin/mupdf -d '$dir'/deps 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 '$outdir'/bin/mupdf 755 - -man -d docs/man 1 mutool.1 mupdf.1 - -fetch git -gen_inputs='$dir'/^(sources.txt fonts.txt) diff --git a/pkg/mupdf/sources.txt b/pkg/mupdf/sources.txt index 55ea4ef6..c48c49bf 100644 --- a/pkg/mupdf/sources.txt +++ b/pkg/mupdf/sources.txt @@ -1,4 +1,4 @@ -# 2,<cd src/source && ls fitz/*.c pdf/*.c xps/*.c svg/*.c cbz/*.c gprf/*.c helpers/mu-threads/*.c +# 2,<cd src/source && ls fitz/*.c pdf/*.c xps/*.c svg/*.c cbz/*.c gprf/*.c helpers/mu-threads/*.c | grep -v fitz/harfbuzz.c cbz/mucbz.c cbz/muimg.c cbz/mutiff.c @@ -47,7 +47,6 @@ fitz/geometry.c fitz/getopt.c fitz/glyph.c fitz/halftone.c -fitz/harfbuzz.c fitz/hash.c fitz/image.c fitz/jmemcust.c |
