Mercurial
diff raylib_examples/raylib.bzl @ 11:f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Tue, 30 Sep 2025 05:01:34 -0700 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/raylib_examples/raylib.bzl Tue Sep 30 05:01:34 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 + }), + )