cipher-sr/build.zig
HuLiNap 78e23046f7 First push: build.zig
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
2025-04-17 16:16:03 +07:00

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);
}