diff options
Diffstat (limited to 'mupdf.zig')
| -rw-r--r-- | mupdf.zig | 22 |
1 files changed, 10 insertions, 12 deletions
@@ -33,6 +33,14 @@ pub fn add(b: *std.Build, io: std.Io, dependency: *std.Build.Dependency, options /// Compile openjpeg and let MuPDF decode JPEG 2000. See the OPENJPEG /// block below for why this is a switch rather than always-on. jpx: bool = true, + /// The FreeType the rest of the build links, which MuPDF is compiled + /// against and links instead of the slim one it bundles (FREETYPE_SRC, + /// configured by scripts/freetype). Both define the same symbols and a + /// linker handed two keeps one of each, so the gui's MuPDF ran the full + /// FreeType's code compiled against the slim one's headers, while the tty + /// ran the slim one. MuPDF asks nothing of FreeType the full + /// configuration lacks. + freetype: *std.Build.Step.Compile, }) Result { const module = b.createModule(.{ .target = options.target, @@ -45,6 +53,8 @@ pub fn add(b: *std.Build, io: std.Io, dependency: *std.Build.Dependency, options // debug-locking/assertion paths. linkTo applies the same public-header // contract to consumers; keeping it here also covers every archive source. module.addCMacro("NDEBUG", "1"); + // The build's own FreeType, headers and all; see `freetype` above. + module.linkLibrary(options.freetype); // MuPDF itself uses wildcards for these two directories. The dependency // is immutable and content-addressed, so discovering the flat C lists at @@ -82,16 +92,6 @@ pub fn add(b: *std.Build, io: std.Io, dependency: *std.Build.Dependency, options const makelists = readMakelists(b, io, dependency); module.addCSourceFiles(.{ .root = dependency.path(""), - .files = makeSources(b, makelists, "FREETYPE_SRC"), - .flags = &.{ - "-std=gnu11", - "-DFT_CONFIG_MODULES_H=\"slimftmodules.h\"", - "-DFT_CONFIG_OPTIONS_H=\"slimftoptions.h\"", - "-DFT2_BUILD_LIBRARY", - }, - }); - module.addCSourceFiles(.{ - .root = dependency.path(""), .files = makeSources(b, makelists, "LIBJPEG_SRC"), .flags = &.{"-std=gnu11"}, }); @@ -250,8 +250,6 @@ fn configureModule(module: *std.Build.Module, dependency: *std.Build.Dependency, module.addIncludePath(dependency.path("include")); module.addIncludePath(dependency.path("source/fitz")); module.addIncludePath(dependency.path("source/pdf")); - module.addIncludePath(dependency.path("thirdparty/freetype/include")); - module.addIncludePath(dependency.path("scripts/freetype")); module.addIncludePath(dependency.path("thirdparty/libjpeg")); module.addIncludePath(dependency.path("scripts/libjpeg")); module.addIncludePath(dependency.path("thirdparty/zlib")); |
