comparison third_party/raylib/raylib.bzl @ 26:a58a663dae68

[Sori] Making a simple game.
author June Park <parkjune1995@gmail.com>
date Thu, 09 Oct 2025 06:41:49 -0700
parents
children ccb42d5bf8fd
comparison
equal deleted inserted replaced
25:342726584be2 26:a58a663dae68
1 def raylib_binary(
2 name,
3 srcs,
4 deps = [],
5 deps_macos = [],
6 deps_linux = [],
7 linkopts_macos = [
8 "-framework CoreVideo",
9 "-framework IOKit",
10 "-framework Cocoa",
11 "-framework GLUT",
12 "-framework OpenGL",
13 ],
14 linkopts_linux = [
15 "-lGL",
16 "-lm",
17 "-lpthread",
18 "-ldl",
19 "-lrt",
20 "-lX11",
21 ]):
22 """
23 Raylib specific cross platform rules.
24
25 Args:
26 name: The logical name of the binary (alias).
27 srcs: List of source files (common).
28 deps: Mutual dependency.
29 deps_macos: Extra deps for macOS.
30 deps_linux: Extra deps for Linux.
31 linkopts_macos: Extra linkopts for macOS.
32 linkopts_linux: Extra linkopts for Linux.
33 """
34
35 macos_bin = name + "_macos"
36 linux_bin = name + "_linux"
37
38 native.cc_binary(
39 name = macos_bin,
40 srcs = srcs,
41 deps = deps + deps_macos,
42 linkopts = linkopts_macos,
43 )
44
45 native.cc_binary(
46 name = linux_bin,
47 srcs = srcs,
48 deps = deps + deps_linux,
49 linkopts = linkopts_linux,
50 )
51
52 native.alias(
53 name = name,
54 actual = select({
55 "//config:macos": ":" + macos_bin,
56 "//config:linux": ":" + linux_bin,
57 "//conditions:default": ":" + linux_bin, # fallback
58 }),
59 )