dotfiles/plugins/mzte-mpv/build.zig

29 lines
1.2 KiB
Zig

const std = @import("std");
pub fn build(b: *std.Build) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const lib = b.addSharedLibrary(.{
.name = "mzte-mpv",
.root_source_file = b.path("src/main.zig"),
.link_libc = true,
.target = target,
.optimize = optimize,
});
lib.root_module.addImport("common", b.dependency("common", .{}).module("common"));
// Linking MPV for a plugin is usually undesirable, but it seems to work anyways.
// This is here because Zig will otherwise not find the necessary header files on NixOS,
// and there appears to be no way to obtain an include path using pkg-config without
// also linking.
lib.root_module.linkSystemLibrary("mpv", .{});
const install_step = b.addInstallArtifact(lib, .{
// this is not a standard MPV installation path, but instead one that makes sense.
// this requires a symlink ../../../.local/share/mpv/scripts => ~/.config/mpv/scripts
.dest_dir = .{ .override = .{ .custom = "share/mpv/scripts" } },
.dest_sub_path = "mzte-mpv.so",
});
b.getInstallStep().dependOn(&install_step.step);
}