Mercurial
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, +)