|
@@ -108,9 +108,6 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.
|
|
"-D_GNU_SOURCE",
|
|
"-D_GNU_SOURCE",
|
|
"-DGL_SILENCE_DEPRECATION=199309L",
|
|
"-DGL_SILENCE_DEPRECATION=199309L",
|
|
"-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/3674
|
|
"-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/3674
|
|
- // This is off by default but some linux distributions have it on by default
|
|
|
|
- // No Stack Protector is set to prevent the issues when running the examples for emscripten
|
|
|
|
- "-fno-stack-protector",
|
|
|
|
});
|
|
});
|
|
|
|
|
|
if (options.shared) {
|
|
if (options.shared) {
|
|
@@ -365,7 +362,6 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.
|
|
setDesktopPlatform(raylib, options.platform);
|
|
setDesktopPlatform(raylib, options.platform);
|
|
},
|
|
},
|
|
.emscripten => {
|
|
.emscripten => {
|
|
- // Include emscripten for cross compilation
|
|
|
|
if (b.lazyDependency("emsdk", .{})) |dep| {
|
|
if (b.lazyDependency("emsdk", .{})) |dep| {
|
|
if (try emSdkSetupStep(b, dep)) |emSdkStep| {
|
|
if (try emSdkSetupStep(b, dep)) |emSdkStep| {
|
|
raylib.step.dependOn(&emSdkStep.step);
|
|
raylib.step.dependOn(&emSdkStep.step);
|
|
@@ -561,19 +557,17 @@ fn addExamples(
|
|
});
|
|
});
|
|
exe_lib.addCSourceFile(.{
|
|
exe_lib.addCSourceFile(.{
|
|
.file = b.path(path),
|
|
.file = b.path(path),
|
|
- .flags = &.{
|
|
|
|
- "-fno-stack-protector",
|
|
|
|
- },
|
|
|
|
|
|
+ .flags = &.{},
|
|
});
|
|
});
|
|
exe_lib.linkLibC();
|
|
exe_lib.linkLibC();
|
|
- exe_lib.rdynamic = true;
|
|
|
|
-
|
|
|
|
- exe_lib.root_module.addCMacro("PLATFORM_WEB", "");
|
|
|
|
- exe_lib.shared_memory = false;
|
|
|
|
- exe_lib.root_module.single_threaded = false;
|
|
|
|
|
|
|
|
|
|
+ if (std.mem.eql(u8, name, "rlgl_standalone")) {
|
|
|
|
+ //TODO: Make rlgl_standalone example work
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
if (std.mem.eql(u8, name, "raylib_opengl_interop")) {
|
|
if (std.mem.eql(u8, name, "raylib_opengl_interop")) {
|
|
- exe_lib.addIncludePath(b.path("src/external"));
|
|
|
|
|
|
+ //TODO: Make raylib_opengl_interop example work
|
|
|
|
+ continue;
|
|
}
|
|
}
|
|
|
|
|
|
exe_lib.linkLibrary(raylib);
|
|
exe_lib.linkLibrary(raylib);
|
|
@@ -593,7 +587,7 @@ fn addExamples(
|
|
else => b.addSystemCommand(&.{ "mkdir", "-p", emccOutputDirExample }),
|
|
else => b.addSystemCommand(&.{ "mkdir", "-p", emccOutputDirExample }),
|
|
};
|
|
};
|
|
|
|
|
|
- const emcc_exe = switch (builtin.os.tag) { // TODO bundle emcc as a build dependency
|
|
|
|
|
|
+ const emcc_exe = switch (builtin.os.tag) {
|
|
.windows => "emcc.bat",
|
|
.windows => "emcc.bat",
|
|
else => "emcc",
|
|
else => "emcc",
|
|
};
|
|
};
|
|
@@ -608,6 +602,7 @@ fn addExamples(
|
|
"-sFULL-ES3=1",
|
|
"-sFULL-ES3=1",
|
|
"-sUSE_GLFW=3",
|
|
"-sUSE_GLFW=3",
|
|
"-sSTACK_OVERFLOW_CHECK=1",
|
|
"-sSTACK_OVERFLOW_CHECK=1",
|
|
|
|
+ "-sEXPORTED_RUNTIME_METHODS=['requestFullscreen']",
|
|
"-sASYNCIFY",
|
|
"-sASYNCIFY",
|
|
"-O0",
|
|
"-O0",
|
|
"--emrun",
|
|
"--emrun",
|
|
@@ -626,10 +621,7 @@ fn addExamples(
|
|
emcc_command.step.dependOn(&item.step);
|
|
emcc_command.step.dependOn(&item.step);
|
|
}
|
|
}
|
|
|
|
|
|
- const run_step = emscriptenRunStep(b, emsdk_dep, emccOutputDirExampleWithFile) catch |err| {
|
|
|
|
- std.debug.print("EmscriptenRunStep error: {}\n", .{err});
|
|
|
|
- continue;
|
|
|
|
- };
|
|
|
|
|
|
+ const run_step = try emscriptenRunStep(b, emsdk_dep, emccOutputDirExampleWithFile);
|
|
run_step.step.dependOn(&emcc_command.step);
|
|
run_step.step.dependOn(&emcc_command.step);
|
|
run_step.addArg("--no_browser");
|
|
run_step.addArg("--no_browser");
|
|
const run_option = b.step(name, name);
|
|
const run_option = b.step(name, name);
|