mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-12-12 03:02:30 +00:00
fix(build): add WHOA_UB_SAN and WHOA_BUILD_GLSDL options to zig build script
This commit is contained in:
parent
5229b9b972
commit
45f23fb3ba
1 changed files with 102 additions and 129 deletions
231
build.zig
231
build.zig
|
|
@ -50,10 +50,6 @@ fn link_core_dependencies(c: *std.Build.Step.Compile) void {
|
||||||
c.linkLibrary(d.lua.artifact("lua"));
|
c.linkLibrary(d.lua.artifact("lua"));
|
||||||
// link freetype
|
// link freetype
|
||||||
c.linkLibrary(d.freetype.artifact("freetype"));
|
c.linkLibrary(d.freetype.artifact("freetype"));
|
||||||
// // link sdl
|
|
||||||
// c.linkLibrary(d.sdl.artifact("SDL3"));
|
|
||||||
// // link glew
|
|
||||||
// c.linkLibrary(d.glew.artifact("glew"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn link_glsdl_dependencies(target: std.Build.ResolvedTarget, c: *std.Build.Step.Compile) void {
|
fn link_glsdl_dependencies(target: std.Build.ResolvedTarget, c: *std.Build.Step.Compile) void {
|
||||||
|
|
@ -75,16 +71,80 @@ pub fn build(b: *std.Build) void {
|
||||||
const target = b.standardTargetOptions(.{});
|
const target = b.standardTargetOptions(.{});
|
||||||
const optimize = b.standardOptimizeOption(.{});
|
const optimize = b.standardOptimizeOption(.{});
|
||||||
|
|
||||||
|
// Build options
|
||||||
|
|
||||||
|
// UBsan
|
||||||
|
const ub_san_help_text = "Enable/Disable the Undefined Behavior Sanitizer";
|
||||||
|
const ub_san_option = b.option(bool, "WHOA_UB_SAN", ub_san_help_text);
|
||||||
|
var ub_san: bool = undefined;
|
||||||
|
|
||||||
|
// UB san is enabled or disabled by default, depending on what mode we're in
|
||||||
|
switch (optimize) {
|
||||||
|
.Debug => {
|
||||||
|
ub_san = true;
|
||||||
|
},
|
||||||
|
.ReleaseSafe => {
|
||||||
|
ub_san = true;
|
||||||
|
},
|
||||||
|
.ReleaseSmall => {
|
||||||
|
ub_san = false;
|
||||||
|
},
|
||||||
|
.ReleaseFast => {
|
||||||
|
ub_san = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ub_san_option != null) {
|
||||||
|
ub_san = ub_san_option.?;
|
||||||
|
}
|
||||||
|
const whoa_base_compiler_flags = [_][]const u8 {
|
||||||
|
"-std=c++11",
|
||||||
|
// Allow templates to abuse offsetof
|
||||||
|
"-Wno-invalid-offsetof",
|
||||||
|
};
|
||||||
|
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||||
|
var whoa_compiler_flags_list = std.ArrayList([]const u8).init(gpa.allocator());
|
||||||
|
defer _ = whoa_compiler_flags_list.deinit();
|
||||||
|
whoa_compiler_flags_list.appendSlice(&whoa_base_compiler_flags) catch {};
|
||||||
|
|
||||||
const t = &target.result;
|
const t = &target.result;
|
||||||
|
|
||||||
const whoa_compiler_flags = [_][]const u8 {
|
if (ub_san) {
|
||||||
"-std=c++11",
|
// Disable UBsan alignment checks only
|
||||||
|
whoa_compiler_flags_list.append("-fno-sanitize=alignment") catch {};
|
||||||
|
} else {
|
||||||
|
// Disable UBsan
|
||||||
|
whoa_compiler_flags_list.append("-fsanitize=undefined") catch {};
|
||||||
|
}
|
||||||
|
|
||||||
"-Wno-invalid-offsetof",
|
var build_gll = false;
|
||||||
|
var build_d3d = false;
|
||||||
|
var build_glsdl = false;
|
||||||
|
|
||||||
// Disable UBsan alignment checks
|
// GLSDL
|
||||||
"-fno-sanitize=alignment",
|
const build_glsdl_option = b.option(bool, "WHOA_BUILD_GLSDL", "Enable");
|
||||||
};
|
switch (target.result.os) {
|
||||||
|
.windows => {
|
||||||
|
// SDL is off by default
|
||||||
|
build_glsdl = build_glsdl_option orelse false;
|
||||||
|
build_d3d = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
.macos => {
|
||||||
|
// macos can't really compile SDL easily
|
||||||
|
build_glsdl = false;
|
||||||
|
build_gll = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
else => {
|
||||||
|
// GLSDL on by default
|
||||||
|
build_glsdl = build_glsdl_option orelse true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FMOD
|
||||||
|
// const build_fmod_option = b.option(bool, "WHOA_BUILD_FMOD", "Enable");
|
||||||
|
|
||||||
|
const whoa_compiler_flags = whoa_compiler_flags_list.items;
|
||||||
|
|
||||||
// dependencies
|
// dependencies
|
||||||
get_dependencies(b);
|
get_dependencies(b);
|
||||||
|
|
@ -123,7 +183,7 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_async_sources,
|
.files = &whoa_async_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
// *****************
|
// *****************
|
||||||
|
|
@ -150,28 +210,28 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_client_sources,
|
.files = &whoa_client_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (t.os.tag) {
|
switch (t.os.tag) {
|
||||||
.windows => {
|
.windows => {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_client_windows_sources,
|
.files = &whoa_client_windows_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
.macos => {
|
.macos => {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_client_macos_sources,
|
.files = &whoa_client_macos_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
else => {
|
else => {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_client_linux_sources,
|
.files = &whoa_client_linux_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -212,7 +272,7 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_console_sources,
|
.files = &whoa_console_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
// *************
|
// *************
|
||||||
|
|
@ -230,7 +290,7 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_db_sources,
|
.files = &whoa_db_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
// ****************
|
// ****************
|
||||||
|
|
@ -264,28 +324,28 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_event_sources,
|
.files = &whoa_event_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (t.os.tag) {
|
switch (t.os.tag) {
|
||||||
.windows => {
|
.windows => {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_event_windows_sources,
|
.files = &whoa_event_windows_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
.macos => {
|
.macos => {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_event_macos_sources,
|
.files = &whoa_event_macos_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
else => {
|
else => {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_event_linux_sources,
|
.files = &whoa_event_linux_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -301,7 +361,7 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_glue_sources,
|
.files = &whoa_glue_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
// *************
|
// *************
|
||||||
|
|
@ -397,51 +457,34 @@ pub fn build(b: *std.Build) void {
|
||||||
"src/gx/glsdl/GLVertexShader.cpp"
|
"src/gx/glsdl/GLVertexShader.cpp"
|
||||||
};
|
};
|
||||||
|
|
||||||
var use_gll = false;
|
|
||||||
var use_glsdl = false;
|
|
||||||
var use_d3d = false;
|
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_gx_sources,
|
.files = &whoa_gx_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (t.os.tag) {
|
|
||||||
.windows => {
|
|
||||||
use_d3d = true;
|
|
||||||
use_glsdl = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
.macos => {
|
if (build_d3d) {
|
||||||
use_gll = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
else => {
|
|
||||||
use_glsdl = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (use_d3d) {
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_gx_d3d_sources,
|
.files = &whoa_gx_d3d_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
whoa_core.linkSystemLibrary("d3d9");
|
whoa_core.linkSystemLibrary("d3d9");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (use_gll) {
|
if (build_gll) {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_gx_gll_sources,
|
.files = &whoa_gx_gll_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
whoa_core.linkFramework("AppKit");
|
whoa_core.linkFramework("AppKit");
|
||||||
whoa_core.linkFramework("OpenGL");
|
whoa_core.linkFramework("OpenGL");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (use_glsdl) {
|
if (build_glsdl) {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_gx_glsdl_sources,
|
.files = &whoa_gx_glsdl_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
link_glsdl_dependencies(target, whoa_core);
|
link_glsdl_dependencies(target, whoa_core);
|
||||||
|
|
@ -455,7 +498,7 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_math_sources,
|
.files = &whoa_math_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
// ****************
|
// ****************
|
||||||
|
|
@ -477,7 +520,7 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_model_sources,
|
.files = &whoa_model_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
// **************
|
// **************
|
||||||
|
|
@ -514,14 +557,14 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_net_sources,
|
.files = &whoa_net_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (t.os.tag) {
|
switch (t.os.tag) {
|
||||||
.windows => {
|
.windows => {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_net_winsock_sources,
|
.files = &whoa_net_winsock_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
whoa_core.linkSystemLibrary("wsock32");
|
whoa_core.linkSystemLibrary("wsock32");
|
||||||
whoa_core.linkSystemLibrary("ws2_32");
|
whoa_core.linkSystemLibrary("ws2_32");
|
||||||
|
|
@ -530,7 +573,7 @@ pub fn build(b: *std.Build) void {
|
||||||
else => {
|
else => {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_net_bsd_sources,
|
.files = &whoa_net_bsd_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -562,7 +605,7 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_sound_sources,
|
.files = &whoa_sound_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
// *************
|
// *************
|
||||||
|
|
@ -628,7 +671,7 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_ui_sources,
|
.files = &whoa_ui_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
// ***************
|
// ***************
|
||||||
|
|
@ -649,13 +692,13 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_util_sources,
|
.files = &whoa_util_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
if (t.os.tag == .macos) {
|
if (t.os.tag == .macos) {
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_util_macos_sources,
|
.files = &whoa_util_macos_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -668,7 +711,7 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_core.addCSourceFiles(.{
|
whoa_core.addCSourceFiles(.{
|
||||||
.files = &whoa_world_sources,
|
.files = &whoa_world_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
|
|
||||||
// **************
|
// **************
|
||||||
|
|
@ -707,21 +750,21 @@ pub fn build(b: *std.Build) void {
|
||||||
.windows => {
|
.windows => {
|
||||||
whoa_app.addCSourceFiles(.{
|
whoa_app.addCSourceFiles(.{
|
||||||
.files = &whoa_app_windows_sources,
|
.files = &whoa_app_windows_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
.macos => {
|
.macos => {
|
||||||
whoa_app.addCSourceFiles(.{
|
whoa_app.addCSourceFiles(.{
|
||||||
.files = &whoa_app_macos_sources,
|
.files = &whoa_app_macos_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
else => {
|
else => {
|
||||||
whoa_app.addCSourceFiles(.{
|
whoa_app.addCSourceFiles(.{
|
||||||
.files = &whoa_app_linux_sources,
|
.files = &whoa_app_linux_sources,
|
||||||
.flags = &whoa_compiler_flags
|
.flags = whoa_compiler_flags
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -730,75 +773,5 @@ pub fn build(b: *std.Build) void {
|
||||||
|
|
||||||
whoa_app.linkLibrary(whoa_core);
|
whoa_app.linkLibrary(whoa_core);
|
||||||
|
|
||||||
// // link different modules together
|
|
||||||
|
|
||||||
// // whoa_async.linkLibrary(whoa_event);
|
|
||||||
// // whoa_async.linkLibrary(whoa_util);
|
|
||||||
|
|
||||||
// whoa_client.linkLibrary(whoa_async);
|
|
||||||
// // whoa_client.linkLibrary(whoa_console);
|
|
||||||
// // whoa_client.linkLibrary(whoa_db);
|
|
||||||
// // whoa_client.linkLibrary(whoa_event);
|
|
||||||
// // whoa_client.linkLibrary(whoa_gx);
|
|
||||||
// // whoa_client.linkLibrary(whoa_model);
|
|
||||||
// // whoa_client.linkLibrary(whoa_net);
|
|
||||||
// // whoa_client.linkLibrary(whoa_ui);
|
|
||||||
// // whoa_client.linkLibrary(whoa_util);
|
|
||||||
// // whoa_client.linkLibrary(whoa_world);
|
|
||||||
|
|
||||||
// whoa_console.linkLibrary(whoa_client);
|
|
||||||
// whoa_console.linkLibrary(whoa_gx);
|
|
||||||
|
|
||||||
// // whoa_event.linkLibrary(whoa_client);
|
|
||||||
// // whoa_event.linkLibrary(whoa_gx);
|
|
||||||
|
|
||||||
// whoa_glue.linkLibrary(whoa_client);
|
|
||||||
// whoa_glue.linkLibrary(whoa_console);
|
|
||||||
// whoa_glue.linkLibrary(whoa_db);
|
|
||||||
// whoa_glue.linkLibrary(whoa_event);
|
|
||||||
// whoa_glue.linkLibrary(whoa_gx);
|
|
||||||
// whoa_glue.linkLibrary(whoa_model);
|
|
||||||
// whoa_glue.linkLibrary(whoa_net);
|
|
||||||
// whoa_glue.linkLibrary(whoa_sound);
|
|
||||||
// whoa_glue.linkLibrary(whoa_ui);
|
|
||||||
// whoa_glue.linkLibrary(whoa_util);
|
|
||||||
|
|
||||||
// // whoa_gx.linkLibrary(whoa_event);
|
|
||||||
// whoa_gx.linkLibrary(whoa_math);
|
|
||||||
// whoa_gx.linkLibrary(whoa_model);
|
|
||||||
// whoa_gx.linkLibrary(whoa_ui);
|
|
||||||
// whoa_gx.linkLibrary(whoa_util);
|
|
||||||
|
|
||||||
// whoa_model.linkLibrary(whoa_async);
|
|
||||||
// // whoa_model.linkLibrary(whoa_gx);
|
|
||||||
// whoa_model.linkLibrary(whoa_math);
|
|
||||||
// whoa_model.linkLibrary(whoa_util);
|
|
||||||
|
|
||||||
// whoa_net.linkLibrary(whoa_client);
|
|
||||||
// whoa_net.linkLibrary(whoa_event);
|
|
||||||
|
|
||||||
// whoa_sound.linkLibrary(whoa_ui);
|
|
||||||
// whoa_sound.linkLibrary(whoa_util);
|
|
||||||
|
|
||||||
// whoa_ui.linkLibrary(whoa_client);
|
|
||||||
// whoa_ui.linkLibrary(whoa_console);
|
|
||||||
// whoa_ui.linkLibrary(whoa_db);
|
|
||||||
// whoa_ui.linkLibrary(whoa_event);
|
|
||||||
// whoa_ui.linkLibrary(whoa_glue);
|
|
||||||
// // whoa_ui.linkLibrary(whoa_gx);
|
|
||||||
// whoa_ui.linkLibrary(whoa_math);
|
|
||||||
// whoa_ui.linkLibrary(whoa_model);
|
|
||||||
// whoa_ui.linkLibrary(whoa_net);
|
|
||||||
// whoa_ui.linkLibrary(whoa_util);
|
|
||||||
|
|
||||||
// whoa_world.linkLibrary(whoa_gx);
|
|
||||||
// whoa_world.linkLibrary(whoa_model);
|
|
||||||
|
|
||||||
// whoa_app.linkLibrary(whoa_client);
|
|
||||||
// // whoa_app.linkLibrary(whoa_event);
|
|
||||||
// // whoa_app.linkLibrary(whoa_gx);
|
|
||||||
// // whoa_app.linkLibrary(whoa_net);
|
|
||||||
// // whoa_app.linkLibrary(whoa_util);
|
|
||||||
|
|
||||||
b.installArtifact(whoa_app);
|
b.installArtifact(whoa_app);
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue