First push: build.zig.zon First push: config.json First push: dispatch/build.zig First push: dispatch/build.zig.zon First push: dispatch/src/authentication.zig First push: dispatch/src/dispatch.zig First push: dispatch/src/hotfix.zig First push: dispatch/src/main.zig First push: gameserver/build.zig First push: gameserver/build.zig.zon First push: gameserver/src/Packet.zig First push: gameserver/src/Session.zig First push: gameserver/src/command.zig First push: gameserver/src/commands/help.zig First push: gameserver/src/commands/refill.zig First push: gameserver/src/commands/sync.zig First push: gameserver/src/commands/tp.zig First push: gameserver/src/commands/unstuck.zig First push: gameserver/src/commands/value.zig First push: gameserver/src/data.zig First push: gameserver/src/handlers.zig First push: gameserver/src/main.zig First push: gameserver/src/manager/battle_mgr.zig First push: gameserver/src/manager/lineup_mgr.zig First push: gameserver/src/manager/multipath_mgr.zig First push: gameserver/src/manager/scene_mgr.zig First push: gameserver/src/network.zig First push: gameserver/src/services/avatar.zig First push: gameserver/src/services/battle.zig First push: gameserver/src/services/challenge.zig First push: gameserver/src/services/chat.zig First push: gameserver/src/services/config.zig First push: gameserver/src/services/events.zig First push: gameserver/src/services/gacha.zig First push: gameserver/src/services/item.zig First push: gameserver/src/services/lineup.zig First push: gameserver/src/services/login.zig First push: gameserver/src/services/mail.zig First push: gameserver/src/services/misc copy.zig First push: gameserver/src/services/misc.zig First push: gameserver/src/services/mission.zig First push: gameserver/src/services/multipath.zig First push: gameserver/src/services/pet.zig First push: gameserver/src/services/profile.zig First push: gameserver/src/services/res_config.zig First push: gameserver/src/services/scene.zig First push: hotfix.json First push: protocol/build.zig First push: protocol/build.zig.zon First push: protocol/src/protocol.pb.zig First push: protocol/src/root.zig First push: resources/ChallengeMazeConfig.json First push: resources/MapEntrance.json First push: resources/MazePlane.json First push: resources/res.json
64 lines
2.2 KiB
Zig
64 lines
2.2 KiB
Zig
const std = @import("std");
|
|
const protobuf = @import("protobuf");
|
|
|
|
pub fn build(b: *std.Build) void {
|
|
const target = b.standardTargetOptions(.{});
|
|
const optimize = b.standardOptimizeOption(.{});
|
|
|
|
const dep_opts = .{ .target = target, .optimize = optimize };
|
|
|
|
const protobuf_dep = b.dependency("protobuf", dep_opts);
|
|
|
|
if (std.fs.cwd().access("protocol/StarRail.proto", .{})) {
|
|
const protoc_step = protobuf.RunProtocStep.create(b, protobuf_dep.builder, target, .{
|
|
.destination_directory = b.path("protocol/src"),
|
|
.source_files = &.{
|
|
"protocol/StarRail.proto",
|
|
},
|
|
.include_directories = &.{},
|
|
});
|
|
|
|
b.getInstallStep().dependOn(&protoc_step.step);
|
|
} else |_| {} // don't invoke protoc if proto definition doesn't exist
|
|
|
|
const dispatch = b.dependency("dispatch", dep_opts);
|
|
b.installArtifact(dispatch.artifact("dispatch"));
|
|
|
|
const gameserver = b.dependency("gameserver", dep_opts);
|
|
b.installArtifact(gameserver.artifact("gameserver"));
|
|
|
|
// "run-dispatch" command
|
|
const dispatch_cmd = b.addRunArtifact(dispatch.artifact("dispatch"));
|
|
dispatch_cmd.step.dependOn(b.getInstallStep());
|
|
|
|
if (b.args) |args| {
|
|
dispatch_cmd.addArgs(args);
|
|
}
|
|
|
|
const dispatch_step = b.step("run-dispatch", "Run the dispatch server");
|
|
dispatch_step.dependOn(&dispatch_cmd.step);
|
|
|
|
// "run-gameserver" command
|
|
const gameserver_cmd = b.addRunArtifact(gameserver.artifact("gameserver"));
|
|
gameserver_cmd.step.dependOn(b.getInstallStep());
|
|
|
|
if (b.args) |args| {
|
|
gameserver_cmd.addArgs(args);
|
|
}
|
|
|
|
const gameserver_step = b.step("run-gameserver", "Run the game server");
|
|
gameserver_step.dependOn(&gameserver_cmd.step);
|
|
// "gen-proto"
|
|
const gen_proto = b.step("gen-proto", "generates zig files from protocol buffer definitions");
|
|
|
|
const protoc_step = protobuf.RunProtocStep.create(b, protobuf_dep.builder, target, .{
|
|
// out directory for the generated zig files
|
|
.destination_directory = b.path("protocol/src"),
|
|
.source_files = &.{
|
|
"protocol/StarRail.proto",
|
|
},
|
|
.include_directories = &.{},
|
|
});
|
|
|
|
gen_proto.dependOn(&protoc_step.step);
|
|
}
|