summaryrefslogtreecommitdiff
path: root/mupdf.zig
diff options
context:
space:
mode:
Diffstat (limited to 'mupdf.zig')
-rw-r--r--mupdf.zig22
1 files changed, 10 insertions, 12 deletions
diff --git a/mupdf.zig b/mupdf.zig
index 400e5ee3..cda9a38a 100644
--- a/mupdf.zig
+++ b/mupdf.zig
@@ -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"));