2020-05-02 17:43:26 +01:00
|
|
|
const std = @import("std");
|
2020-04-24 23:19:03 +01:00
|
|
|
const builtin = @import("builtin");
|
2020-05-25 22:12:08 +01:00
|
|
|
// const build_options = @import("build_options")
|
|
|
|
|
2021-03-30 18:49:29 +01:00
|
|
|
const setup = @import("src/setup.zig");
|
2020-05-25 22:12:08 +01:00
|
|
|
|
|
|
|
var builder: *std.build.Builder = undefined;
|
|
|
|
|
|
|
|
pub fn config(step: *std.build.Step) anyerror!void {
|
2021-03-30 18:49:29 +01:00
|
|
|
try setup.wizard(builder.allocator, builder.exe_dir);
|
2020-05-25 22:12:08 +01:00
|
|
|
}
|
2020-04-24 23:19:03 +01:00
|
|
|
|
2020-05-07 16:29:40 +01:00
|
|
|
pub fn build(b: *std.build.Builder) !void {
|
2020-05-25 22:12:08 +01:00
|
|
|
builder = b;
|
2020-04-24 23:19:03 +01:00
|
|
|
// Standard target options allows the person running `zig build` to choose
|
|
|
|
// what target to build for. Here we do not override the defaults, which
|
|
|
|
// means any target is allowed, and the default is native. Other options
|
|
|
|
// for restricting supported target set are available.
|
|
|
|
const target = b.standardTargetOptions(.{});
|
|
|
|
|
|
|
|
const mode = b.standardReleaseOptions();
|
|
|
|
const exe = b.addExecutable("zls", "src/main.zig");
|
2020-11-08 16:01:07 +00:00
|
|
|
|
2020-05-07 16:29:40 +01:00
|
|
|
exe.addBuildOption(
|
|
|
|
[]const u8,
|
|
|
|
"data_version",
|
2020-11-15 11:01:33 +00:00
|
|
|
b.option([]const u8, "data_version", "The data version - either 0.7.0 or master.") orelse "master",
|
2020-05-07 16:29:40 +01:00
|
|
|
);
|
2020-05-02 17:43:26 +01:00
|
|
|
|
2020-05-25 01:22:39 +01:00
|
|
|
exe.addPackage(.{ .name = "known-folders", .path = "src/known-folders/known-folders.zig" });
|
|
|
|
|
2020-04-24 23:19:03 +01:00
|
|
|
exe.setTarget(target);
|
|
|
|
exe.setBuildMode(mode);
|
|
|
|
exe.install();
|
|
|
|
|
2020-05-25 01:22:39 +01:00
|
|
|
b.installFile("src/special/build_runner.zig", "bin/build_runner.zig");
|
|
|
|
|
2020-04-24 23:19:03 +01:00
|
|
|
const run_cmd = exe.run();
|
|
|
|
run_cmd.step.dependOn(b.getInstallStep());
|
|
|
|
|
|
|
|
const run_step = b.step("run", "Run the app");
|
|
|
|
run_step.dependOn(&run_cmd.step);
|
2020-05-25 22:12:08 +01:00
|
|
|
|
|
|
|
const configure_step = b.step("config", "Configure zls");
|
|
|
|
configure_step.makeFn = config;
|
2020-05-27 19:58:35 +01:00
|
|
|
|
|
|
|
const test_step = b.step("test", "Run all the tests");
|
2020-07-03 12:21:32 +01:00
|
|
|
test_step.dependOn(builder.getInstallStep());
|
2020-05-27 19:58:35 +01:00
|
|
|
|
2021-03-29 13:02:52 +01:00
|
|
|
var unit_tests = b.addTest("src/unit_tests.zig");
|
2020-05-27 19:58:35 +01:00
|
|
|
unit_tests.setBuildMode(.Debug);
|
2021-03-29 13:02:52 +01:00
|
|
|
test_step.dependOn(&unit_tests.step);
|
2020-06-30 13:46:43 +01:00
|
|
|
|
|
|
|
var session_tests = b.addTest("tests/sessions.zig");
|
|
|
|
session_tests.addPackage(.{ .name = "header", .path = "src/header.zig" });
|
|
|
|
session_tests.setBuildMode(.Debug);
|
|
|
|
test_step.dependOn(&session_tests.step);
|
2020-04-24 23:19:03 +01:00
|
|
|
}
|