![]() |
CAPS Universe documentation
1.0.4
All you need to know to be successful
|
It wasn't such easy for me to get a working muPDF. They invent their own buildsystem and do not provide a pkg-config file and thus, it is hard to guess all the dependencies.
Installing a development muPDF variant from within my distribution was a nightmare. But it worked with the following packages:
My libmupdf-dev package came with a broken pkg-config file and required a repaired one at a well known location. I added the mupdf.pc with the following content into /usr/lib/pkgconfig:
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: mupdf
Description: Library for rendering PDF documents
Requires.private: freetype2 jbig2dec libopenjp2 libjpeg harfbuzz
Version: 1.15.0
Libs: -L${libdir} -lmupdf
Libs.private: -lmupdf-third
Cflags: -I${includedir}
With this file libcapsraster's build system was happy, pkg-config as well and the linker was able to link all parts into one library.
But there is a different way available to get a working libmupdf:
Their git repository contains everything they need to build the library and use it at run-time: they include all dependencies into one single library. Building it is simple in this case. Just run a:
make HAVE_X11=no HAVE_GLUT=no prefix=/usr/local
Useful additional options when compiling:
build=sanitize if the other parts of the CAPS universe are compiled with ASAN as well. ASAN is really helpful for development.shared=yes to have a regular shared library (alternative is shared=no)-j4 or similar if you have more than one CPU coreA debugging example:
make HAVE_X11=no HAVE_GLUT=no prefix=/usr/local XCFLAGS=-fsanitize=address XLIBS=-lasan build=debug shared=yes sudo make prefix=/usr/local build=debug shared=yes install
A release example:
make HAVE_X11=no HAVE_GLUT=no prefix=/usr/local build=release shared=yes sudo make prefix=/usr/local build=release shared=yes install
Makethird fileFor the case everything is compiled into muPDF add a simple pkg-config file to make libcapsraster's build system happy. Add a file called mupdf.pc with the following content into /usr/local/lib/pkgconfig:
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: mupdf
Description: Library for rendering PDF documents
Version: 1.15.0
Libs: -L${libdir} -lmupdf
Cflags: -I${includedir}
/usr/local replace it by your choice in all examples above.