[poppler] cmake and static binaries

Albert Astals Cid aacid at kde.org
Sun Sep 10 09:48:02 UTC 2017


El diumenge, 10 de setembre de 2017, a les 15:30:46 CEST, Adrian Johnson va 
escriure:
> On 10/09/17 06:27, William Bader wrote:
> >> It's not a direct dependency of poppler
> >>
> > Thanks for the draw_lib_dependencies command.
> > 
> > It shows that libjbig is a dependency of
> > libtiff. https://imgur.com/a/8WYfY
> > 
> > 
> > I did normal dynamic builds with no options 'configure;make' in one area
> > and 'cmake .;make' in another area.
> > 
> > ldd shows libjbig as a dependency of the autotools libpoppler.so but not
> > the cmake libpoppler.so
> > 
> > If it only happens to me, it isn't worth looking at, but if it happens
> > to anyone else, it could be a difference between the default options in
> > autotools and cmake.
> 
> pkg-config has a --static option to list libraries required for a static
> build.
> 
> $ pkg-config --libs libtiff-4
> -ltiff
> 
> $ pkg-config --static --libs libtiff-4
> -ltiff -llzma -ljbig -ljpeg -lz -lm
> 
> You can try grepping the CMakeCache.txt. eg
> 
> $ grep -i cairo CMakeCache.txt  | grep -i static
> 
> shows a variable with static link flags
> 
> _pc_cairo_STATIC_LDFLAGS:INTERNAL=-lcairo;-lz;-lgobject-2.0;-lffi;-lglib-2.0
> ;-pthread;-lpcre;-pthread;-lpixman-1;-lfontconfig;-lexpat;-lfreetype;-lexpat
> ;-lfreetype;-lz;-lpng16;-lm;-lz;-lm;-lpng16;-lm;-lz;-lm;-lxcb-shm;-lxcb-rend
> er;-lXrender;-lXext;-lX11;-lpthread;-lxcb;-lXau;-lXdmcp
> 
> but
> 
> $ grep -i tiff CMakeCache.txt  | grep -i static
> 
> does not show any static link flags. For some reason cmake is not
> finding the libtiff static link flags.

Because the only thing we are doing is create a static version of libpoppler, 
not static linking the whole world, i.e. pdftotext will not depend of 
libpoppler but it'll still link to the other libs).

Cheers,
  Albert

> 
> > Since libjbig is a dependency of libtiff and not directly of libpoppler,
> > the difference might be what libpoppler uses in libtiff.
> > 
> > The config.h files set different options.
> > 
> > 
> > $ diff <(grep define auto/poppler-0.59.0/config.h | sort) <(grep define
> > cmake/poppler-0.59.0/config.h | sort)
> > 1,3d0
> > < #  define WORDS_BIGENDIAN 1
> > < # define _DARWIN_USE_64_BIT_INODE 1
> > < # if defined __BIG_ENDIAN__
> > 21a19
> > 
> >> #define HAVE_LIBZ 1
> > 
> > 30d27
> > < #define HAVE_PTHREAD_PRIO_INHERIT 1
> > 36a34
> > 
> >> #define HAVE_SYS_DIR_H 1
> > 
> > 40d37
> > < #define HAVE_TIFFIO_H 1
> > 43d39
> > < #define HAVE_ZLIB_H 1
> > 45d40
> > < #define LT_OBJDIR ".libs/"
> > 56d50
> > < #define POPPLER_VERSION "0.59.0"
> > 60d53
> > < #define USE_OPENJPEG1 1
> > 63,64c56,57
> > < #define WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG 1
> > < #if defined AC_APPLE_UNIVERSAL_BUILD
> > ---
> > 
> >> #define snprintf _snprintf
> >> #if defined(_MSC_VER) && _MSC_VER < 1900
> > 
> > 68a62
> > 
> >> /* MS defined snprintf as deprecated but then added it in Visual
> > 
> > Studio 2015. */
> > 
> > poppler-config.h is different also.
> > 
> > 
> > $ diff <(grep define auto/poppler-0.59.0/poppler/poppler-config.h | sort
> > -u) <(grep define cmake/poppler-0.59.0/poppler/poppler-config.h | sort -u)
> > 4a5
> > 
> >> #define ENABLE_ZLIB 1
> > 
> > 9a11
> > 
> >> #define HAVE_SYS_DIR_H 1
> > 
> > Regards, William
> > 
> > 
> > 
> > 
> > _______________________________________________
> > poppler mailing list
> > poppler at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/poppler
> 
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/poppler




More information about the poppler mailing list