mirror of
https://git.xeondev.com/LR/S.git
synced 2026-02-04 06:55:06 +01:00
150 lines
4.6 KiB
Zig
150 lines
4.6 KiB
Zig
const std = @import("std");
|
|
|
|
pub fn build(b: *std.Build) void {
|
|
const target = b.standardTargetOptions(.{});
|
|
const optimize = b.standardOptimizeOption(.{});
|
|
|
|
const common = b.createModule(.{
|
|
.root_source_file = b.path("common/src/root.zig"),
|
|
});
|
|
|
|
const lr_proto_gen = b.addExecutable(.{
|
|
.name = "lr_proto_gen",
|
|
.root_module = b.createModule(.{
|
|
.root_source_file = b.path("proto/gen/src/main.zig"),
|
|
.optimize = optimize,
|
|
.target = b.graph.host,
|
|
}),
|
|
});
|
|
|
|
const compile_proto = b.addRunArtifact(lr_proto_gen);
|
|
compile_proto.expectExitCode(0);
|
|
const pb_generated = compile_proto.captureStdOut(.{ .basename = "beyond_generated.zig" });
|
|
|
|
for (proto_files) |file| {
|
|
compile_proto.addFileArg(b.path(file));
|
|
}
|
|
|
|
const proto = b.createModule(.{
|
|
.root_source_file = b.path("proto/src/root.zig"),
|
|
.optimize = optimize,
|
|
.target = target,
|
|
});
|
|
|
|
proto.addAnonymousImport("beyond_generated", .{ .root_source_file = pb_generated });
|
|
|
|
const confsv = b.addExecutable(.{
|
|
.name = "lr-confsv",
|
|
.root_module = b.createModule(.{
|
|
.root_source_file = b.path("confsv/src/main.zig"),
|
|
.imports = &.{.{ .name = "common", .module = common }},
|
|
.target = target,
|
|
.optimize = optimize,
|
|
}),
|
|
});
|
|
|
|
const gamesv = b.addExecutable(.{
|
|
.name = "lr-gamesv",
|
|
.root_module = b.createModule(.{
|
|
.root_source_file = b.path("gamesv/src/main.zig"),
|
|
.imports = &.{
|
|
.{ .name = "common", .module = common },
|
|
.{ .name = "proto", .module = proto },
|
|
},
|
|
.target = target,
|
|
.optimize = optimize,
|
|
}),
|
|
});
|
|
|
|
gamesv.step.dependOn(&compile_proto.step);
|
|
|
|
b.step(
|
|
"run-confsv",
|
|
"run the config server",
|
|
).dependOn(&b.addRunArtifact(confsv).step);
|
|
|
|
b.step(
|
|
"run-gamesv",
|
|
"run the game server",
|
|
).dependOn(&b.addRunArtifact(gamesv).step);
|
|
|
|
b.installArtifact(confsv);
|
|
b.installArtifact(gamesv);
|
|
}
|
|
|
|
const proto_files: []const []const u8 = &.{
|
|
"proto/pb/battle.proto",
|
|
"proto/pb/common.proto",
|
|
"proto/pb/cs_achieve.proto",
|
|
"proto/pb/cs_activity.proto",
|
|
"proto/pb/cs_adventure_book.proto",
|
|
"proto/pb/cs_adventure.proto",
|
|
"proto/pb/cs_anti_cheat.proto",
|
|
"proto/pb/cs_battle.proto",
|
|
"proto/pb/cs_bitset.proto",
|
|
"proto/pb/cs_bp.proto",
|
|
"proto/pb/cs_character.proto",
|
|
"proto/pb/cs_char_bag.proto",
|
|
"proto/pb/cs_collection.proto",
|
|
"proto/pb/cs_dialog.proto",
|
|
"proto/pb/cs_domain_depot.proto",
|
|
"proto/pb/cs_domain_development.proto",
|
|
"proto/pb/cs_doodad_group.proto",
|
|
"proto/pb/cs_dungeon.proto",
|
|
"proto/pb/cs_energy_point.proto",
|
|
"proto/pb/cs_equip.proto",
|
|
"proto/pb/cs_factory_blue_print.proto",
|
|
"proto/pb/cs_factory_chapter.proto",
|
|
"proto/pb/cs_factory_op.proto",
|
|
"proto/pb/cs_factory.proto",
|
|
"proto/pb/cs_focus_mode.proto",
|
|
"proto/pb/cs_friend_chat.proto",
|
|
"proto/pb/cs_friend.proto",
|
|
"proto/pb/cs_gacha.proto",
|
|
"proto/pb/cs_game_mechanics.proto",
|
|
"proto/pb/cs_game_mode.proto",
|
|
"proto/pb/cs_game_var.proto",
|
|
"proto/pb/cs_gem.proto",
|
|
"proto/pb/cs_global_effect.proto",
|
|
"proto/pb/cs_guide.proto",
|
|
"proto/pb/cs_item_bag.proto",
|
|
"proto/pb/cs_kite_station.proto",
|
|
"proto/pb/cs_login.proto",
|
|
"proto/pb/cs_mail.proto",
|
|
"proto/pb/cs_map_mark.proto",
|
|
"proto/pb/cs_mini_game.proto",
|
|
"proto/pb/cs_misc.proto",
|
|
"proto/pb/cs_mission.proto",
|
|
"proto/pb/cs_monster_spawner.proto",
|
|
"proto/pb/cs_monthlycard.proto",
|
|
"proto/pb/cs_msgid.proto",
|
|
"proto/pb/cs_npc.proto",
|
|
"proto/pb/cs_pay.proto",
|
|
"proto/pb/cs_proto.proto",
|
|
"proto/pb/cs_prts.proto",
|
|
"proto/pb/cs_punish.proto",
|
|
"proto/pb/cs_racing_dungeon.proto",
|
|
"proto/pb/cs_recycle_bin.proto",
|
|
"proto/pb/cs_red_dot.proto",
|
|
"proto/pb/cs_scene.proto",
|
|
"proto/pb/cs_sensitive.proto",
|
|
"proto/pb/cs_settlement.proto",
|
|
"proto/pb/cs_shop.proto",
|
|
"proto/pb/cs_sns.proto",
|
|
"proto/pb/cs_spaceship.proto",
|
|
"proto/pb/cs_statistic.proto",
|
|
"proto/pb/cs_submit_item.proto",
|
|
"proto/pb/cs_td.proto",
|
|
"proto/pb/cs_time_freeze.proto",
|
|
"proto/pb/cs_tools.proto",
|
|
"proto/pb/cs_unlock.proto",
|
|
"proto/pb/cs_wallet.proto",
|
|
"proto/pb/cs_weapon.proto",
|
|
"proto/pb/cs_week_raid.proto",
|
|
"proto/pb/cs_wiki.proto",
|
|
"proto/pb/errorcode.proto",
|
|
"proto/pb/factory_core.proto",
|
|
"proto/pb/options.proto",
|
|
"proto/pb/ss_common.proto",
|
|
};
|