Skip to content

Commit 1355780

Browse files
committed
disable wasm
raysan5/raylib#5157 broke the emscripten builds Signed-off-by: Tomas Slusny <[email protected]>
1 parent 818f450 commit 1355780

File tree

3 files changed

+65
-74
lines changed

3 files changed

+65
-74
lines changed

.github/workflows/build-natives.yml

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ jobs:
1616
runtime:
1717
- linux-x64
1818
- linux-x86
19-
# - linux-arm64
20-
- browser-wasm
19+
- linux-arm64
20+
# - browser-wasm
2121
- osx-x64
2222
- osx-arm64
2323
- win-x64
@@ -76,18 +76,27 @@ jobs:
7676
if: matrix.os == 'ubuntu-latest' && matrix.runtime == 'linux-arm64'
7777
run: |
7878
sudo dpkg --add-architecture arm64
79-
# Modify main sources.list to be explicitly amd64
80-
sudo sed -i 's/^deb /deb [arch=amd64] /g' /etc/apt/sources.list
81-
# Create clean sources for arm64
82-
sudo tee /etc/apt/sources.list.d/ubuntu-ports.list << EOF
83-
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted universe multiverse
84-
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted universe multiverse
85-
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
86-
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse
79+
sudo apt-get install -y lsb-release
80+
81+
# Restrict main sources to amd64 only
82+
sudo sed -i '/^Components:/a Architectures: amd64' /etc/apt/sources.list.d/ubuntu.sources
83+
84+
# Add ports sources for arm64
85+
UBUNTU_CODENAME=$(lsb_release -cs)
86+
sudo tee /etc/apt/sources.list.d/ubuntu-ports.sources << EOF
87+
Types: deb
88+
URIs: http://ports.ubuntu.com/ubuntu-ports/
89+
Suites: $UBUNTU_CODENAME $UBUNTU_CODENAME-updates $UBUNTU_CODENAME-backports
90+
Components: main universe restricted multiverse
91+
Architectures: arm64
92+
93+
Types: deb
94+
URIs: http://ports.ubuntu.com/ubuntu-ports/
95+
Suites: $UBUNTU_CODENAME-security
96+
Components: main universe restricted multiverse
97+
Architectures: arm64
8798
EOF
88-
# Clear package lists and update
89-
sudo rm -rf /var/lib/apt/lists/*
90-
sudo apt-get clean
99+
91100
sudo apt-get update
92101
# Install dependencies
93102
sudo apt-get install -y --no-install-recommends \

src/Raylib.NET.Native/build.zig

Lines changed: 42 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,59 @@
11
const std = @import("std");
2-
const builtin = @import("builtin");
2+
const rl = @import("raylib");
33

4-
pub fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, shared: bool) !*std.Build.Step.Compile {
5-
const raylib = b.dependency("raylib", .{ .target = target, .optimize = optimize, .linkage = if (shared) std.builtin.LinkMode.dynamic else std.builtin.LinkMode.static, .linux_display_backend = .X11 });
6-
const raygui = b.dependency("raygui", .{ .target = target, .optimize = optimize });
7-
const lib = raylib.artifact("raylib");
4+
pub fn build(b: *std.Build) !void {
5+
const target = b.standardTargetOptions(.{});
6+
const optimize = b.standardOptimizeOption(.{});
7+
8+
const options = rl.Options.getOptions(b);
9+
10+
const raylib_dep = b.dependency("raylib", .{
11+
.target = target,
12+
.optimize = optimize,
13+
.raudio = options.raudio,
14+
.rmodels = options.rmodels,
15+
.rshapes = options.rshapes,
16+
.rtext = options.rtext,
17+
.rtextures = options.rtextures,
18+
.platform = options.platform,
19+
.linkage = options.linkage,
20+
.linux_display_backend = options.linux_display_backend,
21+
.opengl_version = options.opengl_version,
22+
.android_api_version = options.android_api_version,
23+
.android_ndk = options.android_ndk,
24+
});
25+
const raylib = raylib_dep.artifact("raylib");
826

27+
// Add platform-specific include/library paths for cross-compiling
928
switch (target.result.os.tag) {
10-
// Due to *terrible* zig default behaviour for include paths when cross-compiling I have to do this
11-
// The includes are resolved properly only when -Dtarget=native (or omitted) is passed
1229
.linux => {
1330
if (target.result.cpu.arch == .aarch64) {
14-
lib.addLibraryPath(.{ .cwd_relative = "/usr/lib/aarch64-linux-gnu/" });
15-
lib.addIncludePath(.{ .cwd_relative = "/usr/include/aarch64-linux-gnu/" });
16-
lib.addSystemIncludePath(.{ .cwd_relative = "/usr/include" });
31+
raylib.addLibraryPath(.{ .cwd_relative = "/usr/lib/aarch64-linux-gnu/" });
32+
raylib.addIncludePath(.{ .cwd_relative = "/usr/include/aarch64-linux-gnu/" });
33+
raylib.addSystemIncludePath(.{ .cwd_relative = "/usr/include" });
1734
} else if (target.result.cpu.arch == .x86) {
18-
lib.addLibraryPath(.{ .cwd_relative = "/usr/lib/i386-linux-gnu/" });
19-
lib.addIncludePath(.{ .cwd_relative = "/usr/include/i386-linux-gnu/" });
20-
lib.addSystemIncludePath(.{ .cwd_relative = "/usr/include" });
21-
// https://github.com/ziglang/zig/issues/7935
22-
lib.link_z_notext = true;
35+
raylib.addLibraryPath(.{ .cwd_relative = "/usr/lib/i386-linux-gnu/" });
36+
raylib.addIncludePath(.{ .cwd_relative = "/usr/include/i386-linux-gnu/" });
37+
raylib.addSystemIncludePath(.{ .cwd_relative = "/usr/include" });
38+
raylib.link_z_notext = true;
2339
} else if (target.result.cpu.arch == .x86_64) {
24-
lib.addLibraryPath(.{ .cwd_relative = "/usr/lib/x86_64-linux-gnu/" });
25-
lib.addIncludePath(.{ .cwd_relative = "/usr/include/x86_64-linux-gnu/" });
26-
lib.addIncludePath(.{ .cwd_relative = "/usr/include" });
40+
raylib.addLibraryPath(.{ .cwd_relative = "/usr/lib/x86_64-linux-gnu/" });
41+
raylib.addIncludePath(.{ .cwd_relative = "/usr/include/x86_64-linux-gnu/" });
42+
raylib.addIncludePath(.{ .cwd_relative = "/usr/include" });
2743
} else {
28-
lib.addSystemIncludePath(.{ .cwd_relative = "/usr/include" });
44+
raylib.addSystemIncludePath(.{ .cwd_relative = "/usr/include" });
2945
}
30-
31-
lib.addLibraryPath(.{ .cwd_relative = "/usr/lib" });
46+
raylib.addLibraryPath(.{ .cwd_relative = "/usr/lib" });
3247
},
33-
else => {}
34-
}
35-
36-
var gen_step = b.addWriteFiles();
37-
lib.step.dependOn(&gen_step.step);
38-
39-
var cflags = std.ArrayList([]const u8){};
40-
defer cflags.deinit(b.allocator);
41-
42-
try cflags.appendSlice(b.allocator, &[_][]const u8{
43-
"-std=gnu99",
44-
"-D_GNU_SOURCE",
45-
"-DGL_SILENCE_DEPRECATION=199309L",
46-
"-fno-sanitize=undefined",
47-
});
48-
49-
if (shared) {
50-
try cflags.appendSlice(b.allocator, &[_][]const u8{
51-
"-fPIC",
52-
"-DBUILD_LIBTYPE_SHARED",
53-
});
48+
else => {},
5449
}
5550

56-
lib.addCSourceFile(.{
57-
.file = gen_step.add("raygui.c", "#define RAYGUI_IMPLEMENTATION\n#include \"raygui.h\"\n"),
58-
.flags = cflags.items,
51+
const raygui_dep = b.dependency("raygui", .{
52+
.target = target,
53+
.optimize = optimize,
5954
});
6055

61-
lib.addIncludePath(raylib.path("src"));
62-
lib.addIncludePath(raygui.path("src"));
63-
lib.installHeader(raygui.path("src/raygui.h"), "raygui.h");
64-
65-
return lib;
66-
}
67-
68-
pub fn build(b: *std.Build) !void {
69-
const target = b.standardTargetOptions(.{});
70-
const optimize = b.standardOptimizeOption(.{});
71-
72-
if (target.result.os.tag != .emscripten) {
73-
b.installArtifact(try compileRaylib(b, target, optimize, true));
74-
}
56+
rl.addRaygui(b, raylib, raygui_dep, options);
7557

76-
b.installArtifact(try compileRaylib(b, target, optimize, false));
58+
b.installArtifact(raylib);
7759
}

src/Raylib.NET.Native/build.zig.zon

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.{
22
.name = .Raylib_NET,
33
.version = "0.0.0",
4-
.minimum_zig_version = "0.13.0",
4+
.minimum_zig_version = "0.15.0",
55
.fingerprint = 0x2e11ece2dc4951ac,
66

77
.dependencies = .{

0 commit comments

Comments
 (0)