diff third_party/cef/cef_repository.bzl @ 276:b55c22cff335

Add interactive infinite canvas prototype
author MrJuneJune <me@mrjunejune.com>
date Mon, 17 Aug 2026 16:57:56 -0700
parents
children 6bd4a3990696
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/third_party/cef/cef_repository.bzl	Mon Aug 17 16:57:56 2026 -0700
@@ -0,0 +1,60 @@
+def _cef_repository_impl(repository_ctx):
+    os_name = repository_ctx.os.name.lower()
+    arch = repository_ctx.os.arch.lower()
+
+    if "windows" in os_name:
+        platform = "windows64"
+        sha256 = "47b08dfc9587e3c96fc2e51c1f15c07c85d2f28002eaf3c478941a0949be4da2"
+    elif "mac" in os_name:
+        if arch in ["aarch64", "arm64"]:
+            platform = "macosarm64"
+            sha256 = "70c8b97c4dead81b67a8fb29b80da12681e008d4ae9a9778f59e5a2f2adc4e08"
+        else:
+            platform = "macosx64"
+            sha256 = "7ab55b3e45d7a89088d498a5fb6b231c3d3bd17fc1a3eb2aee6c8875f7bd842d"
+    elif "linux" in os_name and arch in ["amd64", "x86_64"]:
+        platform = "linux64"
+        sha256 = "554c2c107a4ca8d555273c0c0d0c1efdfbbb5a2d9ba3a2387dbdf3b622bdb24c"
+    else:
+        fail("CEF is not configured for host %s/%s" % (os_name, arch))
+
+    version = "151.3.18+gbeff58d+chromium-151.0.7922.138"
+    archive = "cef_binary_%s_%s_minimal.tar.bz2" % (version, platform)
+    repository_ctx.download_and_extract(
+        url = "https://cef-builds.spotifycdn.com/%s" % archive.replace("+", "%2B"),
+        sha256 = sha256,
+        stripPrefix = archive[:-8],
+    )
+
+    build = repository_ctx.read("BUILD.bazel")
+    build = build.replace(
+        'srcs = glob(\n        [\n            "libcef_dll/**/*.mm",\n        ]\n    ),',
+        'srcs = glob(\n        [\n            "libcef_dll/**/*.mm",\n        ],\n        allow_empty = True,\n    ),',
+    )
+    build = build.replace(
+        '"//conditions:default": "@cef//:resources_dbg",',
+        '"//conditions:default": "@cef//:resources_opt",',
+    )
+    build = build.replace(
+        '"//conditions:default": "@cef//:sos_opt",',
+        '"//conditions:default": "@cef//:sos_opt",',
+    )
+    repository_ctx.file("BUILD.bazel", build)
+
+    linux_variables = repository_ctx.read("bazel/linux/variables.bzl")
+    linux_variables = linux_variables.replace(
+        "COMMON_COPTS = [\n]",
+        'COMMON_COPTS = [\n    "-std=c++20",\n]',
+    )
+    repository_ctx.file("bazel/linux/variables.bzl", linux_variables)
+
+    windows_variables = repository_ctx.read("bazel/win/variables.bzl")
+    windows_variables = windows_variables.replace(
+        'COMMON_COPTS = [\n    "/GF",',
+        'COMMON_COPTS = [\n    "/std:c++20",\n    "/GF",',
+    )
+    repository_ctx.file("bazel/win/variables.bzl", windows_variables)
+
+cef_repository = repository_rule(
+    implementation = _cef_repository_impl,
+)