]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
zig : don't link examples/common.cpp for non-example (#814)
authoriacore <redacted>
Fri, 7 Apr 2023 16:05:29 +0000 (16:05 +0000)
committerGitHub <redacted>
Fri, 7 Apr 2023 16:05:29 +0000 (19:05 +0300)
build.zig

index b73460880ae761fe563f12fd4fbdd8353b6babae..defc2c3ad4434d84099f75000741684a8468aa51 100644 (file)
--- a/build.zig
+++ b/build.zig
@@ -3,12 +3,14 @@ const std = @import("std");
 pub fn build(b: *std.Build) void {
     const target = b.standardTargetOptions(.{});
     const optimize = b.standardOptimizeOption(.{});
+    const want_lto = b.option(bool, "lto", "Want -fLTO");
 
     const lib = b.addStaticLibrary(.{
         .name = "llama",
         .target = target,
         .optimize = optimize,
     });
+    lib.want_lto = want_lto;
     lib.linkLibCpp();
     lib.addIncludePath(".");
     lib.addIncludePath("examples");
@@ -17,11 +19,11 @@ pub fn build(b: *std.Build) void {
     }, &.{"-std=c11"});
     lib.addCSourceFiles(&.{
         "llama.cpp",
-        "examples/common.cpp",
     }, &.{"-std=c++11"});
     lib.install();
 
-    const build_args = .{ .b = b, .lib = lib, .target = target, .optimize = optimize };
+    const build_args = .{ .b = b, .lib = lib, .target = target, .optimize = optimize, .want_lto = want_lto };
+
     const exe = build_example("main", build_args);
     _ = build_example("quantize", build_args);
     _ = build_example("perplexity", build_args);
@@ -44,16 +46,19 @@ fn build_example(comptime name: []const u8, args: anytype) *std.build.LibExeObjS
     const lib = args.lib;
     const target = args.target;
     const optimize = args.optimize;
+    const want_lto = args.want_lto;
 
     const exe = b.addExecutable(.{
         .name = name,
         .target = target,
         .optimize = optimize,
     });
+    exe.want_lto = want_lto;
     exe.addIncludePath(".");
     exe.addIncludePath("examples");
     exe.addCSourceFiles(&.{
         std.fmt.comptimePrint("examples/{s}/{s}.cpp", .{name, name}),
+        "examples/common.cpp",
     }, &.{"-std=c++11"});
     exe.linkLibrary(lib);
     exe.install();