diff options
| author | ruki <[email protected]> | 2020-07-12 18:59:02 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-07-12 18:59:02 +0800 |
| commit | a29aa00049808194d9c1ae41d7bcc0575b16c7bc (patch) | |
| tree | a07c3aa760d897a2b0895ff24a291ee3f6758056 | |
| parent | c93f12ad36c4b19683fb9aefae2dd6bae8db02b7 (diff) | |
improve zig build
| -rw-r--r-- | tests/projects/zig/console/src/test.zig | 6 | ||||
| -rw-r--r-- | xmake/modules/core/tools/zig.lua | 6 | ||||
| -rw-r--r-- | xmake/modules/detect/tools/find_zig.lua | 14 |
3 files changed, 23 insertions, 3 deletions
diff --git a/tests/projects/zig/console/src/test.zig b/tests/projects/zig/console/src/test.zig new file mode 100644 index 000000000..84804603e --- /dev/null +++ b/tests/projects/zig/console/src/test.zig @@ -0,0 +1,6 @@ +const std = @import("std"); + +pub fn hello() !void { + const stdout = std.io.getStdOut().outStream(); + try stdout.print("Hello, {}!\n", .{"world"}); +} diff --git a/xmake/modules/core/tools/zig.lua b/xmake/modules/core/tools/zig.lua index 6e6969dbb..f3e3d5b06 100644 --- a/xmake/modules/core/tools/zig.lua +++ b/xmake/modules/core/tools/zig.lua @@ -112,7 +112,11 @@ function linkargv(self, objectfiles, targetkind, targetfile, flags) raise("unknown target kind(%s)!", targetkind) end local name = targetkind == "binary" and path.basename(targetfile) or target.linkname(path.filename(targetfile)) - table.join2(argv, flags, "--output-dir", path.directory(targetfile), "--name", name, "--object", objectfiles) + table.join2(argv, flags, "--output-dir", path.directory(targetfile), "--name", name) + for _, objectfile in ipairs(objectfiles) do + table.insert(argv, "--object") + table.insert(argv, objectfile) + end return self:program(), argv end diff --git a/xmake/modules/detect/tools/find_zig.lua b/xmake/modules/detect/tools/find_zig.lua index 8fd53eff8..35f7c18dc 100644 --- a/xmake/modules/detect/tools/find_zig.lua +++ b/xmake/modules/detect/tools/find_zig.lua @@ -38,8 +38,18 @@ function main(opt) -- init options opt = opt or {} - opt.check = opt.check or "--help" + opt.check = opt.check or "version" + opt.command = opt.command or "version" -- find program - return find_program(opt.program or "zig", opt) + local program = find_program(opt.program or "zig", opt) + + -- find program version + local version = nil + if program and opt and opt.version then + version = find_programver(program, opt) + end + + -- ok? + return program, version end |
