load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") cc_library( name = "config", hdrs = ["config.h"], strip_include_prefix = "/", visibility = ["//visibility:public"], deps = ["@rules_autoconf//:config"], ) cc_library( name = "poppler", srcs = [ # goo — general utilities "goo/GooString.cc", "goo/GooTimer.cc", "goo/ImgWriter.cc", "goo/NetPBMWriter.cc", "goo/ft_utils.cc", "goo/gbase64.cc", "goo/gbasename.cc", "goo/gfile.cc", "goo/glibc.cc", "goo/grandom.cc", "goo/gstrtod.cc", # fofi — font file parsing "fofi/FoFiBase.cc", "fofi/FoFiEncodings.cc", "fofi/FoFiIdentifier.cc", "fofi/FoFiTrueType.cc", "fofi/FoFiType1.cc", "fofi/FoFiType1C.cc", # splash — rasteriser "splash/Splash.cc", "splash/SplashBitmap.cc", "splash/SplashClip.cc", "splash/SplashFTFont.cc", "splash/SplashFTFontEngine.cc", "splash/SplashFTFontFile.cc", "splash/SplashFont.cc", "splash/SplashFontEngine.cc", "splash/SplashFontFile.cc", "splash/SplashFontFileID.cc", "splash/SplashPath.cc", "splash/SplashPattern.cc", "splash/SplashScreen.cc", "splash/SplashState.cc", "splash/SplashXPath.cc", "splash/SplashXPathScanner.cc", # poppler core "poppler/Annot.cc", "poppler/AnnotStampImageHelper.cc", "poppler/Array.cc", "poppler/BBoxOutputDev.cc", "poppler/CachedFile.cc", "poppler/Catalog.cc", "poppler/CertificateInfo.cc", "poppler/CharCodeToUnicode.cc", "poppler/CMap.cc", "poppler/CryptoSignBackend.cc", "poppler/DateInfo.cc", "poppler/Decrypt.cc", "poppler/Dict.cc", "poppler/Error.cc", "poppler/FDPDFDocBuilder.cc", "poppler/FILECacheLoader.cc", "poppler/FileSpec.cc", "poppler/FlateEncoder.cc", "poppler/FontEncodingTables.cc", "poppler/FontInfo.cc", "poppler/Form.cc", "poppler/Function.cc", "poppler/Gfx.cc", "poppler/GfxFont.cc", "poppler/GfxState.cc", "poppler/GlobalParams.cc", "poppler/Hints.cc", "poppler/ImageEmbeddingUtils.cc", "poppler/JArithmeticDecoder.cc", "poppler/JBIG2Stream.cc", "poppler/JSInfo.cc", "poppler/JPXStream.cc", # internal JPX fallback (no openjpeg) "poppler/Lexer.cc", "poppler/Link.cc", "poppler/Linearization.cc", "poppler/LocalPDFDocBuilder.cc", "poppler/MarkedContentOutputDev.cc", "poppler/Movie.cc", "poppler/NameToCharCode.cc", "poppler/Object.cc", "poppler/OptionalContent.cc", "poppler/Outline.cc", "poppler/OutputDev.cc", "poppler/Page.cc", "poppler/PageLabelInfo.cc", "poppler/PageTransition.cc", "poppler/Parser.cc", "poppler/PDFDoc.cc", "poppler/PDFDocBuilder.cc", "poppler/PDFDocEncoding.cc", "poppler/PDFDocFactory.cc", "poppler/PreScanOutputDev.cc", "poppler/ProfileData.cc", "poppler/PSOutputDev.cc", "poppler/PSTokenizer.cc", "poppler/Rendition.cc", "poppler/SecurityHandler.cc", "poppler/SignatureInfo.cc", "poppler/Sound.cc", "poppler/SplashOutputDev.cc", "poppler/Stream.cc", "poppler/StructElement.cc", "poppler/StructTreeRoot.cc", "poppler/TextOutputDev.cc", "poppler/UnicodeMap.cc", "poppler/UnicodeMapFuncs.cc", "poppler/UnicodeTypeTable.cc", "poppler/UTF.cc", "poppler/ViewerPreferences.cc", "poppler/XRef.cc", ], hdrs = glob([ "goo/*.h", "fofi/*.h", "splash/*.h", "poppler/*.h", ]) + ["poppler_private_export.h"], copts = ["-std=c++17"], strip_include_prefix = "/", includes = [ "goo", "poppler", ], visibility = ["//visibility:public"], deps = [ ":config", ":font_width_tables", "@freetype//:freetype", "@zlib//:zlib", ], ) # gperf-pregenerated font width tables — plain C, compiled without -std=c++17. cc_library( name = "font_width_tables", srcs = [ "poppler/BuiltinFontWidth.h", "poppler/CourierBoldObliqueWidths.pregenerated.c", "poppler/CourierBoldWidths.pregenerated.c", "poppler/CourierObliqueWidths.pregenerated.c", "poppler/CourierWidths.pregenerated.c", "poppler/HelveticaBoldObliqueWidths.pregenerated.c", "poppler/HelveticaBoldWidths.pregenerated.c", "poppler/HelveticaObliqueWidths.pregenerated.c", "poppler/HelveticaWidths.pregenerated.c", "poppler/SymbolWidths.pregenerated.c", "poppler/TimesBoldItalicWidths.pregenerated.c", "poppler/TimesBoldWidths.pregenerated.c", "poppler/TimesItalicWidths.pregenerated.c", "poppler/TimesRomanWidths.pregenerated.c", "poppler/ZapfDingbatsWidths.pregenerated.c", ], ) # pdfinfo binary cc_binary( name = "pdfinfo", srcs = [ "utils/Win32Console.h", "utils/parseargs.cc", "utils/parseargs.h", "utils/pdfinfo.cc", "utils/printencodings.cc", "utils/printencodings.h", ], copts = ["-std=c++17"], visibility = ["//visibility:public"], deps = [":poppler"], ) # pdftoppm binary cc_binary( name = "pdftoppm", srcs = [ "utils/Win32Console.h", "utils/numberofcharacters.h", "utils/parseargs.cc", "utils/parseargs.h", "utils/pdftoppm.cc", "utils/sanitychecks.cc", "utils/sanitychecks.h", ], copts = ["-std=c++17"], visibility = ["//visibility:public"], deps = [":poppler"], )