Mercurial
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/third_party/raylib/raylib.bzl Thu Oct 09 06:41:49 2025 -0700 @@ -0,0 +1,59 @@ +def raylib_binary( + name, + srcs, + deps = [], + deps_macos = [], + deps_linux = [], + linkopts_macos = [ + "-framework CoreVideo", + "-framework IOKit", + "-framework Cocoa", + "-framework GLUT", + "-framework OpenGL", + ], + linkopts_linux = [ + "-lGL", + "-lm", + "-lpthread", + "-ldl", + "-lrt", + "-lX11", + ]): + """ + Raylib specific cross platform rules. + + Args: + name: The logical name of the binary (alias). + srcs: List of source files (common). + deps: Mutual dependency. + deps_macos: Extra deps for macOS. + deps_linux: Extra deps for Linux. + linkopts_macos: Extra linkopts for macOS. + linkopts_linux: Extra linkopts for Linux. + """ + + macos_bin = name + "_macos" + linux_bin = name + "_linux" + + native.cc_binary( + name = macos_bin, + srcs = srcs, + deps = deps + deps_macos, + linkopts = linkopts_macos, + ) + + native.cc_binary( + name = linux_bin, + srcs = srcs, + deps = deps + deps_linux, + linkopts = linkopts_linux, + ) + + native.alias( + name = name, + actual = select({ + "//config:macos": ":" + macos_bin, + "//config:linux": ":" + linux_bin, + "//conditions:default": ":" + linux_bin, # fallback + }), + )