view raylib_examples/raylib.bzl @ 12:de54585a40f1

Adding bun and node modules.
author June Park <parkjune1995@gmail.com>
date Thu, 02 Oct 2025 14:39:48 -0700
parents f33d9ff8b6e8
children
line wrap: on
line source

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
        }),
    )