Skip to content

Commit 551ecae

Browse files
authored
improve raylib extension (#573)
1 parent ff05a28 commit 551ecae

File tree

9 files changed

+104
-108
lines changed

9 files changed

+104
-108
lines changed

BUILD.bazel

+16
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,19 @@ buildifier_test(
3838
no_sandbox = True,
3939
workspace = "//:MODULE.bazel",
4040
)
41+
42+
config_setting(
43+
name = "is_mac",
44+
constraint_values = [
45+
"@platforms//cpu:aarch64",
46+
"@platforms//os:macos",
47+
],
48+
)
49+
50+
config_setting(
51+
name = "is_linux",
52+
constraint_values = [
53+
"@platforms//cpu:x86_64",
54+
"@platforms//os:linux",
55+
],
56+
)

MODULE.bazel.lock

+25-20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bazel/3p/BUILD.bazel

-24
Original file line numberDiff line numberDiff line change
@@ -1,24 +0,0 @@
1-
alias(
2-
name = "raylib",
3-
actual = select({
4-
":is_linux": "@raylib_linux//:raylib_linux",
5-
":is_mac": "@raylib_macos//:raylib_macos",
6-
}),
7-
visibility = ["//visibility:public"],
8-
)
9-
10-
config_setting(
11-
name = "is_mac",
12-
constraint_values = [
13-
"@platforms//cpu:aarch64",
14-
"@platforms//os:macos",
15-
],
16-
)
17-
18-
config_setting(
19-
name = "is_linux",
20-
constraint_values = [
21-
"@platforms//cpu:x86_64",
22-
"@platforms//os:linux",
23-
],
24-
)

bazel/3p/raylib.BUILD

-31
This file was deleted.

bazel/cc.MODULE.bazel

+5-2
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,8 @@ git_override(
1010
remote = "https://github.com/hedronvision/bazel-compile-commands-extractor.git",
1111
)
1212

13-
non_module_deps = use_extension("//bazel/extensions:extensions.bzl", "non_module_deps")
14-
use_repo(non_module_deps, "mongoose_cc", "raylib_linux", "raylib_macos")
13+
mongoose_ext = use_extension("//bazel/extensions:mongoose.bzl", "mongoose")
14+
use_repo(mongoose_ext, "mongoose_cc")
15+
16+
raylib_ext = use_extension("//bazel/extensions:raylib.bzl", "raylib")
17+
use_repo(raylib_ext, "raylib")

bazel/extensions/extensions.bzl

-30
This file was deleted.

bazel/extensions/mongoose.bzl

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"bzlmod extensions"
2+
3+
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
4+
5+
def _http_impl(ctx): # buildifier: disable=unused-variable
6+
http_archive(
7+
name = "mongoose_cc",
8+
strip_prefix = "mongoose-7.16",
9+
sha256 = "f2c42135f7bc34b3d10b6401e9326a20ba5dd42d4721b6a526826ba31c1679fd",
10+
urls = ["https://github.com/cesanta/mongoose/archive/refs/tags/7.16.tar.gz"],
11+
build_file = "@//bazel/3p:mongoose.BUILD",
12+
)
13+
14+
mongoose = module_extension(implementation = _http_impl)

bazel/extensions/raylib.bzl

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
"bzlmod extensions"
2+
3+
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
4+
5+
def _http_impl(module_ctx):
6+
host_os = module_ctx.os.name
7+
host_cpu = module_ctx.os.arch
8+
9+
if host_os == "mac os x" and host_cpu == "aarch64":
10+
url = "https://github.com/raysan5/raylib/releases/download/5.5/raylib-5.5_macos.tar.gz"
11+
sha256 = "930c67b676963c6cffbd965814664523081ecbf3d30fc9df4211d0064aa6ba39"
12+
shared_lib = "libraylib.550.dylib"
13+
strip_prefix = "raylib-5.5_macos"
14+
elif host_os == "linux" and host_cpu == "amd64":
15+
url = "https://github.com/raysan5/raylib/releases/download/5.5/raylib-5.5_linux_amd64.tar.gz"
16+
sha256 = "3d95ef03d5b38dfa55c0a16ca122d382134b078f0e5b270b52fe7eae0549c000"
17+
shared_lib = "libraylib.so"
18+
strip_prefix = "raylib-5.5_linux_amd64"
19+
else:
20+
fail("Unsupported host OS or CPU: {} {}".format(host_os, host_cpu))
21+
22+
http_archive(
23+
name = "raylib",
24+
url = url,
25+
sha256 = sha256,
26+
strip_prefix = strip_prefix,
27+
build_file_content = """\
28+
load("@rules_cc//cc:defs.bzl", "cc_import")
29+
30+
cc_import(
31+
name = "raylib",
32+
hdrs = [
33+
"include/raylib.h",
34+
"include/raymath.h",
35+
"include/rlgl.h",
36+
],
37+
shared_library = "lib/{}",
38+
visibility = ["//visibility:public"],
39+
)
40+
""".format(shared_lib),
41+
)
42+
43+
raylib = module_extension(implementation = _http_impl)

cpp/example_raylib/BUILD.bazel

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ cc_binary(
44
name = "example_raylib",
55
srcs = ["main.cc"],
66
deps = [
7-
"//bazel/3p:raylib",
7+
"@raylib",
88
],
99
)

0 commit comments

Comments
 (0)