hello, how to do in build and src.zig
this is a good example to include lib.a in a zig program
my program in c++ works perfectly
with an int main etc…
//#include <iostream>
#include <unicode/unistr.h>
#include <string>
const std::string sToUpper(const std::string svar) {
icu::UnicodeString us(svar.data());
us.toUpper(); //convert to uppercase in-place
std::string s;
us.toUTF8String(s);
//std::cout<<"Upper: "<<s<<"\n";
return s;
}
const std::string stoLower(const std::string svar) {
icu::UnicodeString us(svar.data());
us.toLower(); //convert to lowercase in-place
std::string s;
us.toUTF8String(s);
return s;
}
const std = @import("std");
const fconv = @cImport({
@cInclude("Transform.h");
});
pub fn main() !void {
var str: [*c] const u8 = "adréèà";
const str2 :[*c] const u8 = "";
std.debug.print(" text: {s} {s}",.{str ,str2});
str2 = fconv.sToUpper(str);
}```
str2 = fconv.sToUpper(str); error str
---------------------------
const std = @import("std");
pub fn build(b: *std.build.Builder) void {
const target = b.standardTargetOptions(.{});
const mode = b.standardReleaseOptions();
const prog = b.addExecutable("test", "src-zig/test.zig");
prog.setTarget(target);
prog.addPackagePath("fconv", "src_c/Transform.h");
const Transform = b.addObject("Transform", "obj/Transform.o");
prog.setBuildMode(mode);
prog.addIncludeDir("src_c/");
prog.addLibPath("lib/");
prog.linkSystemLibrary("stdc++");
prog.linkSystemLibrary("icuuc");
prog.linkSystemLibrary("X11");
prog.addObject(Transform);
prog.install();
const run_cmd = prog.run();
run_cmd.step.dependOn(b.getInstallStep());
if (b.args) |args| {
run_cmd.addArgs(args);
}
const run_step = b.step("tested", "Run the app");
run_step.dependOn(&run_cmd.step);
}