From 0ba2c5ffcc5ca89a6565572de34bc1c0cf2492b9 Mon Sep 17 00:00:00 2001 From: Luna Date: Tue, 2 Jun 2020 21:42:26 -0300 Subject: [PATCH 1/3] add basics of searching for lilv --- build.zig | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/build.zig b/build.zig index 622961e..da24ddb 100644 --- a/build.zig +++ b/build.zig @@ -1,5 +1,6 @@ -const builds = @import("std").build; -const Builder = @import("std").build.Builder; +const std = @import("std"); +const builds = std.build; +const Builder = std.build.Builder; fn setupLinks(step: *builds.LibExeObjStep) void { step.linkSystemLibrary("c"); @@ -11,8 +12,26 @@ fn setupLinks(step: *builds.LibExeObjStep) void { step.linkSystemLibrary("GraphicsMagickWand"); step.linkSystemLibrary("GraphicsMagick"); - step.addIncludeDir("/usr/include/lilv-0"); step.addIncludeDir("/usr/include/GraphicsMagick"); + + const possible_lilv_include_dirs = [_][]const u8{ + "/usr/include/lilv-0", + "/usr/include/lilv-0/lilv", + }; + var found_any_lilv = false; + + for (possible_lilv_include_dirs) |possible_lilv_dir| { + var possible_dir = std.fs.cwd().openDir(possible_lilv_dir) catch |err| { + continue; + }; + possible_dir.close(); + found_any_lilv = true; + } + + if (!found_any_lilv) { + std.debug.warn("No LILV library was found :(\n"); + @panic("no lilv found"); + } } pub fn build(b: *Builder) void { From c80a6d0df70c8ef27637cf38be1f5645ab23eaee Mon Sep 17 00:00:00 2001 From: Luna Date: Tue, 2 Jun 2020 21:54:39 -0300 Subject: [PATCH 2/3] fix typos and actually add dirs to step --- build.zig | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/build.zig b/build.zig index da24ddb..8b3484b 100644 --- a/build.zig +++ b/build.zig @@ -13,23 +13,29 @@ fn setupLinks(step: *builds.LibExeObjStep) void { step.linkSystemLibrary("GraphicsMagick"); step.addIncludeDir("/usr/include/GraphicsMagick"); + step.addIncludeDir("/usr/include"); const possible_lilv_include_dirs = [_][]const u8{ - "/usr/include/lilv-0", "/usr/include/lilv-0/lilv", + "/usr/include/lilv-0", }; var found_any_lilv = false; for (possible_lilv_include_dirs) |possible_lilv_dir| { - var possible_dir = std.fs.cwd().openDir(possible_lilv_dir) catch |err| { + var possible_dir = std.fs.cwd().openDir(possible_lilv_dir, .{}) catch |err| { + std.debug.warn("possible lilv {} fail: {}\n", .{ possible_lilv_dir, err }); continue; }; + possible_dir.close(); found_any_lilv = true; + + std.debug.warn("found lilv at '{}'\n", .{possible_lilv_dir}); + step.addIncludeDir(possible_lilv_dir); } if (!found_any_lilv) { - std.debug.warn("No LILV library was found :(\n"); + std.debug.warn("No LILV library was found :(\n", .{}); @panic("no lilv found"); } } From 8d312cd987abd076b40bda6b5c92068aa21985a0 Mon Sep 17 00:00:00 2001 From: Luna Date: Tue, 2 Jun 2020 22:24:43 -0300 Subject: [PATCH 3/3] use lv2.h provided at root of /usr/include fixes ubuntu issues --- .gitignore | 1 + build.zig | 1 + src/lv2_helpers.zig | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b43912f..44f7213 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ zig-cache/ *.mp3 *.wav +build_runner.zig diff --git a/build.zig b/build.zig index 8b3484b..6858c80 100644 --- a/build.zig +++ b/build.zig @@ -19,6 +19,7 @@ fn setupLinks(step: *builds.LibExeObjStep) void { "/usr/include/lilv-0/lilv", "/usr/include/lilv-0", }; + var found_any_lilv = false; for (possible_lilv_include_dirs) |possible_lilv_dir| { diff --git a/src/lv2_helpers.zig b/src/lv2_helpers.zig index abc9c8f..a72e07d 100644 --- a/src/lv2_helpers.zig +++ b/src/lv2_helpers.zig @@ -4,7 +4,7 @@ const plugin = @import("plugin.zig"); pub const c = @cImport({ @cInclude("sndfile.h"); @cInclude("lilv/lilv.h"); - @cInclude("lv2/core/lv2.h"); + @cInclude("lv2.h"); }); pub fn Lv2Core(comptime ns: []const u8) []const u8 {