diff --git a/.bazelversion b/.bazelversion index a3fcc71..21c8c7b 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -7.1.0 +7.1.1 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1ae3e4e..4b5dfb1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,6 +20,8 @@ jobs: test-windows: runs-on: windows-latest steps: + - name: Ecsact SDK + uses: ecsact-dev/github-action@0.1.0 - uses: actions/cache@v3 with: path: | @@ -35,6 +37,8 @@ jobs: test-linux: runs-on: ubuntu-latest steps: + - name: Ecsact SDK + uses: ecsact-dev/github-action@0.1.0 - uses: actions/cache@v3 with: path: | diff --git a/.vscode/launch.json b/.vscode/launch.json index 922f65c..9abd91f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,25 +1,25 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "test //runtime/test:test", - "request": "launch", - "program": "${workspaceFolder}/bazel-bin/runtime/test/test", - "cwd": "${workspaceFolder}", - "args": [ - "--gtest_catch_exceptions", - "--gtest_break_on_failure" - ], - "type": "cppdbg", - "windows": { - "type": "cppvsdbg", - "program": "${workspaceFolder}/bazel-bin/runtime/test/test.exe" - }, - "preLaunchTask": "build //runtime/test:test", - "sourceFileMap": { - "E:/.cache/bazel/output_base/execroot/ecsact_rt_entt": "${workspaceFolder}" - } - } - ], - "compounds": [] -} +{ + "version": "0.2.0", + "configurations": [ + { + "name": "test //runtime/test:test", + "request": "launch", + "program": "${workspaceFolder}/bazel-bin/runtime/test/test", + "cwd": "${workspaceFolder}", + "args": [ + "--gtest_catch_exceptions", + // "--gtest_break_on_failure", + ], + "type": "cppvsdbg", + "windows": { + "type": "cppvsdbg", + "program": "${workspaceFolder}/bazel-bin/runtime/test/test.exe" + }, + "preLaunchTask": "build //runtime/test:test", + "sourceFileMap": { + "C:/users/austin/_bazel_austin/ohk2m3f2/execroot/ecsact_rt_entt": "${workspaceFolder}" + } + } + ], + "compounds": [] +} diff --git a/MODULE.bazel b/MODULE.bazel index bce3b55..e550c42 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,15 +6,23 @@ module( bazel_dep(name = "rules_cc", version = "0.0.9") bazel_dep(name = "bazel_skylib", version = "1.4.2") -bazel_dep(name = "rules_ecsact", version = "0.4.7") +bazel_dep(name = "rules_ecsact", version = "0.4.9") bazel_dep(name = "ecsact_runtime", version = "0.5.1") -bazel_dep(name = "ecsact_lang_cpp", version = "0.3.0") +bazel_dep(name = "ecsact_lang_cpp", version = "0.3.3") bazel_dep(name = "boost.mp11", version = "1.83.0.bzl.1") bazel_dep(name = "entt", version = "3.12.2") +bazel_dep(name = "toolchains_llvm", version = "1.0.0", dev_dependency = True) bazel_dep(name = "hedron_compile_commands", dev_dependency = True) +bazel_dep(name = "ecsact_codegen", version = "0.1.3") git_override( module_name = "hedron_compile_commands", remote = "https://github.com/hedronvision/bazel-compile-commands-extractor.git", commit = "204aa593e002cbd177d30f11f54cff3559110bb9", ) + +llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm", dev_dependency = True) +llvm.toolchain(llvm_version = "17.0.6") + +use_repo(llvm, "llvm_toolchain") +register_toolchains("@llvm_toolchain//:all", dev_dependency = True) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 38cabc9..8b6c607 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -1,6 +1,6 @@ { - "lockFileVersion": 6, - "moduleFileHash": "3a8671682f5e9cfb2c8d8fffcc2cc990d3af6af514ff297b9f047dc56232023e", + "lockFileVersion": 3, + "moduleFileHash": "8839f045a24a2d93bb42a4afadb8652605bc234851923898725996d55e386cf1", "flags": { "cmdRegistries": [ "https://raw.githubusercontent.com/ecsact-dev/bazel_registry/main", @@ -15,7 +15,7 @@ "compatibilityMode": "ERROR" }, "localOverrideHashes": { - "bazel_tools": "1ae69322ac3823527337acf02016e8ee95813d8d356f47060255b8956fa642f0" + "bazel_tools": "922ea6752dc9105de5af957f7a99a6933c0a6a712d23df6aad16a9c399f7e787" }, "moduleDepGraph": { "": { @@ -24,17 +24,54 @@ "key": "", "repoName": "ecsact_rt_entt", "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], + "toolchainsToRegister": [ + "@llvm_toolchain//:all" + ], + "extensionUsages": [ + { + "extensionBzlFile": "@toolchains_llvm//toolchain/extensions:llvm.bzl", + "extensionName": "llvm", + "usingModule": "", + "location": { + "file": "@@//:MODULE.bazel", + "line": 24, + "column": 21 + }, + "imports": { + "llvm_toolchain": "llvm_toolchain" + }, + "devImports": [ + "llvm_toolchain" + ], + "tags": [ + { + "tagName": "toolchain", + "attributeValues": { + "llvm_version": "17.0.6" + }, + "devDependency": true, + "location": { + "file": "@@//:MODULE.bazel", + "line": 25, + "column": 15 + } + } + ], + "hasDevUseExtension": true, + "hasNonDevUseExtension": false + } + ], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_ecsact": "rules_ecsact@0.4.0", + "bazel_skylib": "bazel_skylib@1.5.0", + "rules_ecsact": "rules_ecsact@0.4.9", "ecsact_runtime": "ecsact_runtime@0.5.1", - "ecsact_lang_cpp": "ecsact_lang_cpp@0.3.0", + "ecsact_lang_cpp": "ecsact_lang_cpp@0.3.3", "boost.mp11": "boost.mp11@1.83.0.bzl.1", "entt": "entt@3.12.2", + "toolchains_llvm": "toolchains_llvm@1.0.0", "hedron_compile_commands": "hedron_compile_commands@_", + "ecsact_codegen": "ecsact_codegen@0.1.3", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" } @@ -68,14 +105,15 @@ } ], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_cc~0.0.9", "urls": [ "https://github.com/bazelbuild/rules_cc/releases/download/0.0.9/rules_cc-0.0.9.tar.gz" ], @@ -88,10 +126,10 @@ } } }, - "bazel_skylib@1.4.2": { + "bazel_skylib@1.5.0": { "name": "bazel_skylib", - "version": "1.4.2", - "key": "bazel_skylib@1.4.2", + "version": "1.5.0", + "key": "bazel_skylib@1.5.0", "repoName": "bazel_skylib", "executionPlatformsToRegister": [], "toolchainsToRegister": [ @@ -100,46 +138,49 @@ ], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "bazel_skylib~1.5.0", "urls": [ - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.2/bazel-skylib-1.4.2.tar.gz" + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" ], - "integrity": "sha256-Zv/ZMVZlv6r8lrUiePV8fi3Qn17eJ56m05sr5HHn46o=", + "integrity": "sha256-zVWgYudjuTSZIfD124w5MyiNyLpPdt2UFqrGis7jy5Q=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 } } }, - "rules_ecsact@0.4.0": { + "rules_ecsact@0.4.9": { "name": "rules_ecsact", - "version": "0.4.0", - "key": "rules_ecsact@0.4.0", + "version": "0.4.9", + "key": "rules_ecsact@0.4.9", "repoName": "rules_ecsact", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "platforms": "platforms@0.0.7", + "rules_cc": "rules_cc@0.0.9", + "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_ecsact~0.4.9", "urls": [ - "https://github.com/ecsact-dev/rules_ecsact/releases/download/0.4.0/rules_ecsact-0.4.0.tar.gz" + "https://github.com/ecsact-dev/rules_ecsact/releases/download/0.4.9/rules_ecsact-0.4.9.tar.gz" ], - "integrity": "sha256-9t8PtJyU+Y9zlv/+6kd882GVl8a/3hYs7I9siKNa5yI=", + "integrity": "sha256-o7Q4T9JMPy93vmP3g3rehIo+0TzaxbgsgS1PT52yNzE=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -156,8 +197,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", + "platforms": "platforms@0.0.8", + "bazel_skylib": "bazel_skylib@1.5.0", "googletest": "googletest@1.14.0", "abseil-cpp": "abseil-cpp@20230802.0", "boost.dll": "boost.dll@1.83.0.bzl.2", @@ -166,9 +207,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "ecsact_runtime~0.5.1", "urls": [ "https://github.com/ecsact-dev/ecsact_runtime/releases/download/0.5.1/ecsact_runtime-0.5.1.tar.gz" ], @@ -179,31 +221,66 @@ } } }, - "ecsact_lang_cpp@0.3.0": { + "ecsact_lang_cpp@0.3.3": { "name": "ecsact_lang_cpp", - "version": "0.3.0", - "key": "ecsact_lang_cpp@0.3.0", + "version": "0.3.3", + "key": "ecsact_lang_cpp@0.3.3", "repoName": "ecsact_lang_cpp", "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], + "toolchainsToRegister": [ + "@ecsact_toolchains//:all" + ], + "extensionUsages": [ + { + "extensionBzlFile": "@rules_ecsact//ecsact:extensions.bzl", + "extensionName": "ecsact", + "usingModule": "ecsact_lang_cpp@0.3.3", + "location": { + "file": "https://raw.githubusercontent.com/ecsact-dev/bazel_registry/main/modules/ecsact_lang_cpp/0.3.3/MODULE.bazel", + "line": 21, + "column": 23 + }, + "imports": { + "ecsact_sdk": "ecsact_sdk", + "ecsact_toolchains": "ecsact_toolchains" + }, + "devImports": [], + "tags": [ + { + "tagName": "sdk_toolchain", + "attributeValues": { + "version": "0.6.2" + }, + "devDependency": false, + "location": { + "file": "https://raw.githubusercontent.com/ecsact-dev/bazel_registry/main/modules/ecsact_lang_cpp/0.3.3/MODULE.bazel", + "line": 22, + "column": 21 + } + } + ], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + } + ], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "ecsact_runtime": "ecsact_runtime@0.5.1", - "rules_ecsact": "rules_ecsact@0.4.0", - "ecsact_codegen": "ecsact_codegen@0.1.2", + "rules_ecsact": "rules_ecsact@0.4.9", + "ecsact_codegen": "ecsact_codegen@0.1.3", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "ecsact_lang_cpp~0.3.3", "urls": [ - "https://github.com/ecsact-dev/ecsact_lang_cpp/releases/download/0.3.0/ecsact_lang_cpp-0.3.0.tar.gz" + "https://github.com/ecsact-dev/ecsact_lang_cpp/releases/download/0.3.3/ecsact_lang_cpp-0.3.3.tar.gz" ], - "integrity": "sha256-sfxAfccKBK8l17mtbKlGefFzfGEx8kWdajiCglWg6Ao=", + "integrity": "sha256-6HiRCS7mXi5Zm00lHM6Us9Gchj95WhrzqdA3kV5LDt4=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -224,9 +301,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.mp11~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/mp11/releases/download/bazelboost-1.83.0.bzl.1/mp11-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -247,14 +325,15 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "entt~3.12.2", "urls": [ "https://github.com/ecsact-dev/entt/releases/download/bzlmod-entt-v3.12.2/bzlmod-entt-v3.12.2.tar.gz" ], @@ -265,6 +344,36 @@ } } }, + "toolchains_llvm@1.0.0": { + "name": "toolchains_llvm", + "version": "1.0.0", + "key": "toolchains_llvm@1.0.0", + "repoName": "toolchains_llvm", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "bazel_skylib": "bazel_skylib@1.5.0", + "rules_cc": "rules_cc@0.0.9", + "platforms": "platforms@0.0.8", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "toolchains_llvm~1.0.0", + "urls": [ + "https://github.com/bazel-contrib/toolchains_llvm/releases/download/1.0.0/toolchains_llvm-1.0.0.tar.gz" + ], + "integrity": "sha256-6RxDYfmQEaVIFOGvvlxDbg0ymHEUajzVjCOitK+1Bzc=", + "strip_prefix": "toolchains_llvm-1.0.0", + "remote_patches": {}, + "remote_patch_strip": 0 + } + } + }, "hedron_compile_commands@_": { "name": "hedron_compile_commands", "version": "", @@ -278,7 +387,7 @@ "extensionName": "hedron_compile_commands_extension", "usingModule": "hedron_compile_commands@_", "location": { - "file": "@@hedron_compile_commands~//:MODULE.bazel", + "file": "@@hedron_compile_commands~override//:MODULE.bazel", "line": 3, "column": 18 }, @@ -293,7 +402,7 @@ "extensionName": "hedron_compile_commands_extension", "usingModule": "hedron_compile_commands@_", "location": { - "file": "@@hedron_compile_commands~//:MODULE.bazel", + "file": "@@hedron_compile_commands~override//:MODULE.bazel", "line": 4, "column": 19 }, @@ -308,7 +417,7 @@ "extensionName": "hedron_compile_commands_extension", "usingModule": "hedron_compile_commands@_", "location": { - "file": "@@hedron_compile_commands~//:MODULE.bazel", + "file": "@@hedron_compile_commands~override//:MODULE.bazel", "line": 5, "column": 20 }, @@ -323,7 +432,7 @@ "extensionName": "hedron_compile_commands_extension", "usingModule": "hedron_compile_commands@_", "location": { - "file": "@@hedron_compile_commands~//:MODULE.bazel", + "file": "@@hedron_compile_commands~override//:MODULE.bazel", "line": 6, "column": 21 }, @@ -339,6 +448,37 @@ "local_config_platform": "local_config_platform@_" } }, + "ecsact_codegen@0.1.3": { + "name": "ecsact_codegen", + "version": "0.1.3", + "key": "ecsact_codegen@0.1.3", + "repoName": "ecsact_codegen", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "rules_cc": "rules_cc@0.0.9", + "bazel_skylib": "bazel_skylib@1.5.0", + "boost.dll": "boost.dll@1.83.0.bzl.2", + "ecsact_runtime": "ecsact_runtime@0.5.1", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "ecsact_codegen~0.1.3", + "urls": [ + "https://github.com/ecsact-dev/ecsact_codegen/releases/download/0.1.3/ecsact_codegen-0.1.3.tar.gz" + ], + "integrity": "sha256-TvzdtIS1RdZtc6SVkp4m15zUjy6dWrvkdjnZLiBI9gs=", + "strip_prefix": "", + "remote_patches": {}, + "remote_patch_strip": 0 + } + } + }, "bazel_tools@_": { "name": "bazel_tools", "version": "", @@ -356,7 +496,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 18, + "line": 17, "column": 29 }, "imports": { @@ -374,7 +514,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 22, + "line": 21, "column": 32 }, "imports": { @@ -391,7 +531,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 25, + "line": 24, "column": 32 }, "imports": { @@ -413,7 +553,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 36, + "line": 35, "column": 39 }, "imports": { @@ -430,7 +570,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 40, + "line": 39, "column": 48 }, "imports": { @@ -447,7 +587,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 43, + "line": 42, "column": 42 }, "imports": { @@ -458,34 +598,16 @@ "tags": [], "hasDevUseExtension": false, "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@buildozer//:buildozer_binary.bzl", - "extensionName": "buildozer_binary", - "usingModule": "bazel_tools@_", - "location": { - "file": "@@bazel_tools//:MODULE.bazel", - "line": 47, - "column": 33 - }, - "imports": { - "buildozer_binary": "buildozer_binary" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true } ], "deps": { "rules_cc": "rules_cc@0.0.9", - "rules_java": "rules_java@7.4.0", + "rules_java": "rules_java@7.1.0", "rules_license": "rules_license@0.0.7", - "rules_proto": "rules_proto@5.3.0-21.7", - "rules_python": "rules_python@0.22.1", - "buildozer": "buildozer@6.4.0.2", - "platforms": "platforms@0.0.7", - "com_google_protobuf": "protobuf@21.7", + "rules_proto": "rules_proto@4.0.0", + "rules_python": "rules_python@0.4.0", + "platforms": "platforms@0.0.8", + "com_google_protobuf": "protobuf@3.19.6", "zlib": "zlib@1.3", "build_bazel_apple_support": "apple_support@1.5.0", "local_config_platform": "local_config_platform@_" @@ -500,14 +622,14 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_" } }, - "platforms@0.0.7": { + "platforms@0.0.8": { "name": "platforms", - "version": "0.0.7", - "key": "platforms@0.0.7", + "version": "0.0.8", + "key": "platforms@0.0.8", "repoName": "platforms", "executionPlatformsToRegister": [], "toolchainsToRegister": [], @@ -518,13 +640,14 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "platforms", "urls": [ - "https://github.com/bazelbuild/platforms/releases/download/0.0.7/platforms-0.0.7.tar.gz" + "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz" ], - "integrity": "sha256-OlYcmee9vpFzqmU/1Xn+hJ8djWc5V4CrR3Cx84FDHVE=", + "integrity": "sha256-gVBAZgU4ns7LbaB8vLUJ1WN6OrmiS8abEQFTE2fYnXQ=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -541,15 +664,16 @@ "extensionUsages": [], "deps": { "com_google_absl": "abseil-cpp@20230802.0", - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "googletest~1.14.0", "urls": [ "https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz" ], @@ -572,17 +696,18 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", + "platforms": "platforms@0.0.8", + "bazel_skylib": "bazel_skylib@1.5.0", "com_google_googletest": "googletest@1.14.0", "com_github_google_benchmark": "google_benchmark@1.8.2", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "abseil-cpp~20230802.0", "urls": [ "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.0.tar.gz" ], @@ -605,7 +730,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "boost.assert": "boost.assert@1.83.0.bzl.1", "boost.config": "boost.config@1.83.0.bzl.6", "boost.core": "boost.core@1.83.0.bzl.1", @@ -625,9 +750,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.dll~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/dll/releases/download/bazelboost-1.83.0.bzl.2/dll-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -648,8 +774,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", + "platforms": "platforms@0.0.8", + "bazel_skylib": "bazel_skylib@1.5.0", "boost.algorithm": "boost.algorithm@1.83.0.bzl.1", "boost.asio": "boost.asio@1.83.0.bzl.2", "boost.config": "boost.config@1.83.0.bzl.6", @@ -671,9 +797,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.process~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/process/releases/download/bazelboost-1.83.0.bzl.2/process-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -684,40 +811,10 @@ } } }, - "ecsact_codegen@0.1.2": { - "name": "ecsact_codegen", - "version": "0.1.2", - "key": "ecsact_codegen@0.1.2", - "repoName": "ecsact_codegen", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", - "boost.dll": "boost.dll@1.83.0.bzl.2", - "ecsact_runtime": "ecsact_runtime@0.5.1", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/ecsact-dev/ecsact_codegen/releases/download/0.1.2/ecsact_codegen-0.1.2.tar.gz" - ], - "integrity": "sha256-ue36AxXNSRK2GNsxUM4ggOaIzU0PIbfnnw5hGz0gk7E=", - "strip_prefix": "", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, - "rules_java@7.4.0": { + "rules_java@7.1.0": { "name": "rules_java", - "version": "7.4.0", - "key": "rules_java@7.4.0", + "version": "7.1.0", + "key": "rules_java@7.1.0", "repoName": "rules_java", "executionPlatformsToRegister": [], "toolchainsToRegister": [ @@ -750,9 +847,9 @@ { "extensionBzlFile": "@rules_java//java:extensions.bzl", "extensionName": "toolchains", - "usingModule": "rules_java@7.4.0", + "usingModule": "rules_java@7.1.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel", + "file": "https://bcr.bazel.build/modules/rules_java/7.1.0/MODULE.bazel", "line": 19, "column": 27 }, @@ -792,22 +889,23 @@ } ], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_proto": "rules_proto@5.3.0-21.7", + "bazel_skylib": "bazel_skylib@1.5.0", + "rules_proto": "rules_proto@4.0.0", "rules_license": "rules_license@0.0.7", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0", "urls": [ - "https://github.com/bazelbuild/rules_java/releases/download/7.4.0/rules_java-7.4.0.tar.gz" + "https://github.com/bazelbuild/rules_java/releases/download/7.1.0/rules_java-7.1.0.tar.gz" ], - "integrity": "sha256-l27wi0nJKXQfIBeQ5Z44B8cq2B9CjIvJU82+/1/tFes=", + "integrity": "sha256-o3pOX2OrgnFuXdau75iO2EYcegC46TYnImKJn1h81OE=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -827,9 +925,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_license~0.0.7", "urls": [ "https://github.com/bazelbuild/rules_license/releases/download/0.0.7/rules_license-0.0.7.tar.gz" ], @@ -840,39 +939,41 @@ } } }, - "rules_proto@5.3.0-21.7": { + "rules_proto@4.0.0": { "name": "rules_proto", - "version": "5.3.0-21.7", - "key": "rules_proto@5.3.0-21.7", + "version": "4.0.0", + "key": "rules_proto@4.0.0", "repoName": "rules_proto", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "com_google_protobuf": "protobuf@21.7", + "bazel_skylib": "bazel_skylib@1.5.0", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_proto~4.0.0", "urls": [ - "https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.7.tar.gz" + "https://github.com/bazelbuild/rules_proto/archive/refs/tags/4.0.0.zip" ], - "integrity": "sha256-3D+yBqLLNEG0heseQjFlsjEjWh6psDG0Qzz3vB+kYN0=", - "strip_prefix": "rules_proto-5.3.0-21.7", - "remote_patches": {}, + "integrity": "sha256-Lr5z6xyuRA19pNtRYMGjKaynwQpck4H/lwYyVjyhoq4=", + "strip_prefix": "rules_proto-4.0.0", + "remote_patches": { + "https://bcr.bazel.build/modules/rules_proto/4.0.0/patches/module_dot_bazel.patch": "sha256-MclJO7tIAM2ElDAmscNId9pKTpOuDGHgVlW/9VBOIp0=" + }, "remote_patch_strip": 0 } } }, - "rules_python@0.22.1": { + "rules_python@0.4.0": { "name": "rules_python", - "version": "0.22.1", - "key": "rules_python@0.22.1", + "version": "0.4.0", + "key": "rules_python@0.4.0", "repoName": "rules_python", "executionPlatformsToRegister": [], "toolchainsToRegister": [ @@ -880,72 +981,21 @@ ], "extensionUsages": [ { - "extensionBzlFile": "@rules_python//python/extensions/private:internal_deps.bzl", - "extensionName": "internal_deps", - "usingModule": "rules_python@0.22.1", + "extensionBzlFile": "@rules_python//bzlmod:extensions.bzl", + "extensionName": "pip_install", + "usingModule": "rules_python@0.4.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel", - "line": 14, - "column": 30 + "file": "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel", + "line": 7, + "column": 28 }, "imports": { - "pypi__build": "pypi__build", "pypi__click": "pypi__click", - "pypi__colorama": "pypi__colorama", - "pypi__importlib_metadata": "pypi__importlib_metadata", - "pypi__installer": "pypi__installer", - "pypi__more_itertools": "pypi__more_itertools", - "pypi__packaging": "pypi__packaging", - "pypi__pep517": "pypi__pep517", "pypi__pip": "pypi__pip", "pypi__pip_tools": "pypi__pip_tools", + "pypi__pkginfo": "pypi__pkginfo", "pypi__setuptools": "pypi__setuptools", - "pypi__tomli": "pypi__tomli", - "pypi__wheel": "pypi__wheel", - "pypi__zipp": "pypi__zipp", - "pypi__coverage_cp310_aarch64-apple-darwin": "pypi__coverage_cp310_aarch64-apple-darwin", - "pypi__coverage_cp310_aarch64-unknown-linux-gnu": "pypi__coverage_cp310_aarch64-unknown-linux-gnu", - "pypi__coverage_cp310_x86_64-apple-darwin": "pypi__coverage_cp310_x86_64-apple-darwin", - "pypi__coverage_cp310_x86_64-unknown-linux-gnu": "pypi__coverage_cp310_x86_64-unknown-linux-gnu", - "pypi__coverage_cp311_aarch64-unknown-linux-gnu": "pypi__coverage_cp311_aarch64-unknown-linux-gnu", - "pypi__coverage_cp311_x86_64-apple-darwin": "pypi__coverage_cp311_x86_64-apple-darwin", - "pypi__coverage_cp311_x86_64-unknown-linux-gnu": "pypi__coverage_cp311_x86_64-unknown-linux-gnu", - "pypi__coverage_cp38_aarch64-apple-darwin": "pypi__coverage_cp38_aarch64-apple-darwin", - "pypi__coverage_cp38_aarch64-unknown-linux-gnu": "pypi__coverage_cp38_aarch64-unknown-linux-gnu", - "pypi__coverage_cp38_x86_64-apple-darwin": "pypi__coverage_cp38_x86_64-apple-darwin", - "pypi__coverage_cp38_x86_64-unknown-linux-gnu": "pypi__coverage_cp38_x86_64-unknown-linux-gnu", - "pypi__coverage_cp39_aarch64-apple-darwin": "pypi__coverage_cp39_aarch64-apple-darwin", - "pypi__coverage_cp39_aarch64-unknown-linux-gnu": "pypi__coverage_cp39_aarch64-unknown-linux-gnu", - "pypi__coverage_cp39_x86_64-apple-darwin": "pypi__coverage_cp39_x86_64-apple-darwin", - "pypi__coverage_cp39_x86_64-unknown-linux-gnu": "pypi__coverage_cp39_x86_64-unknown-linux-gnu" - }, - "devImports": [], - "tags": [ - { - "tagName": "install", - "attributeValues": {}, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel", - "line": 15, - "column": 22 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@rules_python//python/extensions:python.bzl", - "extensionName": "python", - "usingModule": "rules_python@0.22.1", - "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel", - "line": 50, - "column": 23 - }, - "imports": { - "pythons_hub": "pythons_hub" + "pypi__wheel": "pypi__wheel" }, "devImports": [], "tags": [], @@ -954,174 +1004,60 @@ } ], "deps": { - "platforms": "platforms@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_proto": "rules_proto@5.3.0-21.7", - "com_google_protobuf": "protobuf@21.7", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_python~0.4.0", "urls": [ - "https://github.com/bazelbuild/rules_python/releases/download/0.22.1/rules_python-0.22.1.tar.gz" - ], - "integrity": "sha256-pWQP3dS+sD6MH95e1xYMC6a9R359BIZhwwwGk2om/WM=", - "strip_prefix": "rules_python-0.22.1", - "remote_patches": { - "https://bcr.bazel.build/modules/rules_python/0.22.1/patches/module_dot_bazel_version.patch": "sha256-3+VLDH9gYDzNI4eOW7mABC/LKxh1xqF6NhacLbNTucs=" - }, - "remote_patch_strip": 1 - } - } - }, - "buildozer@6.4.0.2": { - "name": "buildozer", - "version": "6.4.0.2", - "key": "buildozer@6.4.0.2", - "repoName": "buildozer", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@buildozer//:buildozer_binary.bzl", - "extensionName": "buildozer_binary", - "usingModule": "buildozer@6.4.0.2", - "location": { - "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel", - "line": 7, - "column": 33 - }, - "imports": { - "buildozer_binary": "buildozer_binary" - }, - "devImports": [], - "tags": [ - { - "tagName": "buildozer", - "attributeValues": { - "sha256": { - "darwin-amd64": "d29e347ecd6b5673d72cb1a8de05bf1b06178dd229ff5eb67fad5100c840cc8e", - "darwin-arm64": "9b9e71bdbec5e7223871e913b65d12f6d8fa026684daf991f00e52ed36a6978d", - "linux-amd64": "8dfd6345da4e9042daa738d7fdf34f699c5dfce4632f7207956fceedd8494119", - "linux-arm64": "6559558fded658c8fa7432a9d011f7c4dcbac6b738feae73d2d5c352e5f605fa", - "windows-amd64": "e7f05bf847f7c3689dd28926460ce6e1097ae97380ac8e6ae7147b7b706ba19b" - }, - "version": "6.4.0" - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel", - "line": 8, - "column": 27 - } - } + "https://github.com/bazelbuild/rules_python/releases/download/0.4.0/rules_python-0.4.0.tar.gz" ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/fmeum/buildozer/releases/download/v6.4.0.2/buildozer-v6.4.0.2.tar.gz" - ], - "integrity": "sha256-k7tFKQMR2AygxpmZfH0yEPnQmF3efFgD9rBPkj+Yz/8=", - "strip_prefix": "buildozer-6.4.0.2", + "integrity": "sha256-lUqom0kb5KCDMEosuDgBnIuMNyCnq7nEy4GseiQjDOo=", + "strip_prefix": "", "remote_patches": { - "https://bcr.bazel.build/modules/buildozer/6.4.0.2/patches/module_dot_bazel_version.patch": "sha256-gKANF2HMilj7bWmuXs4lbBIAAansuWC4IhWGB/CerjU=" + "https://bcr.bazel.build/modules/rules_python/0.4.0/patches/propagate_pip_install_dependencies.patch": "sha256-v7S/dem/mixg63MF4KoRGDA4KEol9ab/tIVp+6Xq0D0=", + "https://bcr.bazel.build/modules/rules_python/0.4.0/patches/module_dot_bazel.patch": "sha256-kG4VIfWxQazzTuh50mvsx6pmyoRVA4lfH5rkto/Oq+Y=" }, "remote_patch_strip": 1 } } }, - "protobuf@21.7": { + "protobuf@3.19.6": { "name": "protobuf", - "version": "21.7", - "key": "protobuf@21.7", + "version": "3.19.6", + "key": "protobuf@3.19.6", "repoName": "protobuf", "executionPlatformsToRegister": [], "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@rules_jvm_external//:extensions.bzl", - "extensionName": "maven", - "usingModule": "protobuf@21.7", - "location": { - "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", - "line": 22, - "column": 22 - }, - "imports": { - "maven": "maven" - }, - "devImports": [], - "tags": [ - { - "tagName": "install", - "attributeValues": { - "name": "maven", - "artifacts": [ - "com.google.code.findbugs:jsr305:3.0.2", - "com.google.code.gson:gson:2.8.9", - "com.google.errorprone:error_prone_annotations:2.3.2", - "com.google.j2objc:j2objc-annotations:1.3", - "com.google.guava:guava:31.1-jre", - "com.google.guava:guava-testlib:31.1-jre", - "com.google.truth:truth:1.1.2", - "junit:junit:4.13.2", - "org.mockito:mockito-core:4.3.1" - ] - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", - "line": 24, - "column": 14 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], + "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_python": "rules_python@0.22.1", - "rules_cc": "rules_cc@0.0.9", - "rules_proto": "rules_proto@5.3.0-21.7", - "rules_java": "rules_java@7.4.0", - "rules_pkg": "rules_pkg@0.7.0", - "com_google_abseil": "abseil-cpp@20230802.0", + "bazel_skylib": "bazel_skylib@1.5.0", "zlib": "zlib@1.3", - "upb": "upb@0.0.0-20220923-a547704", - "rules_jvm_external": "rules_jvm_external@4.4.2", - "com_google_googletest": "googletest@1.14.0", + "rules_python": "rules_python@0.4.0", + "rules_cc": "rules_cc@0.0.9", + "rules_proto": "rules_proto@4.0.0", + "rules_java": "rules_java@7.1.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "protobuf~3.19.6", "urls": [ - "https://github.com/protocolbuffers/protobuf/releases/download/v21.7/protobuf-all-21.7.zip" + "https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip" ], - "integrity": "sha256-VJOiH17T/FAuZv7GuUScBqVRztYwAvpIkDxA36jeeko=", - "strip_prefix": "protobuf-21.7", + "integrity": "sha256-OH4sVZuyx8G8N5jE5s/wFTgaebJ1hpavy/johzC0c4k=", + "strip_prefix": "protobuf-3.19.6", "remote_patches": { - "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel.patch": "sha256-q3V2+eq0v2XF0z8z+V+QF4cynD6JvHI1y3kI/+rzl5s=", - "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel_for_examples.patch": "sha256-O7YP6s3lo/1opUiO0jqXYORNHdZ/2q3hjz1QGy8QdIU=", - "https://bcr.bazel.build/modules/protobuf/21.7/patches/relative_repo_names.patch": "sha256-RK9RjW8T5UJNG7flIrnFiNE9vKwWB+8uWWtJqXYT0w4=", - "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_missing_files.patch": "sha256-Hyne4DG2u5bXcWHNxNMirA2QFAe/2Cl8oMm1XJdkQIY=" + "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/relative_repo_names.patch": "sha256-w/5gw/zGv8NFId+669hcdw1Uus2lxgYpulATHIwIByI=", + "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/remove_dependency_on_rules_jvm_external.patch": "sha256-THUTnVgEBmjA0W7fKzIyZOVG58DnW9HQTkr4D2zKUUc=", + "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/add_module_dot_bazel_for_examples.patch": "sha256-s/b1gi3baK3LsXefI2rQilhmkb2R5jVJdnT6zEcdfHY=", + "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/module_dot_bazel.patch": "sha256-S0DEni8zgx7rHscW3z/rCEubQnYec0XhNet640cw0h4=" }, "remote_patch_strip": 1 } @@ -1136,15 +1072,16 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "zlib~1.3", "urls": [ "https://github.com/madler/zlib/releases/download/v1.3/zlib-1.3.tar.gz" ], @@ -1188,15 +1125,16 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "platforms": "platforms@0.0.7", + "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "apple_support~1.5.0", "urls": [ "https://github.com/bazelbuild/apple_support/releases/download/1.5.0/apple_support.1.5.0.tar.gz" ], @@ -1216,8 +1154,8 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "platforms": "platforms@0.0.7", + "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.8", "rules_foreign_cc": "rules_foreign_cc@0.9.0", "rules_cc": "rules_cc@0.0.9", "libpfm": "libpfm@4.11.0", @@ -1225,9 +1163,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "google_benchmark~1.8.2", "urls": [ "https://github.com/google/benchmark/archive/refs/tags/v1.8.2.tar.gz" ], @@ -1255,9 +1194,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.assert~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/assert/releases/download/bazelboost-1.83.0.bzl.1/assert-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1282,9 +1222,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.config~1.83.0.bzl.6", "urls": [ "https://github.com/bazelboost/config/releases/download/bazelboost-1.83.0.bzl.6/config-bazelboost-1.83.0.bzl.6.tar.gz" ], @@ -1313,9 +1254,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.core~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/core/releases/download/bazelboost-1.83.0.bzl.1/core-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1354,9 +1296,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.filesystem~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/filesystem/releases/download/bazelboost-1.83.0.bzl.2/filesystem-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -1389,9 +1332,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.function~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/function/releases/download/bazelboost-1.83.0.bzl.1/function-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1417,9 +1361,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.move~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/move/releases/download/bazelboost-1.83.0.bzl.1/move-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1444,9 +1389,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.predef~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/predef/releases/download/bazelboost-1.83.0.bzl.1/predef-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1478,9 +1424,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.smart_ptr~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/smart_ptr/releases/download/bazelboost-1.83.0.bzl.1/smart_ptr-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1534,9 +1481,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.spirit~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/spirit/releases/download/bazelboost-1.83.0.bzl.1/spirit-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1562,9 +1510,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.static_assert~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/static_assert/releases/download/bazelboost-1.83.0.bzl.1/static_assert-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1594,9 +1543,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.system~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/system/releases/download/bazelboost-1.83.0.bzl.1/system-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1623,9 +1573,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.throw_exception~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/throw_exception/releases/download/bazelboost-1.83.0.bzl.1/throw_exception-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1657,9 +1608,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.type_index~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/type_index/releases/download/bazelboost-1.83.0.bzl.1/type_index-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1686,9 +1638,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.type_traits~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/type_traits/releases/download/bazelboost-1.83.0.bzl.1/type_traits-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1715,9 +1668,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.winapi~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/winapi/releases/download/bazelboost-1.83.0.bzl.1/winapi-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1759,9 +1713,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.algorithm~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/algorithm/releases/download/bazelboost-1.83.0.bzl.1/algorithm-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1782,8 +1737,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", + "platforms": "platforms@0.0.8", + "bazel_skylib": "bazel_skylib@1.5.0", "boringssl": "boringssl@0.0.0-20230215-5c22014", "boost.align": "boost.align@1.83.0.bzl.1", "boost.array": "boost.array@1.83.0.bzl.1", @@ -1807,9 +1762,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.asio~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/asio/releases/download/bazelboost-1.83.0.bzl.2/asio-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -1846,9 +1802,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.fusion~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/fusion/releases/download/bazelboost-1.83.0.bzl.1/fusion-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1874,9 +1831,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.io~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/io/releases/download/bazelboost-1.83.0.bzl.1/io-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1915,9 +1873,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.iterator~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/iterator/releases/download/bazelboost-1.83.0.bzl.1/iterator-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1952,9 +1911,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.optional~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/optional/releases/download/bazelboost-1.83.0.bzl.1/optional-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1984,9 +1944,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.tokenizer~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/tokenizer/releases/download/bazelboost-1.83.0.bzl.1/tokenizer-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2018,9 +1979,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.utility~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/utility/releases/download/bazelboost-1.83.0.bzl.1/utility-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2031,154 +1993,6 @@ } } }, - "rules_pkg@0.7.0": { - "name": "rules_pkg", - "version": "0.7.0", - "key": "rules_pkg@0.7.0", - "repoName": "rules_pkg", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "rules_python": "rules_python@0.22.1", - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_license": "rules_license@0.0.7", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_pkg/releases/download/0.7.0/rules_pkg-0.7.0.tar.gz" - ], - "integrity": "sha256-iimOgydi7aGDBZfWT+fbWBeKqEzVkm121bdE1lWJQcI=", - "strip_prefix": "", - "remote_patches": { - "https://bcr.bazel.build/modules/rules_pkg/0.7.0/patches/module_dot_bazel.patch": "sha256-4OaEPZwYF6iC71ZTDg6MJ7LLqX7ZA0/kK4mT+4xKqiE=" - }, - "remote_patch_strip": 0 - } - } - }, - "upb@0.0.0-20220923-a547704": { - "name": "upb", - "version": "0.0.0-20220923-a547704", - "key": "upb@0.0.0-20220923-a547704", - "repoName": "upb", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_proto": "rules_proto@5.3.0-21.7", - "com_google_protobuf": "protobuf@21.7", - "com_google_absl": "abseil-cpp@20230802.0", - "platforms": "platforms@0.0.7", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz" - ], - "integrity": "sha256-z39x6v+QskwaKLSWRan/A6mmwecTQpHOcJActj5zZLU=", - "strip_prefix": "upb-a5477045acaa34586420942098f5fecd3570f577", - "remote_patches": { - "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/patches/module_dot_bazel.patch": "sha256-wH4mNS6ZYy+8uC0HoAft/c7SDsq2Kxf+J8dUakXhaB0=" - }, - "remote_patch_strip": 0 - } - } - }, - "rules_jvm_external@4.4.2": { - "name": "rules_jvm_external", - "version": "4.4.2", - "key": "rules_jvm_external@4.4.2", - "repoName": "rules_jvm_external", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@rules_jvm_external//:non-module-deps.bzl", - "extensionName": "non_module_deps", - "usingModule": "rules_jvm_external@4.4.2", - "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", - "line": 9, - "column": 32 - }, - "imports": { - "io_bazel_rules_kotlin": "io_bazel_rules_kotlin" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@rules_jvm_external//:extensions.bzl", - "extensionName": "maven", - "usingModule": "rules_jvm_external@4.4.2", - "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", - "line": 16, - "column": 22 - }, - "imports": { - "rules_jvm_external_deps": "rules_jvm_external_deps" - }, - "devImports": [], - "tags": [ - { - "tagName": "install", - "attributeValues": { - "name": "rules_jvm_external_deps", - "artifacts": [ - "com.google.cloud:google-cloud-core:1.93.10", - "com.google.cloud:google-cloud-storage:1.113.4", - "com.google.code.gson:gson:2.9.0", - "org.apache.maven:maven-artifact:3.8.6", - "software.amazon.awssdk:s3:2.17.183" - ], - "lock_file": "@rules_jvm_external//:rules_jvm_external_deps_install.json" - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", - "line": 18, - "column": 14 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "io_bazel_stardoc": "stardoc@0.5.1", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_jvm_external/archive/refs/tags/4.4.2.zip" - ], - "integrity": "sha256-c1YC9QgT6y6pPKP15DsZWb2AshO4NqB6YqKddXZwt3s=", - "strip_prefix": "rules_jvm_external-4.4.2", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, "rules_foreign_cc@0.9.0": { "name": "rules_foreign_cc", "version": "0.9.0", @@ -2226,15 +2040,16 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "platforms": "platforms@0.0.7", + "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0", "urls": [ "https://github.com/bazelbuild/rules_foreign_cc/archive/refs/tags/0.9.0.tar.gz" ], @@ -2257,15 +2072,16 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "rules_foreign_cc": "rules_foreign_cc@0.9.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "libpfm~4.11.0", "urls": [ "https://sourceforge.net/projects/perfmon2/files/libpfm4/libpfm-4.11.0.tar.gz" ], @@ -2301,9 +2117,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.atomic~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/atomic/releases/download/bazelboost-1.83.0.bzl.1/atomic-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2332,9 +2149,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.container_hash~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/container_hash/releases/download/bazelboost-1.83.0.bzl.1/container_hash-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2364,9 +2182,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.detail~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/detail/releases/download/bazelboost-1.83.0.bzl.2/detail-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -2393,9 +2212,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.bind~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/bind/releases/download/bazelboost-1.83.0.bzl.1/bind-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2420,9 +2240,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.preprocessor~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/preprocessor/releases/download/bazelboost-1.83.0.bzl.1/preprocessor-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2450,9 +2271,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.typeof~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/typeof/releases/download/bazelboost-1.83.0.bzl.1/typeof-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2482,9 +2304,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.array~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/array/releases/download/bazelboost-1.83.0.bzl.1/array-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2513,9 +2336,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.endian~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/endian/releases/download/bazelboost-1.83.0.bzl.1/endian-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2546,9 +2370,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.function_types~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/function_types/releases/download/bazelboost-1.83.0.bzl.1/function_types-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2579,9 +2404,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.integer~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/integer/releases/download/bazelboost-1.83.0.bzl.1/integer-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2613,9 +2439,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.mpl~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/mpl/releases/download/bazelboost-1.83.0.bzl.1/mpl-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2654,9 +2481,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.phoenix~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/phoenix/releases/download/bazelboost-1.83.0.bzl.1/phoenix-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2687,9 +2515,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.pool~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/pool/releases/download/bazelboost-1.83.0.bzl.1/pool-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2724,9 +2553,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.proto~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/proto/releases/download/bazelboost-1.83.0.bzl.1/proto-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2768,9 +2598,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.range~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/range/releases/download/bazelboost-1.83.0.bzl.1/range-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2807,9 +2638,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.regex~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/regex/releases/download/bazelboost-1.83.0.bzl.1/regex-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2863,9 +2695,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.thread~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/thread/releases/download/bazelboost-1.83.0.bzl.1/thread-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2902,9 +2735,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.unordered~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/unordered/releases/download/bazelboost-1.83.0.bzl.1/unordered-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2944,9 +2778,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.variant~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/variant/releases/download/bazelboost-1.83.0.bzl.1/variant-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2974,9 +2809,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.variant2~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/variant2/releases/download/bazelboost-1.83.0.bzl.1/variant2-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3005,9 +2841,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.concept_check~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/concept_check/releases/download/bazelboost-1.83.0.bzl.1/concept_check-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3039,9 +2876,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.exception~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/exception/releases/download/bazelboost-1.83.0.bzl.1/exception-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3070,9 +2908,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.tuple~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/tuple/releases/download/bazelboost-1.83.0.bzl.1/tuple-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3093,14 +2932,15 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boringssl~0.0.0-20230215-5c22014", "urls": [ "https://github.com/google/boringssl/archive/5c22014ca513807ed03c657e8ede076164663979.zip" ], @@ -3131,9 +2971,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.align~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/align/releases/download/bazelboost-1.83.0.bzl.1/align-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3173,9 +3014,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.chrono~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/chrono/releases/download/bazelboost-1.83.0.bzl.1/chrono-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3207,9 +3049,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.context~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/context/releases/download/bazelboost-1.83.0.bzl.1/context-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3244,9 +3087,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.coroutine~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/coroutine/releases/download/bazelboost-1.83.0.bzl.1/coroutine-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3286,9 +3130,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.date_time~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/date_time/releases/download/bazelboost-1.83.0.bzl.2/date_time-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -3322,9 +3167,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.functional~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/functional/releases/download/bazelboost-1.83.0.bzl.1/functional-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3356,9 +3202,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.conversion~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/conversion/releases/download/bazelboost-1.83.0.bzl.1/conversion-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3369,36 +3216,6 @@ } } }, - "stardoc@0.5.1": { - "name": "stardoc", - "version": "0.5.1", - "key": "stardoc@0.5.1", - "repoName": "stardoc", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_java": "rules_java@7.4.0", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/stardoc/releases/download/0.5.1/stardoc-0.5.1.tar.gz" - ], - "integrity": "sha256-qoFNrgrEALurLoiB+ZFcb0fElmS/CHxAmhX5BDjSwj4=", - "strip_prefix": "", - "remote_patches": { - "https://bcr.bazel.build/modules/stardoc/0.5.1/patches/module_dot_bazel.patch": "sha256-UAULCuTpJE7SG0YrR9XLjMfxMRmbP+za3uW9ONZ5rjI=" - }, - "remote_patch_strip": 0 - } - } - }, "boost.describe@1.83.0.bzl.1": { "name": "boost.describe", "version": "1.83.0.bzl.1", @@ -3414,9 +3231,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.describe~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/describe/releases/download/bazelboost-1.83.0.bzl.1/describe-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3446,9 +3264,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.container~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/container/releases/download/bazelboost-1.83.0.bzl.1/container-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3478,9 +3297,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.intrusive~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/intrusive/releases/download/bazelboost-1.83.0.bzl.1/intrusive-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3516,9 +3336,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.lexical_cast~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/lexical_cast/releases/download/bazelboost-1.83.0.bzl.1/lexical_cast-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3550,9 +3371,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.ratio~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/ratio/releases/download/bazelboost-1.83.0.bzl.1/ratio-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3584,9 +3406,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.numeric_conversion~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/numeric_conversion/releases/download/bazelboost-1.83.0.bzl.1/numeric_conversion-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3619,9 +3442,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.rational~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/rational/releases/download/bazelboost-1.83.0.bzl.1/rational-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3634,27 +3458,30 @@ } }, "moduleExtensions": { - "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": { + "@@apple_support~1.5.0//crosstool:setup.bzl%apple_cc_configure_extension": { "general": { "bzlTransitiveDigest": "pMLFCYaRPkgXPQ8vtuNkMfiHfPmRBy6QJfnid4sWfv0=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "local_config_apple_cc": { - "bzlFile": "@@apple_support~//crosstool:setup.bzl", + "bzlFile": "@@apple_support~1.5.0//crosstool:setup.bzl", "ruleClassName": "_apple_cc_autoconf", - "attributes": {} + "attributes": { + "name": "apple_support~1.5.0~apple_cc_configure_extension~local_config_apple_cc" + } }, "local_config_apple_cc_toolchains": { - "bzlFile": "@@apple_support~//crosstool:setup.bzl", + "bzlFile": "@@apple_support~1.5.0//crosstool:setup.bzl", "ruleClassName": "_apple_cc_autoconf_toolchains", - "attributes": {} + "attributes": { + "name": "apple_support~1.5.0~apple_cc_configure_extension~local_config_apple_cc_toolchains" + } } }, "recordedRepoMappingEntries": [ [ - "apple_support~", + "apple_support~1.5.0", "bazel_tools", "bazel_tools" ] @@ -3663,20 +3490,23 @@ }, "@@bazel_tools//tools/cpp:cc_configure.bzl%cc_configure_extension": { "general": { - "bzlTransitiveDigest": "PHpT2yqMGms2U4L3E/aZ+WcQalmZWm+ILdP3yiLsDhA=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "bzlTransitiveDigest": "mcsWHq3xORJexV5/4eCvNOLxFOQKV6eli3fkr+tEaqE=", + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "local_config_cc": { "bzlFile": "@@bazel_tools//tools/cpp:cc_configure.bzl", "ruleClassName": "cc_autoconf", - "attributes": {} + "attributes": { + "name": "bazel_tools~cc_configure_extension~local_config_cc" + } }, "local_config_cc_toolchains": { "bzlFile": "@@bazel_tools//tools/cpp:cc_configure.bzl", "ruleClassName": "cc_autoconf_toolchains", - "attributes": {} + "attributes": { + "name": "bazel_tools~cc_configure_extension~local_config_cc_toolchains" + } } }, "recordedRepoMappingEntries": [ @@ -3691,30 +3521,62 @@ "@@bazel_tools//tools/sh:sh_configure.bzl%sh_configure_extension": { "general": { "bzlTransitiveDigest": "hp4NgmNjEg5+xgvzfh6L83bt9/aiiWETuNpwNuF1MSU=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "local_config_sh": { "bzlFile": "@@bazel_tools//tools/sh:sh_configure.bzl", "ruleClassName": "sh_config", - "attributes": {} + "attributes": { + "name": "bazel_tools~sh_configure_extension~local_config_sh" + } } }, "recordedRepoMappingEntries": [] } }, - "@@rules_foreign_cc~//foreign_cc:extensions.bzl%ext": { + "@@rules_ecsact~0.4.9//ecsact:extensions.bzl%ecsact": { + "general": { + "bzlTransitiveDigest": "jvG4+kuuCYuIqgh6xUigt/VC2/ZYpiWpFwuG/BR78Wo=", + "accumulatedFileDigests": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "ecsact_toolchains": { + "bzlFile": "@@rules_ecsact~0.4.9//ecsact:extensions.bzl", + "ruleClassName": "_ecsact_toolchains_repository", + "attributes": { + "name": "rules_ecsact~0.4.9~ecsact~ecsact_toolchains", + "ecsact_exe": "C:/Users/Austin/AppData/Local/Microsoft/WindowsApps/ecsact.exe" + } + }, + "ecsact_sdk": { + "bzlFile": "@@rules_ecsact~0.4.9//ecsact:extensions.bzl", + "ruleClassName": "_ecsact_sdk_repository", + "attributes": { + "name": "rules_ecsact~0.4.9~ecsact~ecsact_sdk" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_ecsact~0.4.9", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_foreign_cc~0.9.0//foreign_cc:extensions.bzl%ext": { "general": { - "bzlTransitiveDigest": "QbxK92//k6c63fpMer2Lkk6224s9gwYoVFFS6mdkucI=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "bzlTransitiveDigest": "0RRlv8104I+0UofcyVmXkQH2vyzRFgZJ6Tz8I0oC0ZY=", + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "cmake-3.23.2-linux-aarch64": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake-3.23.2-linux-aarch64", "urls": [ "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-linux-aarch64.tar.gz" ], @@ -3724,9 +3586,10 @@ } }, "rules_foreign_cc_framework_toolchain_macos": { - "bzlFile": "@@rules_foreign_cc~//foreign_cc/private/framework:toolchain.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//foreign_cc/private/framework:toolchain.bzl", "ruleClassName": "framework_toolchain_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~rules_foreign_cc_framework_toolchain_macos", "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:macos_commands.bzl", "exec_compatible_with": [ "@platforms//os:macos" @@ -3738,6 +3601,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~ninja_1.11.0_linux", "urls": [ "https://github.com/ninja-build/ninja/releases/download/v1.11.0/ninja-linux.zip" ], @@ -3750,9 +3614,10 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~gnumake_src", "build_file_content": "filegroup(\n name = \"all_srcs\",\n srcs = glob([\"**\"]),\n visibility = [\"//visibility:public\"],\n)\n", "patches": [ - "@@rules_foreign_cc~//toolchains:make-reproducible-bootstrap.patch" + "@@rules_foreign_cc~0.9.0//toolchains:make-reproducible-bootstrap.patch" ], "sha256": "e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19", "strip_prefix": "make-4.3", @@ -3766,6 +3631,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~ninja_1.11.0_win", "urls": [ "https://github.com/ninja-build/ninja/releases/download/v1.11.0/ninja-win.zip" ], @@ -3775,9 +3641,10 @@ } }, "cmake_3.23.2_toolchains": { - "bzlFile": "@@rules_foreign_cc~//toolchains:prebuilt_toolchains_repository.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//toolchains:prebuilt_toolchains_repository.bzl", "ruleClassName": "prebuilt_toolchains_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake_3.23.2_toolchains", "repos": { "cmake-3.23.2-linux-aarch64": [ "@platforms//cpu:aarch64", @@ -3806,6 +3673,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake_src", "build_file_content": "filegroup(\n name = \"all_srcs\",\n srcs = glob([\"**\"]),\n visibility = [\"//visibility:public\"],\n)\n", "sha256": "f316b40053466f9a416adf981efda41b160ca859e97f6a484b447ea299ff26aa", "strip_prefix": "cmake-3.23.2", @@ -3818,6 +3686,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~bazel_skylib", "urls": [ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz", "https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz" @@ -3829,6 +3698,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake-3.23.2-macos-universal", "urls": [ "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-macos-universal.tar.gz" ], @@ -3838,9 +3708,10 @@ } }, "rules_foreign_cc_framework_toolchain_freebsd": { - "bzlFile": "@@rules_foreign_cc~//foreign_cc/private/framework:toolchain.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//foreign_cc/private/framework:toolchain.bzl", "ruleClassName": "framework_toolchain_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~rules_foreign_cc_framework_toolchain_freebsd", "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:freebsd_commands.bzl", "exec_compatible_with": [ "@platforms//os:freebsd" @@ -3849,9 +3720,10 @@ } }, "rules_foreign_cc_framework_toolchain_linux": { - "bzlFile": "@@rules_foreign_cc~//foreign_cc/private/framework:toolchain.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//foreign_cc/private/framework:toolchain.bzl", "ruleClassName": "framework_toolchain_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~rules_foreign_cc_framework_toolchain_linux", "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:linux_commands.bzl", "exec_compatible_with": [ "@platforms//os:linux" @@ -3863,6 +3735,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~rules_python", "sha256": "5fa3c738d33acca3b97622a13a741129f67ef43f5fdfcec63b29374cc0574c29", "strip_prefix": "rules_python-0.9.0", "url": "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.9.0.tar.gz" @@ -3872,6 +3745,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~ninja_1.11.0_mac", "urls": [ "https://github.com/ninja-build/ninja/releases/download/v1.11.0/ninja-mac.zip" ], @@ -3884,6 +3758,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~ninja_build_src", "build_file_content": "filegroup(\n name = \"all_srcs\",\n srcs = glob([\"**\"]),\n visibility = [\"//visibility:public\"],\n)\n", "sha256": "3c6ba2e66400fe3f1ae83deb4b235faf3137ec20bd5b08c29bfc368db143e4c6", "strip_prefix": "ninja-1.11.0", @@ -3896,6 +3771,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake-3.23.2-windows-i386", "urls": [ "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-windows-i386.zip" ], @@ -3908,6 +3784,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake-3.23.2-linux-x86_64", "urls": [ "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-linux-x86_64.tar.gz" ], @@ -3920,6 +3797,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake-3.23.2-windows-x86_64", "urls": [ "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-windows-x86_64.zip" ], @@ -3929,9 +3807,10 @@ } }, "rules_foreign_cc_framework_toolchain_windows": { - "bzlFile": "@@rules_foreign_cc~//foreign_cc/private/framework:toolchain.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//foreign_cc/private/framework:toolchain.bzl", "ruleClassName": "framework_toolchain_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~rules_foreign_cc_framework_toolchain_windows", "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:windows_commands.bzl", "exec_compatible_with": [ "@platforms//os:windows" @@ -3940,9 +3819,10 @@ } }, "ninja_1.11.0_toolchains": { - "bzlFile": "@@rules_foreign_cc~//toolchains:prebuilt_toolchains_repository.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//toolchains:prebuilt_toolchains_repository.bzl", "ruleClassName": "prebuilt_toolchains_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~ninja_1.11.0_toolchains", "repos": { "ninja_1.11.0_linux": [ "@platforms//cpu:x86_64", @@ -3963,57 +3843,61 @@ }, "recordedRepoMappingEntries": [ [ - "rules_foreign_cc~", + "rules_foreign_cc~0.9.0", "bazel_tools", "bazel_tools" ], [ - "rules_foreign_cc~", + "rules_foreign_cc~0.9.0", "rules_foreign_cc", - "rules_foreign_cc~" + "rules_foreign_cc~0.9.0" ] ] } }, - "@@rules_java~//java:extensions.bzl%toolchains": { + "@@rules_java~7.1.0//java:extensions.bzl%toolchains": { "general": { - "bzlTransitiveDigest": "tJHbmWnq7m+9eUBnUdv7jZziQ26FmcGL9C5/hU3Q9UQ=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "bzlTransitiveDigest": "D02GmifxnV/IhYgspsJMDZ/aE8HxAjXgek5gi6FSto4=", + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "remotejdk21_linux_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_linux_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux//:jdk\",\n)\n" } }, "remotejdk17_linux_s390x_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_s390x_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_s390x//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_s390x//:jdk\",\n)\n" } }, "remotejdk17_macos_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_macos_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos//:jdk\",\n)\n" } }, "remotejdk21_macos_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_macos_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos_aarch64//:jdk\",\n)\n" } }, "remotejdk17_linux_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_aarch64//:jdk\",\n)\n" } }, @@ -4021,19 +3905,21 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_macos_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "e8260516de8b60661422a725f1df2c36ef888f6fb35393566b00e7325db3d04e", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-macosx_aarch64", + "sha256": "2a7a99a3ea263dbd8d32a67d1e6e363ba8b25c645c826f5e167a02bbafaff1fa", + "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-macosx_aarch64", "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_aarch64.tar.gz" + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_aarch64.tar.gz" ] } }, "remotejdk17_linux_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux//:jdk\",\n)\n" } }, @@ -4041,6 +3927,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_macos_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "314b04568ec0ae9b36ba03c9cbd42adc9e1265f74678923b19297d66eb84dcca", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-macosx_aarch64", @@ -4054,10 +3941,11 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "sha256": "fe2f88169696d6c6fc6e90ba61bb46be7d0ae3693cbafdf336041bf56679e8d1", + "name": "rules_java~7.1.0~toolchains~remote_java_tools_windows", + "sha256": "c5c70c214a350f12cbf52da8270fa43ba629b795f3dd328028a38f8f0d39c2a1", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_windows-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_windows-v13.4.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_windows-v13.1.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_windows-v13.1.zip" ] } }, @@ -4065,6 +3953,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_win", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "43408193ce2fa0862819495b5ae8541085b95660153f2adcf91a52d3a1710e83", "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-win_x64", @@ -4075,9 +3964,10 @@ } }, "remotejdk11_win_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_win_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win//:jdk\",\n)\n" } }, @@ -4085,6 +3975,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "54174439f2b3fddd11f1048c397fe7bb45d4c9d66d452d6889b013d04d21c4de", "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-linux_aarch64", @@ -4098,6 +3989,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "b9482f2304a1a68a614dfacddcf29569a72f0fac32e6c74f83dc1b9a157b8340", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-linux_x64", @@ -4108,16 +4000,18 @@ } }, "remotejdk11_linux_s390x_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_s390x_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_s390x//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_s390x//:jdk\",\n)\n" } }, "remotejdk11_linux_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux//:jdk\",\n)\n" } }, @@ -4125,6 +4019,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_macos", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "bcaab11cfe586fae7583c6d9d311c64384354fb2638eb9a012eca4c3f1a1d9fd", "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-macosx_x64", @@ -4138,6 +4033,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_win_arm64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2", "strip_prefix": "jdk-11.0.13+8", @@ -4150,6 +4046,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_macos", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "640453e8afe8ffe0fb4dceb4535fb50db9c283c64665eebb0ba68b19e65f4b1f", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-macosx_x64", @@ -4163,26 +4060,29 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_macos", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "3ad8fe288eb57d975c2786ae453a036aa46e47ab2ac3d81538ebae2a54d3c025", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-macosx_x64", + "sha256": "9639b87db586d0c89f7a9892ae47f421e442c64b97baebdff31788fbe23265bd", + "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-macosx_x64", "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_x64.tar.gz" + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_x64.tar.gz" ] } }, "remotejdk21_macos_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_macos_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos//:jdk\",\n)\n" } }, "remotejdk17_macos_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_macos_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos_aarch64//:jdk\",\n)\n" } }, @@ -4190,6 +4090,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_win", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "192f2afca57701de6ec496234f7e45d971bf623ff66b8ee4a5c81582054e5637", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-win_x64", @@ -4200,16 +4101,18 @@ } }, "remotejdk11_macos_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_macos_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos_aarch64//:jdk\",\n)\n" } }, "remotejdk11_linux_ppc64le_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_ppc64le_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_ppc64le//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_ppc64le//:jdk\",\n)\n" } }, @@ -4217,12 +4120,13 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_linux", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "5ad730fbee6bb49bfff10bf39e84392e728d89103d3474a7e5def0fd134b300a", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-linux_x64", + "sha256": "0c0eadfbdc47a7ca64aeab51b9c061f71b6e4d25d2d87674512e9b6387e9e3a6", + "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-linux_x64", "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_x64.tar.gz" + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_x64.tar.gz" ] } }, @@ -4230,10 +4134,11 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "sha256": "ba10f09a138cf185d04cbc807d67a3da42ab13d618c5d1ce20d776e199c33a39", + "name": "rules_java~7.1.0~toolchains~remote_java_tools_linux", + "sha256": "d134da9b04c9023fb6e56a5d4bffccee73f7bc9572ddc4e747778dacccd7a5a7", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_linux-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_linux-v13.4.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_linux-v13.1.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_linux-v13.1.zip" ] } }, @@ -4241,12 +4146,13 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_win", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "f7cc15ca17295e69c907402dfe8db240db446e75d3b150da7bf67243cded93de", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-win_x64", + "sha256": "e9959d500a0d9a7694ac243baf657761479da132f0f94720cbffd092150bd802", + "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-win_x64", "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-win_x64.zip", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-win_x64.zip" + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-win_x64.zip" ] } }, @@ -4254,19 +4160,21 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_linux_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "ce7df1af5d44a9f455617c4b8891443fbe3e4b269c777d8b82ed66f77167cfe0", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-linux_aarch64", + "sha256": "1fb64b8036c5d463d8ab59af06bf5b6b006811e6012e3b0eb6bccf57f1c55835", + "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-linux_aarch64", "urls": [ - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_aarch64.tar.gz", - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_aarch64.tar.gz" + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_aarch64.tar.gz" ] } }, "remotejdk11_linux_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_aarch64//:jdk\",\n)\n" } }, @@ -4274,6 +4182,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_s390x", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "a58fc0361966af0a5d5a31a2d8a208e3c9bb0f54f345596fd80b99ea9a39788b", "strip_prefix": "jdk-11.0.15+10", @@ -4287,6 +4196,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "6531cef61e416d5a7b691555c8cf2bdff689201b8a001ff45ab6740062b44313", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-linux_aarch64", @@ -4297,9 +4207,10 @@ } }, "remotejdk17_win_arm64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_win_arm64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win_arm64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win_arm64//:jdk\",\n)\n" } }, @@ -4307,6 +4218,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "a34b404f87a08a61148b38e1416d837189e1df7a040d949e743633daf4695a3c", "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-linux_x64", @@ -4317,16 +4229,18 @@ } }, "remotejdk11_macos_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_macos_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos//:jdk\",\n)\n" } }, "remotejdk17_linux_ppc64le_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_ppc64le_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_ppc64le//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_ppc64le//:jdk\",\n)\n" } }, @@ -4334,6 +4248,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_win_arm64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "6802c99eae0d788e21f52d03cab2e2b3bf42bc334ca03cbf19f71eb70ee19f85", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-win_aarch64", @@ -4347,10 +4262,11 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "sha256": "076a7e198ad077f8c7d997986ef5102427fae6bbfce7a7852d2e080ed8767528", + "name": "rules_java~7.1.0~toolchains~remote_java_tools_darwin_arm64", + "sha256": "dab5bb87ec43e980faea6e1cec14bafb217b8e2f5346f53aa784fd715929a930", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_darwin_arm64-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_darwin_arm64-v13.4.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_darwin_arm64-v13.1.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_darwin_arm64-v13.1.zip" ] } }, @@ -4358,6 +4274,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_ppc64le", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "00a4c07603d0218cd678461b5b3b7e25b3253102da4022d31fc35907f21a2efd", "strip_prefix": "jdk-17.0.8.1+1", @@ -4368,23 +4285,26 @@ } }, "remotejdk21_linux_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_linux_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux_aarch64//:jdk\",\n)\n" } }, "remotejdk11_win_arm64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_win_arm64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win_arm64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win_arm64//:jdk\",\n)\n" } }, "local_jdk": { - "bzlFile": "@@rules_java~//toolchains:local_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:local_java_repository.bzl", "ruleClassName": "_local_java_repository_rule", "attributes": { + "name": "rules_java~7.1.0~toolchains~local_jdk", "java_home": "", "version": "", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = {RUNTIME_VERSION},\n)\n" @@ -4394,10 +4314,11 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "sha256": "4523aec4d09c587091a2dae6f5c9bc6922c220f3b6030e5aba9c8f015913cc65", + "name": "rules_java~7.1.0~toolchains~remote_java_tools_darwin_x86_64", + "sha256": "0db40d8505a2b65ef0ed46e4256757807db8162f7acff16225be57c1d5726dbc", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_darwin_x86_64-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_darwin_x86_64-v13.4.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_darwin_x86_64-v13.1.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_darwin_x86_64-v13.1.zip" ] } }, @@ -4405,10 +4326,11 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "sha256": "e025fd260ac39b47c111f5212d64ec0d00d85dec16e49368aae82fc626a940cf", + "name": "rules_java~7.1.0~toolchains~remote_java_tools", + "sha256": "286bdbbd66e616fc4ed3f90101418729a73baa7e8c23a98ffbef558f74c0ad14", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools-v13.4.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools-v13.1.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools-v13.1.zip" ] } }, @@ -4416,6 +4338,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_s390x", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "ffacba69c6843d7ca70d572489d6cc7ab7ae52c60f0852cedf4cf0d248b6fc37", "strip_prefix": "jdk-17.0.8.1+1", @@ -4426,9 +4349,10 @@ } }, "remotejdk17_win_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_win_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win//:jdk\",\n)\n" } }, @@ -4436,6 +4360,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_ppc64le", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "a8fba686f6eb8ae1d1a9566821dbd5a85a1108b96ad857fdbac5c1e4649fc56f", "strip_prefix": "jdk-11.0.15+10", @@ -4449,6 +4374,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_macos_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "7632bc29f8a4b7d492b93f3bc75a7b61630894db85d136456035ab2a24d38885", "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-macosx_aarch64", @@ -4459,23 +4385,94 @@ } }, "remotejdk21_win_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_win_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_win//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_win//:jdk\",\n)\n" } } }, "recordedRepoMappingEntries": [ [ - "rules_java~", + "rules_java~7.1.0", "bazel_tools", "bazel_tools" ], [ - "rules_java~", + "rules_java~7.1.0", "remote_java_tools", - "rules_java~~toolchains~remote_java_tools" + "rules_java~7.1.0~toolchains~remote_java_tools" + ] + ] + } + }, + "@@toolchains_llvm~1.0.0//toolchain/extensions:llvm.bzl%llvm": { + "general": { + "bzlTransitiveDigest": "TDQeZ8W4/yRTNKZS7ZodQPztqcEssr6T69gEHR1xQDc=", + "accumulatedFileDigests": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "llvm_toolchain": { + "bzlFile": "@@toolchains_llvm~1.0.0//toolchain:rules.bzl", + "ruleClassName": "toolchain", + "attributes": { + "name": "toolchains_llvm~1.0.0~llvm~llvm_toolchain", + "absolute_paths": false, + "archive_flags": {}, + "compile_flags": {}, + "coverage_compile_flags": {}, + "coverage_link_flags": {}, + "cxx_builtin_include_directories": {}, + "cxx_flags": {}, + "cxx_standard": {}, + "dbg_compile_flags": {}, + "exec_arch": "", + "exec_os": "", + "link_flags": {}, + "link_libs": {}, + "llvm_versions": { + "": "17.0.6" + }, + "opt_compile_flags": {}, + "opt_link_flags": {}, + "stdlib": {}, + "target_settings": {}, + "unfiltered_compile_flags": {}, + "toolchain_roots": {}, + "sysroot": {} + } + }, + "llvm_toolchain_llvm": { + "bzlFile": "@@toolchains_llvm~1.0.0//toolchain:rules.bzl", + "ruleClassName": "llvm", + "attributes": { + "name": "toolchains_llvm~1.0.0~llvm~llvm_toolchain_llvm", + "alternative_llvm_sources": [], + "auth_patterns": {}, + "distribution": "auto", + "exec_arch": "", + "exec_os": "", + "llvm_mirror": "", + "llvm_version": "17.0.6", + "llvm_versions": {}, + "netrc": "", + "sha256": {}, + "strip_prefix": {}, + "urls": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "toolchains_llvm~1.0.0", + "bazel_tools", + "bazel_tools" + ], + [ + "toolchains_llvm~1.0.0", + "toolchains_llvm", + "toolchains_llvm~1.0.0" ] ] } diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 8b13789..e69de29 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -1 +0,0 @@ - diff --git a/bazel/copts.bzl b/bazel/copts.bzl index 2a49358..3195fed 100644 --- a/bazel/copts.bzl +++ b/bazel/copts.bzl @@ -6,7 +6,7 @@ copts = selects.with_or({ "-std=c++20", ], ("@rules_cc//cc/compiler:clang"): [ - "-std=c++2b", + "-std=c++20", "-fexperimental-library", ], ("@rules_cc//cc/compiler:msvc-cl", "@rules_cc//cc/compiler:clang-cl"): [ diff --git a/ecsact/entt/detail/apply_pending.hh b/ecsact/entt/detail/apply_pending.hh new file mode 100644 index 0000000..732e834 --- /dev/null +++ b/ecsact/entt/detail/apply_pending.hh @@ -0,0 +1,36 @@ +#pragma once + +#include +#include "ecsact/entt/wrapper/core.hh" +#include "ecsact/entt/detail/internal_markers.hh" + +namespace ecsact::entt::detail { + +template +auto apply_pending_add(::entt::registry& registry) -> void { + if constexpr(std::is_empty_v) { + registry.view>().each([&](auto entity) { + registry.emplace(entity); + }); + } else { + registry.view>().each( + [&](auto entity, const pending_add& comp) { + registry.emplace(entity, comp.value); + } + ); + } + registry.clear>(); +} + +template +auto apply_pending_remove(::entt::registry& registry) -> void { + registry.view>().each([&](auto entity) { + if constexpr(!std::is_empty_v) { + registry.erase>(entity); + } + registry.erase(entity); + }); + registry.clear>(); +} + +} // namespace ecsact::entt::detail diff --git a/ecsact/entt/detail/entt_util.hh b/ecsact/entt/detail/entt_util.hh deleted file mode 100644 index 95fea5d..0000000 --- a/ecsact/entt/detail/entt_util.hh +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -#include - -namespace ecsact_entt_rt { - -inline void ensure_entity(entt::registry& registry, entt::entity entity) { - if(!registry.valid(entity)) { - static_cast(registry.create(entity)); - assert(registry.valid(entity)); - } -} - -template -bool has_entity_and_component(entt::registry& registry, entt::entity entity) { - return registry.valid(entity) && registry.all_of(entity); -} - -} // namespace ecsact_entt_rt diff --git a/ecsact/entt/detail/execution_events_collector.hh b/ecsact/entt/detail/execution_events_collector.hh index e767ccf..1e384c1 100644 --- a/ecsact/entt/detail/execution_events_collector.hh +++ b/ecsact/entt/detail/execution_events_collector.hh @@ -3,7 +3,7 @@ #include #include "ecsact/runtime/core.h" -namespace ecsact_entt_rt { +namespace ecsact::entt::detail { struct execution_events_collector { const ecsact_execution_events_collector* target; @@ -123,4 +123,4 @@ struct execution_events_collector { } }; -} // namespace ecsact_entt_rt +} // namespace ecsact::entt::detail diff --git a/ecsact/entt/detail/globals.hh b/ecsact/entt/detail/globals.hh new file mode 100644 index 0000000..ce679f1 --- /dev/null +++ b/ecsact/entt/detail/globals.hh @@ -0,0 +1,173 @@ +#pragma once + +#include +#include +#include "entt/entity/registry.hpp" +#include "ecsact/runtime/common.h" +#include "ecsact/runtime/core.h" +#include "ecsact/runtime/dynamic.h" +#include "ecsact/entt/detail/system_execution_context.hh" + +/** + * A small set of globals exepected to be available the ecsact_rt_entt_codegen + * generated source. + */ +namespace ecsact::entt::detail::globals { + +/** + * Ecsact registry ID mapped to EnTT registry instance. + */ +extern std::unordered_map< // + ecsact_registry_id, + ::entt::registry> + registries; + +/** + * Stored last registry ID. Used to create new registry IDs. + */ +extern ecsact_registry_id last_registry_id; + +/** + * System-like implementation functions set by dynamic API. + */ +extern std::unordered_map< // + ecsact_system_like_id, + ecsact_system_execution_impl> + system_impls; + +/** + * All components IDs available to rt_entt + */ +extern const std::unordered_set all_component_ids; + +/** + * ecsact_add_component fn pointers + * + * NOTE: This gets is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< // + ecsact_component_id, + decltype(&ecsact_add_component)> + add_component_fns; + +/** + * ecsact_get_component fn pointers + * + * NOTE: This gets is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< // + ecsact_component_id, + decltype(&ecsact_get_component)> + get_component_fns; + +/** + * ecsact_update_component fn pointers + * + * NOTE: This gets is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< // + ecsact_component_id, + decltype(&ecsact_update_component)> + update_component_fns; + +/** + * ecsact_remove_component fn pointers + * + * NOTE: This gets is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< // + ecsact_component_id, + decltype(&ecsact_remove_component)> + remove_component_fns; + +/** + * ecsact_has_component fn pointers + * + * NOTE: This gets is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< // + ecsact_component_id, + decltype(&ecsact_has_component)> + has_component_fns; + +/** + * ecsact_system_execution_context_get fn pointers + * + * NOTE: This gets is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< // + ecsact_system_like_id, + std::unordered_map< + ecsact::entt::assoc_index, + std::unordered_map< // + ecsact_component_like_id, + decltype(&ecsact_system_execution_context_get)>>> + exec_ctx_get_fns; + +/** + * ecsact_system_execution_context_add fn pointers + * + * NOTE: This adds is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< // + ecsact_system_like_id, + std::unordered_map< + ecsact::entt::assoc_index, + std::unordered_map< // + ecsact_component_like_id, + decltype(&ecsact_system_execution_context_add)>>> + exec_ctx_add_fns; + +/** + * ecsact_system_execution_context_update fn pointers + * + * NOTE: This updates is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< // + ecsact_system_like_id, + std::unordered_map< + ecsact::entt::assoc_index, + std::unordered_map< // + ecsact_component_like_id, + decltype(&ecsact_system_execution_context_update)>>> + exec_ctx_update_fns; + +/** + * ecsact_system_execution_context_remove fn pointers + * + * NOTE: This removes is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< // + ecsact_system_like_id, + std::unordered_map< + ecsact::entt::assoc_index, + std::unordered_map< // + ecsact_component_like_id, + decltype(&ecsact_system_execution_context_remove)>>> + exec_ctx_remove_fns; + +/** + * ecsact_system_execution_context_has fn pointers + * + * NOTE: This has is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< // + ecsact_system_like_id, + std::unordered_map< + ecsact::entt::assoc_index, + std::unordered_map< // + ecsact_component_like_id, + decltype(&ecsact_system_execution_context_has)>>> + exec_ctx_has_fns; + +/** + * ecsact_system_execution_context_action fn pointers + * + * NOTE: This action is filled in by ecsact_rt_entt_codegen + */ +extern const std::unordered_map< + ecsact_action_id, + decltype(&ecsact_system_execution_context_action)> + exec_ctx_action_fns; + +} // namespace ecsact::entt::detail::globals diff --git a/ecsact/entt/detail/internal_markers.hh b/ecsact/entt/detail/internal_markers.hh index ad04dbe..eee003d 100644 --- a/ecsact/entt/detail/internal_markers.hh +++ b/ecsact/entt/detail/internal_markers.hh @@ -22,23 +22,22 @@ concept association_concept = // }; template -struct temp_storage; +struct beforeremove_storage; template requires(std::is_empty_v) -struct temp_storage {}; +struct beforeremove_storage {}; template requires(!std::is_empty_v) -struct temp_storage { +struct beforeremove_storage { C value; }; template requires(!std::is_empty_v) struct beforechange_storage { - C value; - bool set = false; + C value; }; template diff --git a/ecsact/entt/detail/meta_util.hh b/ecsact/entt/detail/meta_util.hh deleted file mode 100644 index 66ba3a3..0000000 --- a/ecsact/entt/detail/meta_util.hh +++ /dev/null @@ -1,177 +0,0 @@ -#pragma once - -#include "ecsact/runtime/common.h" -#include "ecsact/lib.hh" -#include -#include - -namespace ecsact::entt::detail { - -template -struct mp_components_t; - -template<> -struct mp_components_t<> { - using type = ::ecsact::mp_list<>; -}; - -template -struct mp_components_t { - using type = typename Package::components; -}; - -template -struct mp_components_t { - using type = - boost::mp11::mp_unique::type, - typename mp_components_t::type>>>; -}; - -template -struct mp_transients_t; - -template<> -struct mp_transients_t<> { - using type = ::ecsact::mp_list<>; -}; - -template -struct mp_transients_t { - using type = typename Package::transients; -}; - -template -struct mp_transients_t { - using type = - boost::mp11::mp_unique::type, - typename mp_transients_t::type>>>; -}; - -template -struct mp_actions_t; - -template<> -struct mp_actions_t<> { - using type = ::ecsact::mp_list<>; -}; - -template -struct mp_actions_t { - using type = typename Package::actions; -}; - -template -struct mp_actions_t { - using type = - boost::mp11::mp_unique::type, - typename mp_actions_t::type>>>; -}; - -template -struct mp_systems_t; - -template<> -struct mp_systems_t<> { - using type = ::ecsact::mp_list<>; -}; - -template -struct mp_systems_t { - using type = typename Package::systems; -}; - -template -struct mp_systems_t { - using type = - boost::mp11::mp_unique::type, - typename mp_systems_t::type>>>; -}; - -template -using mp_package_dependencies = typename Package::dependencies; - -template -using mp_package_dependencies_from_list = std::enable_if_t< - !boost::mp11::mp_empty::value, - boost::mp11::mp_flatten< - boost::mp11::mp_transform>>; - -/** - * Given a list of packages return a list of all unique dependencies recursively - */ -template -using mp_package_dependencies_recursive = - boost::mp11::mp_unique>>; - -template -using mp_all_components_t = typename boost::mp11::mp_append< - mp_components_t, - mp_package_dependencies_recursive>::type; - -template -using mp_all_transients_t = typename boost::mp11::mp_append< - mp_transients_t, - mp_package_dependencies_recursive>::type; - -template -using mp_all_systems_t = typename boost::mp11::mp_append< - mp_systems_t, - mp_package_dependencies_recursive>::type; - -template -using mp_all_actions_t = typename boost::mp11::mp_append< - mp_actions_t, - mp_package_dependencies_recursive>::type; - -template -void mp_for_each_available_component(Callback&& cb) { - using boost::mp11::mp_append; - using boost::mp11::mp_for_each; - - using components = typename mp_append< - mp_components_t, - mp_package_dependencies_recursive>::type; - - mp_for_each([&](const C& c) { cb(c); }); -} - -template -void mp_for_each_available_action(Callback&& cb) { - using boost::mp11::mp_append; - using boost::mp11::mp_for_each; - - using actions = typename mp_append< - mp_actions_t, - mp_package_dependencies_recursive>::type; - - mp_for_each([&](const C& c) { cb(c); }); -} - -template -void mp_for_each_available_system(Callback&& cb) { - using boost::mp11::mp_append; - using boost::mp11::mp_for_each; - - using systems = typename mp_append< - mp_systems_t, - mp_package_dependencies_recursive>::type; - - mp_for_each([&](const C& c) { cb(c); }); -} - -template -void mp_for_each_available_system_like(Callback&& cb) { - mp_for_each_available_system(cb); - mp_for_each_available_action(cb); -} - -} // namespace ecsact::entt::detail diff --git a/ecsact/entt/detail/mp11_util.hh b/ecsact/entt/detail/mp11_util.hh deleted file mode 100644 index fd67792..0000000 --- a/ecsact/entt/detail/mp11_util.hh +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include - -namespace ecsact::entt_mp11_util { - -template -using mp_map_find_or = boost::mp11::mp_if< - boost::mp11::mp_map_contains, - boost::mp11::mp_map_find, - boost::mp11::mp_list>; - -template -using mp_map_find_value_or = boost::mp11::mp_second>; - -} // namespace ecsact::entt_mp11_util diff --git a/ecsact/entt/detail/registry_info.hh b/ecsact/entt/detail/registry_info.hh deleted file mode 100644 index 0b82800..0000000 --- a/ecsact/entt/detail/registry_info.hh +++ /dev/null @@ -1,194 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include "ecsact/runtime/common.h" -#include "ecsact/runtime/core.h" -#include "ecsact/entt/detail/meta_util.hh" -#include "ecsact/cpp/type_info.hh" -#include "ecsact/entt/system_view.hh" -#include "ecsact/entt/event_markers.hh" -#include "ecsact/entt/entity.hh" -#include "ecsact/entt/detail/internal_markers.hh" - -#include "meta_util.hh" - -namespace ecsact_entt_rt { - -template -struct registry_info { - using package = Package; - - std::optional> mutex; - ::entt::registry registry; - - void init_registry() { - using ecsact::entt::component_added; - using ecsact::entt::component_changed; - using ecsact::entt::component_removed; - using ecsact::entt::detail::beforechange_storage; - using ecsact::entt::detail::mp_for_each_available_component; - using ecsact::entt::detail::temp_storage; - - mp_for_each_available_component([&](C) { - registry.storage(); - registry.storage>(); - registry.storage>(); - registry.storage>(); - registry.storage>(); - if constexpr(!std::is_empty_v) { - registry.storage>(); - } - }); - } - - template - void _add_association(const C& component, const ecsact::field_info& field) { - using boost::mp11::mp_with_index; - using ecsact::entt::detail::association; - - ecsact::entt::entity_id entity_field = - field.template get(&component); - - // TODO(zaucy): Increasing the mp_with_index number causes really long - // compile times. Iterating over the available associations - // would perform better here. - assert(field.offset < 32); - mp_with_index<32>(field.offset, [&](auto I) { - if(registry.all_of>(entity_field)) { - auto& assoc_comp = registry.get>(entity_field); - assoc_comp.ref_count += 1; - } else { - registry.emplace>(entity_field, 1); - } - }); - } - - template - void _remove_association( - const C& component, - const ecsact::field_info& field - ) { - using boost::mp11::mp_with_index; - using ecsact::entt::detail::association; - - ecsact::entt::entity_id entity_field = - field.template get(&component); - - assert(field.offset < 32); - // TODO(zaucy): Increasing the mp_with_index number causes really long - // compile times. Iterating over the available associations - // would perform better here. - mp_with_index<32>(field.offset, [&](auto I) { - auto& assoc_comp = registry.get>(entity_field); - assoc_comp.ref_count -= 1; - if(assoc_comp.ref_count == 0) { - registry.erase>(entity_field); - } - }); - } - - template - requires(std::is_empty_v) - void add_component(ecsact::entt::entity_id entity) { - registry.emplace(entity); - } - - template - requires(!std::is_empty_v) - void add_component(ecsact::entt::entity_id entity, Args&&... args) { - using boost::mp11::mp_with_index; - using ecsact::entt::detail::mp_for_each_available_component; - - auto& comp = registry.emplace(entity, std::forward(args)...); - - mp_for_each_available_component([&](O) { - if constexpr(std::is_same_v, O>) { - using ecsact::entt::detail::beforechange_storage; - beforechange_storage beforechange = { - .value{std::forward(args)...}, - .set = false, - }; - registry.emplace>( - entity, - std::move(beforechange) - ); - } - }); - - constexpr auto fields_info = ecsact::fields_info(); - if constexpr(!fields_info.empty()) { - for(auto& field : fields_info) { - if(field.storage_type == ECSACT_ENTITY_TYPE) { - _add_association(comp, field); - } - } - } - } - - template - void remove_component(ecsact::entt::entity_id entity) { - using ecsact::entt::detail::mp_for_each_available_component; - - constexpr auto fields_info = ecsact::fields_info(); - if constexpr(!fields_info.empty()) { - auto& comp = registry.get(entity); - for(auto& field : fields_info) { - if(field.storage_type == ECSACT_ENTITY_TYPE) { - _remove_association(comp, field); - } - } - } - - registry.erase(entity); - - if constexpr(!std::is_empty_v) { - mp_for_each_available_component([&](O) { - if constexpr(std::is_same_v, O>) { - using ecsact::entt::detail::beforechange_storage; - registry.erase>(entity); - } - }); - } - } - - /** @internal */ - inline auto _create_entity( // - ecsact::entt::entity_id entity - ) -> ecsact::entt::entity_id { - if(registry.valid(entity)) { - return entity; - } - - auto new_entity = registry.create(entity.as_entt()); - // Our valid check above should have allowed this to happen - assert(new_entity == entity.as_entt()); - return new_entity; - } - - /** @internal */ - inline auto _create_entity() -> ecsact::entt::entity_id { - return registry.create(); - } - - inline auto create_entity( // - ecsact::entt::entity_id ecsact_entity_id - ) -> ecsact::entt::entity_id { - std::scoped_lock lk(mutex->get()); - return _create_entity(ecsact_entity_id); - } - - inline auto create_entity() { - std::scoped_lock lk(mutex->get()); - return _create_entity(); - } - - inline void destroy_entity(ecsact::entt::entity_id entity_id) { - registry.destroy(entity_id); - } -}; -} // namespace ecsact_entt_rt diff --git a/ecsact/entt/detail/system_execution_context.hh b/ecsact/entt/detail/system_execution_context.hh index 0667f30..c921f54 100644 --- a/ecsact/entt/detail/system_execution_context.hh +++ b/ecsact/entt/detail/system_execution_context.hh @@ -6,466 +6,80 @@ #include #include #include -#include #include #include "ecsact/runtime/common.h" #include "ecsact/entt/event_markers.hh" -#include "ecsact/entt/system_view.hh" -#include "ecsact/entt/detail/meta_util.hh" +#include "ecsact/entt/entity.hh" -#include "registry_info.hh" +namespace ecsact::entt { +/** + * Opaque index representing a system-likes association where `0` means no + * association. + */ +enum class assoc_index : unsigned; -namespace ecsact_entt_rt { -struct system_execution_context_base; +constexpr auto empty_assoc_index(assoc_index n) -> bool { + return n == assoc_index{}; } -struct ecsact_system_execution_context { - ecsact_system_like_id system_id; - // System execution context implementation. To be casted to specific derived - // templated type. See `system_execution_context` - ecsact_entt_rt::system_execution_context_base* impl; - - // This is set by the system_execution_context::other method. `0` means - // no association. - unsigned association_index = 0; -}; - -namespace ecsact_entt_rt { +constexpr auto underlying_assoc_index(assoc_index n) -> unsigned { + assert(!empty_assoc_index(n)); + return static_cast(n); +} -struct system_execution_context_base { - using cptr_t = struct ::ecsact_system_execution_context*; - using const_cptr_t = const struct ::ecsact_system_execution_context*; +} // namespace ecsact::entt +struct ecsact_system_execution_context { + ecsact_system_like_id id; ecsact::entt::entity_id entity; - const cptr_t parent; - const void* action; + ::entt::registry* registry = nullptr; + const void* action_data = nullptr; - system_execution_context_base( - ::entt::entity entity, - cptr_t parent, - const void* action - ) - : entity(entity), parent(parent), action(action) { - } + // pass in the context to this class that's a pointer + // context(ptr) = parent_ctx(ptr) + // no longer dependent on context ptr + // parent_ctx made a copy of the pointer - virtual ~system_execution_context_base() = default; + ecsact_system_execution_context* parent_ctx = nullptr; - virtual auto other( // - ecsact::entt::entity_id other_entity - ) -> ecsact_system_execution_context* = 0; + virtual ~ecsact_system_execution_context() = default; - virtual auto generate( - int component_count, - ecsact_component_id* component_ids, - const void** components_data + virtual auto action( // + void* out_action_data ) -> void = 0; -}; - -namespace detail {} - -template -struct system_execution_context : system_execution_context_base { - using system_execution_context_base::const_cptr_t; - using system_execution_context_base::cptr_t; - - template - using other_system_execution_context = - std::optional>; - - using caps_info = SystemCapabilitiesInfo; - using package = Package; - using view_type = ecsact::entt::system_or_association_view_t; - using association_views_type = - ecsact::entt::association_views_type; - - using readonly_components = typename caps_info::readonly_components; - using readwrite_components = typename caps_info::readwrite_components; - using adds_components = typename caps_info::adds_components; - using removes_components = typename caps_info::removes_components; - - using gettable_components = boost::mp11::mp_assign< - ::ecsact::mp_list<>, - boost::mp11::mp_unique, - ::ecsact::mp_list<>>>>; - - static_assert( - boost::mp11::mp_size::value == - std::tuple_size_v, - "Invalid associations or association views type" - ); - - ecsact_entt_rt::registry_info& info; - view_type& view; - association_views_type& assoc_views; - - using others_t = boost::mp11::mp_transform< - other_system_execution_context, - boost::mp11::mp_rename>; - - others_t others; - - /** @internal */ - ecsact_system_execution_context _c_ctx; - - system_execution_context( - ecsact_entt_rt::registry_info& info, - ecsact_system_like_id system_id, - view_type& view, - association_views_type& assoc_views, - ::entt::entity entity, - const cptr_t parent, - const void* action - ) - : system_execution_context_base(entity, parent, action) - , info(info) - , view(view) - , assoc_views(assoc_views) { - _c_ctx.system_id = system_id; - _c_ctx.impl = this; - } - - /** - * Pointer for ecsact C system execution - */ - inline cptr_t cptr() noexcept { - return reinterpret_cast(&_c_ctx); - } - - /** - * Pointer for ecsact C system execution - */ - inline const_cptr_t cptr() const noexcept { - return reinterpret_cast(&_c_ctx); - } - - template - void add(const C& component) { - using ecsact::entt::component_added; - using ecsact::entt::component_removed; - using ecsact::entt::detail::pending_add; - using namespace std::string_literals; - -#ifndef NDEBUG - { - const bool already_has_component = - info.registry.template all_of>(entity); - if(already_has_component) { - std::string err_msg = "Cannot call ctx.add() multiple times. "; - err_msg += "Added component: "s + typeid(C).name(); - throw std::runtime_error(err_msg.c_str()); - } - } -#endif - - if constexpr(std::is_empty_v) { - info.registry.template emplace>(entity); - } else { - info.registry.template emplace>(entity, component); - } - - if constexpr(!C::transient) { - if(info.registry.template all_of>(entity)) { - info.registry.template remove>(entity); - } else { - info.registry.template emplace>(entity); - } - } - } - - // void add(ecsact_component_like_id component_id, const void* component_data) - // { using ecsact::entt::detail::mp_for_each_available_component; - // - // mp_for_each_available_component([&](const C&) { - // if(ecsact_id_cast(C::id) == component_id) { - // add(*static_cast(component_data)); - // } - // }); - // } - - template - void remove() { - using ecsact::entt::component_added; - using ecsact::entt::component_removed; - using ecsact::entt::detail::pending_remove; - using ecsact::entt::detail::temp_storage; - -#ifndef NDEBUG - [[maybe_unused]] auto component_name = typeid(C).name(); - - { - const bool already_has_component = - info.registry.template all_of(entity); - if(!already_has_component) { - std::string err_msg = "Cannot call ctx.remove() multiple times. "; - err_msg += "Removed component: "; - err_msg += component_name; - throw std::runtime_error(err_msg.c_str()); - } - } -#endif - if constexpr(!C::transient) { - if(info.registry.template all_of>(entity)) { - info.registry.template remove>(entity); - info.registry.template remove>(entity); - } else { - info.registry.template emplace_or_replace>(entity); - } - if constexpr(!std::is_empty_v) { - auto& temp = info.registry.template storage>(); - - // Store current value of component for the before_remove event later - if(temp.contains(entity)) { - temp.get(entity).value = info.registry.template get(entity); - } else { - temp.emplace(entity, info.registry.template get(entity)); - } - } - } - - // TODO(zaucy): Look into if emplace_or_replace is necessary instead of - // just replace. - info.registry.template emplace_or_replace>(entity); - } - - // void remove(ecsact_component_like_id component_id) { - // using ecsact::entt::detail::mp_for_each_available_component; - // - // mp_for_each_available_component([&](const C&) { - // if(ecsact_id_cast(C::id) == component_id) { - // remove(); - // } - // }); - // } - - template - requires(!std::is_empty_v) - const C& get() { -#ifndef NDEBUG - assert( - info.registry.template all_of(entity) && - "context get called for wrong component type. " - "Check system capabilities." - ); -#endif - - return view.template get(entity); - } - - // void get(ecsact_component_like_id component_id, void* out_component_data) - // { using boost::mp11::mp_assign; using boost::mp11::mp_flatten; - // using boost::mp11::mp_for_each; using boost::mp11::mp_push_back; using - // boost::mp11::mp_unique; using - // ecsact::entt_mp11_util::mp_map_find_value_or; - // - // using readonly_components = typename caps_info::readonly_components; - // using readwrite_components = typename caps_info::readwrite_components; - // using gettable_components = mp_assign< - // ::ecsact::mp_list<>, - // mp_unique, - // ::ecsact::mp_list<>>>>; - // - // #ifndef NDEBUG - // [[maybe_unused]] bool found_gettable_component = false; - // [[maybe_unused]] const char* get_component_name = ""; - // [[maybe_unused]] auto gettable_components_type_name = - // typeid(gettable_components).name(); - // #endif // NDEBUG - // - // mp_for_each([&](C) { - // if(ecsact_id_cast(C::id) == component_id) { - // if constexpr(!std::is_empty_v) { - // C& out_component = *reinterpret_cast(out_component_data); - // out_component = get(); - // #ifndef NDEBUG - // get_component_name = typeid(C).name(); - // found_gettable_component = true; - // #endif // NDEBUG - // } - // } - // }); - // - // #ifndef NDEBUG - // assert(found_gettable_component); - // #endif // NDEBUG - // } - - template - requires(!std::is_empty_v) - void update(const C& c) { - using boost::mp11::mp_any; - using boost::mp11::mp_apply; - using boost::mp11::mp_bind_front; - using boost::mp11::mp_list; - using boost::mp11::mp_transform_q; - using ecsact::entt_mp11_util::mp_map_find_value_or; - - using ecsact::entt::component_changed; - using ecsact::entt::detail::beforechange_storage; - - constexpr bool is_writable = mp_apply< - mp_any, - mp_transform_q< - mp_bind_front>, - typename caps_info::readwrite_components>>::value; - - static_assert(is_writable); - - C& comp = view.template get(entity); - auto& beforechange = view.template get>(entity); - if(!beforechange.set) { - beforechange.value = comp; - beforechange.set = true; - - info.registry.template emplace_or_replace>(entity); - } - comp = c; - } - - // void update( - // ecsact_component_like_id component_id, - // const void* component_data - // ) { - // using boost::mp11::mp_for_each; - // using boost::mp11::mp_list; - // using boost::mp11::mp_map_find; - // using ecsact::entt_mp11_util::mp_map_find_value_or; - // - // using readwrite_components = typename caps_info::readwrite_components; - // - // mp_for_each([&](C) { - // if(ecsact_id_cast(C::id) == component_id) { - // update(*reinterpret_cast(component_data)); - // } - // }); - // } + virtual auto add( // + ecsact_component_like_id component_id, + const void* component_data + ) -> void = 0; - template - bool has() { - return info.registry.template all_of(entity); - } + virtual auto remove( // + ecsact_component_like_id component_id + ) -> void = 0; - bool has(ecsact_component_like_id component_id) { - using boost::mp11::mp_for_each; - using boost::mp11::mp_list; - using boost::mp11::mp_map_find; - using ecsact::entt_mp11_util::mp_map_find_value_or; + virtual auto get( // + ecsact_component_like_id component_id, + void* out_component_data + ) -> void = 0; - using optional_components = typename caps_info::optional_components; + virtual auto update( // + ecsact_component_like_id component_id, + const void* component_data + ) -> void = 0; - bool result = false; - mp_for_each([&](C) { - if(ecsact_cast_id(C::id) == component_id) { - result = has(); - } - }); - return result; - } + virtual auto has( // + ecsact_component_like_id component_id + ) -> bool = 0; - auto generate( + virtual auto generate( // int component_count, ecsact_component_id* component_ids, const void** components_data - ) -> void override { - using ecsact::entt::component_added; - using ecsact::entt::detail::created_entity; - using ecsact::entt::detail::mp_for_each_available_component; - using ecsact::entt::detail::pending_add; - - auto new_entity = info.create_entity(); - info.registry.template emplace( - new_entity, - ecsact_generated_entity - ); - for(int i = 0; component_count > i; ++i) { - auto component_id = component_ids[i]; - auto component_data = components_data[i]; - mp_for_each_available_component([&](const C&) { - if(C::id == component_id) { - if constexpr(std::is_empty_v) { - info.registry.template emplace>(new_entity); - } else { - info.registry.template emplace>( - new_entity, - *static_cast(component_data) - ); - } - - info.registry.template emplace>(new_entity); - } - }); - } - } - - auto other( // - ecsact::entt::entity_id other_entity - ) -> ecsact_system_execution_context* override { - using boost::mp11::mp_first; - using boost::mp11::mp_for_each; - using boost::mp11::mp_second; - using boost::mp11::mp_size; - using boost::mp11::mp_with_index; - - using associations = typename caps_info::associations; - - ecsact_system_execution_context* return_context = nullptr; - - constexpr auto assoc_count = mp_size::value; - - std::size_t assoc_index = 0; - if constexpr(assoc_count > 0) { - mp_for_each([&](Assoc) { - using ComponentT = typename Assoc::component_type; - constexpr std::size_t offset = Assoc::field_offset; - const ComponentT& comp = info.registry.template get(entity); - - ecsact::entt::entity_id field_entity_value = - *reinterpret_cast( - reinterpret_cast(&comp) + offset - ); - - if(field_entity_value == other_entity) { - using boost::mp11::mp_size; - mp_with_index::value>(assoc_index, [&](auto I) { - using other_context_t = std::tuple_element_t; - auto& other_context = std::get(others); - auto& assoc_view = std::get(assoc_views); - - static_assert( - std::tuple_size_v< - typename other_context_t::value_type::association_views_type> == - 0, - "Recursive associations not supported yet." - ); - - if(!other_context) { - static std::tuple<> empty_views; - other_context.emplace( - info, - _c_ctx.system_id, - assoc_view, - empty_views, // see static assertion above - field_entity_value, - parent, - action - ); - - other_context->_c_ctx.association_index = - static_cast(assoc_index + 1); - } - - return_context = &other_context->_c_ctx; - }); + ) -> void = 0; - assoc_index += 1; - } - }); - } + virtual auto parent() -> const ecsact_system_execution_context* = 0; - return return_context; - } + virtual auto other( // + ecsact_entity_id entity + ) -> ecsact_system_execution_context* = 0; }; - -} // namespace ecsact_entt_rt diff --git a/ecsact/entt/entity.hh b/ecsact/entt/entity.hh index 44a36dd..5aa754a 100644 --- a/ecsact/entt/entity.hh +++ b/ecsact/entt/entity.hh @@ -14,6 +14,9 @@ class entity_id { std::int32_t _id; public: + inline entity_id() { + } + inline entity_id(::entt::entity entt_entity) : _id(reinterpret_cast(entt_entity)) { } diff --git a/ecsact/entt/error_check.hh b/ecsact/entt/error_check.hh new file mode 100644 index 0000000..ac3a3d5 --- /dev/null +++ b/ecsact/entt/error_check.hh @@ -0,0 +1,64 @@ +#pragma once + +#include +#include +#include +#include +#include +#include "ecsact/runtime/common.h" +#include "ecsact/runtime/core.h" +#include "entt/entity/registry.hpp" +#include "ecsact/entt/entity.hh" + +namespace ecsact::entt::detail { +template +constexpr bool error_check_unimplemented_by_codegen = false; +} + +namespace ecsact::entt { + +template +auto check_add_component_error( // + ::entt::registry&, + ::ecsact::entt::entity_id, + const C& +) -> ecsact_add_error { + static_assert(detail::error_check_unimplemented_by_codegen, R"( + ----------------------------------------------------------------------------- +| (!) CODEGEN ERROR | +| `check_add_component_error<>` template specialization cannot be found. This | +| is typically generated by ecsact_rt_entt_codegen. | + ----------------------------------------------------------------------------- +)"); +} + +template +auto check_update_component_error( // + ::entt::registry&, + ::ecsact::entt::entity_id, + const C& +) -> ecsact_update_error { + static_assert(detail::error_check_unimplemented_by_codegen, R"( + ----------------------------------------------------------------------------- +| (!) CODEGEN ERROR | +| `check_update_component_error<>` template specialization cannot be found. | +| This is typically generated by ecsact_rt_entt_codegen. | + ----------------------------------------------------------------------------- +)"); +} + +template +auto check_action_error( // + ::entt::registry&, + const A& +) -> ecsact_execute_systems_error { + static_assert(detail::error_check_unimplemented_by_codegen, R"( + ----------------------------------------------------------------------------- +| (!) CODEGEN ERROR | +| `check_action_error<>` template specialization cannot be found. | +| This is typically generated by ecsact_rt_entt_codegen. | + ----------------------------------------------------------------------------- +)"); +} + +} // namespace ecsact::entt diff --git a/ecsact/entt/execution.hh b/ecsact/entt/execution.hh new file mode 100644 index 0000000..8141792 --- /dev/null +++ b/ecsact/entt/execution.hh @@ -0,0 +1,145 @@ +#pragma once + +#include +#include +#include +#include +#include +#include "ecsact/runtime/common.h" +#include "entt/entity/registry.hpp" +#include "ecsact/entt/detail/globals.hh" + +namespace ecsact::entt::detail { +template +constexpr bool unimplemented_by_codegen = false; +} + +namespace ecsact::entt { + +template +auto get_system_impl() -> ecsact_system_execution_impl { + using ecsact::entt::detail::globals::system_impls; + + const auto sys_like_id = ecsact_id_cast(S::id); + + auto sys_impl_itr = system_impls.find(sys_like_id); + if(sys_impl_itr != system_impls.end()) { + return sys_impl_itr->second; + } else { + return nullptr; + } +} + +struct actions_map { + using raw_value_t = + std::unordered_map>; + + raw_value_t raw_value = {}; + + /** + * Collect from execution options passed to `ecsact_execute_systems` + */ + inline auto collect( // + int32_t index, + int32_t execution_count, + const ecsact_execution_options* execution_options_list + ) -> void { + raw_value.clear(); + + if(execution_options_list == nullptr) { + return; + } + + assert(index < execution_count); + auto options = execution_options_list[index]; + + if(options.actions_length == 0) { + return; + } + + auto actions_span = std::span{ + options.actions, + static_cast(options.actions_length), + }; + + for(auto& action : actions_span) { + raw_value[action.action_id].push_back(action.action_data); + } + } + + template + auto as_action_span() -> std::span { + ecsact_action_id action_id = Action::id; + + if(!raw_value.contains(action_id)) { + return {}; + } + + auto& action_data_list = raw_value.at(action_id); + auto action_list_data_ptr = action_data_list.data(); + + return std::span{ + reinterpret_cast(action_list_data_ptr), + action_data_list.size(), + }; + } +}; + +/** + * Executes system implementation for @tp System. + * + * NOTE: Template specializations are made available via the codegen plugin + * `ecsact_rt_entt_codegen`. + */ +template +auto execute_system( // + ::entt::registry& registry, + ecsact_system_execution_context* parent +) -> void { + static_assert(detail::unimplemented_by_codegen, R"( + ----------------------------------------------------------------------------- +| (!) CODEGEN ERROR | +| `execute_system<>` template specialization cannot be found. This is | +| typically generated by ecsact_rt_entt_codegen. | + ----------------------------------------------------------------------------- +)"); +} + +/** + * Executes action implementation for @tp Action for every action in @p + * action_range. + * + * NOTE: Template specializations are made available via the codegen plugin + * `ecsact_rt_entt_codegen`. + */ +template +auto execute_actions( // + ::entt::registry& registry, + std::span action_range +) -> void { + static_assert(detail::unimplemented_by_codegen, R"( + ----------------------------------------------------------------------------- +| (!) CODEGEN ERROR | +| `execute_actions<>` template specialization cannot be found. This is | +| typically generated by ecsact_rt_entt_codegen. | + ----------------------------------------------------------------------------- +)"); +} + +/** + * Allocates EnTT groups and storage if necessary for the system or action. + * NOTE: Template specializations are made available via the codegen plugin + * `ecsact_rt_entt_codegen`. + */ +template +auto prepare_system_like(::entt::registry&) -> void { + static_assert(detail::unimplemented_by_codegen, R"( + ----------------------------------------------------------------------------- +| (!) CODEGEN ERROR | +| `prepare_system_like<>` template specialization cannot be found. This is | +| typically generated by ecsact_rt_entt_codegen. | + ----------------------------------------------------------------------------- +)"); +} + +} // namespace ecsact::entt diff --git a/ecsact/entt/registry_util.hh b/ecsact/entt/registry_util.hh new file mode 100644 index 0000000..bb72897 --- /dev/null +++ b/ecsact/entt/registry_util.hh @@ -0,0 +1,33 @@ +#pragma once + +#include +#include "entt/entity/registry.hpp" +#include "ecsact/entt/detail/globals.hh" + +namespace ecsact::entt { + +inline auto get_registry( // + ecsact_registry_id id +) -> ::entt::registry& { + using ecsact::entt::detail::globals::registries; + + // Check to make sure we're not trying to get a registry that doesn't exist + // or has been destroyed. + assert(registries.contains(id)); + return registries.at(id); +} + +inline auto create_registry() + -> std::tuple { + using ecsact::entt::detail::globals::last_registry_id; + using ecsact::entt::detail::globals::registries; + + auto registry_id = static_cast( + ++reinterpret_cast(last_registry_id) + ); + auto& registry = registries[registry_id]; + + return {registry_id, std::ref(registry)}; +} + +} // namespace ecsact::entt diff --git a/ecsact/entt/runtime.hh b/ecsact/entt/runtime.hh deleted file mode 100644 index 1bb85c7..0000000 --- a/ecsact/entt/runtime.hh +++ /dev/null @@ -1,1357 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "ecsact/entt/detail/meta_util.hh" -#include "ecsact/runtime/common.h" -#include "ecsact/runtime/definitions.h" -#include "ecsact/runtime/core.h" -#include "ecsact/lib.hh" -#include "ecsact/entt/detail/mp11_util.hh" -#include "ecsact/entt/detail/system_execution_context.hh" -#include "ecsact/entt/detail/execution_events_collector.hh" -#include "ecsact/entt/detail/registry_info.hh" -#include "ecsact/entt/event_markers.hh" -#include "ecsact/entt/system_view.hh" -#include "ecsact/entt/trivial_system_impl.hh" - -namespace ecsact::entt { -template -class runtime { - /** - * Checks if type T is listd as one of the actions in the ecsact package or - * one of it's dependencies. - * @returns `true` if T is a component belonging to `package`, `false` - * otherwise. - */ - template - static constexpr bool is_action() { - using boost::mp11::mp_any; - using boost::mp11::mp_append; - using boost::mp11::mp_apply; - using boost::mp11::mp_bind_front; - using boost::mp11::mp_transform_q; - using ecsact::entt::detail::mp_actions_t; - using ecsact::entt::detail::mp_package_dependencies_recursive; - - using actions = typename mp_append< - mp_actions_t, - mp_package_dependencies_recursive>::type; - - return mp_apply< - mp_any, - mp_transform_q< - mp_bind_front>, - actions>>::value; - } - - using registry_info = ecsact_entt_rt::registry_info; - - using registries_map_t = - std::unordered_map; - - using actions_span_t = std::span; - - ecsact_registry_id _last_registry_id{}; - registries_map_t _registries; - -#ifdef ECSACT_ENTT_RUNTIME_DYNAMIC_SYSTEM_IMPLS - using sys_impl_fns_t = - std::unordered_map; - sys_impl_fns_t _sys_impl_fns; -#endif - -public: - template - using system_execution_context = ecsact_entt_rt::system_execution_context< - Package, - ecsact::system_capabilities_info>; - using execution_events_collector = ecsact_entt_rt::execution_events_collector; - using registry_type = ::entt::registry; - using entt_entity_type = typename registry_type::entity_type; - using package = Package; - - ecsact_registry_id create_registry(const char* registry_name) { - using boost::mp11::mp_for_each; - - // Using the index of _registries as an ID - const auto reg_id = - static_cast(static_cast(_last_registry_id) + 1); - - _last_registry_id = reg_id; - - auto itr = _registries.emplace_hint( - _registries.end(), - std::piecewise_construct, - std::forward_as_tuple(reg_id), - std::forward_as_tuple() - ); - - registry_info& info = itr->second; - info.init_registry(); - return reg_id; - } - - void destroy_registry(ecsact_registry_id reg_id) { - _registries.erase(reg_id); - } - - void clear_registry(ecsact_registry_id reg_id) { - using boost::mp11::mp_for_each; - - auto& info = _registries.at(reg_id); - - info.registry = {}; - info.init_registry(); - } - - auto create_entity(ecsact_registry_id reg_id) -> ecsact::entt::entity_id { - std::mutex mutex; - auto& info = _registries.at(reg_id); - info.mutex = mutex; - auto new_entity_id = info.create_entity(); - info.mutex = std::nullopt; - return new_entity_id; - } - - auto ensure_entity( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id - ) -> void { - auto& info = _registries.at(reg_id); - std::mutex mutex; - info.mutex = mutex; - info.create_entity(entity_id); - info.mutex = std::nullopt; - } - - auto entity_exists( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id - ) -> bool { - auto& info = _registries.at(reg_id); - return info.registry.valid(entity_id); - } - - auto destroy_entity( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id - ) -> void { - auto& info = _registries.at(reg_id); - info.destroy_entity(entity_id); - } - - auto count_entities(ecsact_registry_id reg_id) -> int { - auto& info = _registries.at(reg_id); - return static_cast(info.registry.alive()); - } - - auto get_entities( // - ecsact_registry_id reg_id - ) -> std::vector { - auto& info = _registries.at(reg_id); - auto result = std::vector{}; - result.reserve(info.registry.alive()); - info.registry.each([&](auto entity) { result.emplace_back(entity); }); - return result; - } - - void get_entities( - ecsact_registry_id reg_id, - int max_entities_count, - ecsact_entity_id* out_entities, - int* out_entities_count - ) { - auto& info = _registries.at(reg_id); - - int entities_count = static_cast(info.registry.alive()); - max_entities_count = std::min(entities_count, max_entities_count); - - { - // TODO(zaucy): Using `info.registry.each` is poor when max entities - // count is less than the amount of entities in the registry. - // Replace with a different fn such `as info.registry.data` - int i = 0; - info.registry.each([&](auto entity) { - if(i >= max_entities_count) { - return; - } - - out_entities[i] = ecsact::entt::entity_id{entity}; - ++i; - }); - } - - if(out_entities_count != nullptr) { - *out_entities_count = entities_count; - } - } - - template - auto add_component( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id, - const C& component_data - ) -> ecsact_add_error { - auto& info = _registries.at(reg_id); - - constexpr auto fields_info = ecsact::fields_info(); - if constexpr(!fields_info.empty()) { - for(auto& field : fields_info) { - if(field.storage_type == ECSACT_ENTITY_TYPE) { - ecsact::entt::entity_id entity_field = - field.template get(&component_data); - if(!info.registry.valid(entity_field)) { - return ECSACT_ADD_ERR_ENTITY_INVALID; - } - } - } - } - - if constexpr(std::is_empty_v) { - info.template add_component(entity_id); - } else { - info.template add_component(entity_id, component_data); - } - - return ECSACT_ADD_OK; - } - - template - auto add_component( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id - ) -> ecsact_add_error { - return add_component(reg_id, entity_id, ComponentT{}); - } - - auto add_component( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id, - ecsact_component_id component_id, - const void* component_data - ) -> ecsact_add_error { - using ecsact::entt::detail::mp_for_each_available_component; - - ecsact_add_error err = ECSACT_ADD_OK; - - mp_for_each_available_component([&](const C&) { - if(C::id == component_id) { - if constexpr(std::is_empty_v) { - err = add_component(reg_id, entity_id); - } else { - err = add_component( - reg_id, - entity_id, - *static_cast(component_data) - ); - } - } - }); - - return err; - } - - template - auto has_component( // - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id - ) -> bool { - auto& info = _registries.at(reg_id); - - return info.registry.template all_of(entity_id); - } - - auto has_component( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id, - ecsact_component_id component_id - ) -> bool { - using ecsact::entt::detail::mp_for_each_available_component; - - bool result = false; - mp_for_each_available_component([&](const C&) { - if(C::id == component_id) { - result = has_component(reg_id, entity_id); - } - }); - return result; - } - - template - auto get_component( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id - ) -> const ComponentT& { - auto& info = _registries.at(reg_id); - - return info.registry.template get(entity_id); - } - - auto get_component( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id, - ecsact_component_id component_id - ) -> const void* { - using ecsact::entt::detail::mp_for_each_available_component; - - const void* component_data = nullptr; - mp_for_each_available_component([&](const C&) { - if(C::id == component_id) { - if constexpr(std::is_empty_v) { - static C c{}; - component_data = &c; - } else { - const C& comp_ref = get_component(reg_id, entity_id); - component_data = &comp_ref; - } - } - }); - return component_data; - } - - auto count_components( - ecsact_registry_id registry_id, - ecsact::entt::entity_id entity_id - ) -> int { - using ecsact::entt::detail::mp_for_each_available_component; - - int count = 0; - mp_for_each_available_component([&](C) { - if(has_component(registry_id, entity_id)) { - count += 1; - } - }); - return count; - } - - void each_component( - ecsact_registry_id registry_id, - ecsact::entt::entity_id entity_id, - ecsact_each_component_callback callback, - void* callback_user_data - ) { - using ecsact::entt::detail::mp_for_each_available_component; - - mp_for_each_available_component([&](C) { - if(has_component(registry_id, entity_id)) { - if constexpr(std::is_empty_v) { - callback( - static_cast(C::id), - nullptr, - callback_user_data - ); - } else { - callback( - static_cast(C::id), - &get_component(registry_id, entity_id), - callback_user_data - ); - } - } - }); - } - - void get_components( - ecsact_registry_id registry_id, - ecsact::entt::entity_id entity_id, - int max_components_count, - ecsact_component_id* out_component_ids, - const void** out_components_data, - int* out_components_count - ) { - using ecsact::entt::detail::mp_for_each_available_component; - - int index = 0; - mp_for_each_available_component([&](C) { - if(index >= max_components_count) { - return; - } - - if(has_component(registry_id, entity_id)) { - out_component_ids[index] = C::id; - if constexpr(std::is_empty_v) { - out_components_data[index] = nullptr; - } else { - out_components_data[index] = - &get_component(registry_id, entity_id); - } - index += 1; - } - }); - - if(out_components_count != nullptr) { - *out_components_count = index; - } - } - - template - auto update_component( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id, - const ComponentT& component_data - ) -> ecsact_update_error { - auto& info = _registries.at(reg_id); - - constexpr auto fields_info = ecsact::fields_info(); - if constexpr(!fields_info.empty()) { - for(auto& field : fields_info) { - if(field.storage_type == ECSACT_ENTITY_TYPE) { - ecsact::entt::entity_id entity_field = - field.template get(&component_data); - if(!info.registry.valid(entity_field)) { - return ECSACT_UPDATE_ERR_ENTITY_INVALID; - } - } - } - } - - auto& component = info.registry.template get(entity_id); - component = component_data; - - return ECSACT_UPDATE_OK; - } - - auto update_component( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id, - ecsact_component_id component_id, - const void* component_data - ) -> ecsact_update_error { - using ecsact::entt::detail::mp_for_each_available_component; - - std::optional result; - mp_for_each_available_component([&](const C&) { - if(C::id == component_id) { - if constexpr(!std::is_empty_v) { - result = update_component( - reg_id, - entity_id, - *static_cast(component_data) - ); - } - } - }); - return *result; - } - - template - auto remove_component( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id - ) -> void { - auto& info = _registries.at(reg_id); - - info.template remove_component(entity_id); - } - - auto remove_component( - ecsact_registry_id reg_id, - ecsact::entt::entity_id entity_id, - ecsact_component_id component_id - ) -> void { - using ecsact::entt::detail::mp_for_each_available_component; - - mp_for_each_available_component([&](C) { - if(C::id == component_id) { - remove_component(reg_id, entity_id); - } - }); - } - - auto component_size(ecsact_component_id comp_id) -> size_t { - using ecsact::entt::detail::mp_for_each_available_component; - - size_t comp_size = 0; - mp_for_each_available_component([&](C) { - if(C::id == comp_id) { - comp_size = sizeof(C); - } - }); - return comp_size; - } - - auto action_size(ecsact_action_id action_id) -> size_t { - using boost::mp11::mp_for_each; - - size_t act_size = 0; - mp_for_each([&](A) { - if(A::id == action_id) { - act_size = sizeof(A); - } - }); - return act_size; - } - -private: - template - void _apply_pending_adds(registry_info& info) { - using boost::mp11::mp_first; - using boost::mp11::mp_flatten; - using boost::mp11::mp_for_each; - using boost::mp11::mp_iota_c; - using boost::mp11::mp_map_find; - using boost::mp11::mp_push_back; - using boost::mp11::mp_size; - using boost::mp11::mp_transform; - using boost::mp11::mp_unique; - using ecsact::entt::detail::pending_add; - using ecsact::entt_mp11_util::mp_map_find_value_or; - - using caps_info = ecsact::system_capabilities_info; - using associations = typename caps_info::associations; - - using system_generates = mp_transform< - mp_first, - mp_flatten>>; - using adds_components = typename caps_info::adds_components; - static_assert(!std::is_same_v); - - using addables = mp_unique, - ::ecsact::mp_list<>>, - ::ecsact::mp_list<>>>; - - auto for_each_addable = [&](C) { - using boost::mp11::mp_apply; - using boost::mp11::mp_bind_front; - using boost::mp11::mp_transform_q; - using boost::mp11::mp_any; - - auto view = info.registry.template view>(); - if constexpr(std::is_empty_v) { - view.each([&](auto entity) { info.template add_component(entity); }); - } else { - view.each([&](auto entity, auto& component) { - info.template add_component(entity, component.value); - }); - } - - info.registry.template clear>(); - }; - - mp_for_each(for_each_addable); - - mp_for_each::value>>([&](auto I) { - using boost::mp11::mp_at; - using boost::mp11::mp_size_t; - - using Assoc = mp_at>; - using addables = typename Assoc::adds_components; - - mp_for_each(for_each_addable); - }); - } - - template - void _apply_pending_removes(registry_info& info) { - using boost::mp11::mp_for_each; - using boost::mp11::mp_iota_c; - using boost::mp11::mp_size; - using ecsact::entt::detail::pending_remove; - using ecsact::entt_mp11_util::mp_map_find_value_or; - - using caps_info = ecsact::system_capabilities_info; - using associations = typename caps_info::associations; - - using removes_components = typename caps_info::removes_components; - - auto for_each_removable = [&](C) { - auto view = info.registry.template view>(); - view.each([&](auto entity) { info.template remove_component(entity); } - ); - - info.registry.template clear>(); - }; - - mp_for_each(for_each_removable); - - mp_for_each::value>>([&](auto I) { - using boost::mp11::mp_at; - using boost::mp11::mp_size_t; - - using Assoc = mp_at>; - using removes_components = typename Assoc::removes_components; - - mp_for_each(for_each_removable); - }); - } - - template - void _execute_systems_list( - registry_info& info, - ecsact_system_execution_context* parent, - const actions_span_t& actions - ) { - using boost::mp11::mp_for_each; - - mp_for_each([&](SystemPair) { - using boost::mp11::mp_first; - using boost::mp11::mp_second; - using ChildSystemT = mp_first; - using GrandChildSystemsListT = mp_second; - - _execute_system( - info, - parent, - actions - ); - }); - } - - template - void _execute_system_trivial( - registry_info& info, - ecsact_system_execution_context* parent, - const actions_span_t& actions - ) { - using boost::mp11::mp_empty; - const auto system_id = ecsact_id_cast(SystemT::id); - - const void* action_data = nullptr; - - auto each_cb = [&](auto& view, auto& assoc_views, auto entity) { - if constexpr(!mp_empty::value) { - system_execution_context - ctx(info, system_id, view, assoc_views, entity, parent, action_data); - _execute_systems_list(info, ctx.cptr(), actions); - } - }; - - if constexpr(is_action()) { - for(auto& action : actions) { - if(action.action_id == SystemT::id) { - action_data = action.action_data; - trivial_system_impl(info, each_cb); - } - } - } else { - trivial_system_impl(info, each_cb); - } - } - - template - void _execute_system_user_itr( - registry_info& info, - system_view_type& view, - system_association_views_type& assoc_views, - entt_entity_type entity, - ecsact_system_execution_context* parent, - const void* action, - const actions_span_t& actions - ) { - [[maybe_unused]] const auto system_name = typeid(SystemT).name(); - const auto system_id = ecsact_id_cast(SystemT::id); - - system_execution_context - ctx(info, system_id, view, assoc_views, entity, parent, action); - - // Execute the user defined system implementation -#ifdef ECSACT_ENTT_RUNTIME_DYNAMIC_SYSTEM_IMPLS - if(_sys_impl_fns.contains(system_id)) { - _sys_impl_fns.at(system_id)(ctx.cptr()); - } -# ifdef ECSACT_ENTT_RUNTIME_STATIC_SYSTEM_IMPLS - else -# endif -#endif - -#ifdef ECSACT_ENTT_RUNTIME_STATIC_SYSTEM_IMPLS - { - typename SystemT::context sys_cpp_ctx{ctx.cptr()}; - SystemT::impl(sys_cpp_ctx); - } -#endif - - _execute_systems_list(info, ctx.cptr(), actions); - } - - template - void _execute_system_user( - registry_info& info, - ecsact_system_execution_context* parent, - const actions_span_t& actions - ) { - using boost::mp11::mp_for_each; - using boost::mp11::mp_iota_c; - using boost::mp11::mp_size; - using boost::mp11::mp_size_t; - - using caps_info = ecsact::system_capabilities_info; - using associations = typename caps_info::associations; - - auto assoc_views = system_association_views(info.registry); - auto assoc_views_itrs = system_association_views_iterators(assoc_views); - - auto view = system_view(info.registry); - const void* action_data = nullptr; - - auto itr_view = [&] { - for(auto entity : view) { - bool missing_assoc_entities = false; - mp_for_each::value>>([&](auto I) { - using boost::mp11::mp_at; - using boost::mp11::mp_size_t; - - using Assoc = mp_at>; - using ComponentT = typename Assoc::component_type; - - constexpr auto offset = Assoc::field_offset; - - auto& assoc_view = std::get(assoc_views); - auto& assoc_view_itr = std::get(assoc_views_itrs); - if(assoc_view.begin() == assoc_view.end()) { - missing_assoc_entities = true; - return; - } - - assert(view.contains(entity)); - auto& comp = view.template get(entity); - - ecsact::entt::entity_id field_entity_value = - *reinterpret_cast( - reinterpret_cast(&comp) + offset - ); - - bool found_associated_entity = *assoc_view_itr == - field_entity_value.as_entt(); - if(!found_associated_entity) { - assoc_view_itr = assoc_view.begin(); - for(; assoc_view_itr != assoc_view.end(); ++assoc_view_itr) { - found_associated_entity = *assoc_view_itr == - field_entity_value.as_entt(); - if(found_associated_entity) { - break; - } - } - } - - if(!found_associated_entity) { - missing_assoc_entities = true; - } - }); - - if(!missing_assoc_entities) { - _execute_system_user_itr( - info, - view, - assoc_views, - entity, - parent, - action_data, - actions - ); - - mp_for_each::value>>([&](auto I) { - ++std::get(assoc_views_itrs); - }); - } - } - }; - - if constexpr(is_action()) { - for(auto& action : actions) { - if(action.action_id == SystemT::id) { - action_data = action.action_data; - itr_view(); - } - } - } else { - itr_view(); - } - } - - template - void _execute_system( - registry_info& info, - ecsact_system_execution_context* parent, - const actions_span_t& actions - ) { - if constexpr(is_trivial_system()) { - _execute_system_trivial( - info, - parent, - actions - ); - } else { - _execute_system_user(info, parent, actions); - } - - _apply_pending_removes(info); - _apply_pending_adds(info); - } - - void _clear_transients(registry_info& info) { - using boost::mp11::mp_for_each; - - mp_for_each([&](C) { - info.registry.template clear(); - }); - } - - void _sort_components(registry_info& info) { - using ecsact::entt::detail::mp_for_each_available_component; - - mp_for_each_available_component([&](C) { - if constexpr(!std::is_empty_v && !C::transient) { - // Sorting for deterministic order of components when executing - // systems. - // TODO(zaucy): This sort is only necessary for components part of a - // system execution hierarchy greater than 1. - info.registry.template sort([](const C& a, const C& b) -> bool { - return a < b; - }); - } - }); - } - - void _trigger_init_component_events( - registry_info& info, - execution_events_collector& events_collector - ) { - using ecsact::entt::detail::mp_for_each_available_component; - - if(!events_collector.has_init_callback()) { - return; - } - - mp_for_each_available_component([&](C) { - if constexpr(C::transient) { - return; - } - - ::entt::basic_view added_view{ - info.registry.template storage(), - info.registry.template storage>(), - }; - - for(ecsact::entt::entity_id entity : added_view) { - if constexpr(std::is_empty_v) { - events_collector.invoke_init_callback(entity); - } else { - events_collector.invoke_init_callback( - entity, - added_view.template get(entity) - ); - } - } - }); - } - - void _trigger_update_component_events( - registry_info& info, - execution_events_collector& events_collector - ) { - using detail::beforechange_storage; - using ecsact::entt::detail::mp_for_each_available_component; - - if(!events_collector.has_update_callback()) { - return; - } - - mp_for_each_available_component([&](C) { - if constexpr(!C::transient && !std::is_empty_v) { - ::entt::basic_view changed_view{ - info.registry.template storage(), - info.registry.template storage>(), - info.registry.template storage>(), - }; - - for(ecsact::entt::entity_id entity : changed_view) { - auto& before = - changed_view.template get>(entity); - auto& current = changed_view.template get(entity); - - if(before.value != current) { - events_collector.invoke_update_callback(entity, current); - } - before.set = false; - } - } - }); - } - - void _trigger_remove_component_events( - registry_info& info, - execution_events_collector& events_collector - ) { - using ecsact::entt::detail::mp_for_each_available_component; - - if(!events_collector.has_remove_callback()) { - return; - } - - mp_for_each_available_component([&](C) { - if constexpr(C::transient) { - return; - } - - if constexpr(std::is_empty_v) { - ::entt::basic_view removed_view{ - info.registry.template storage>(), - }; - for(ecsact::entt::entity_id entity : removed_view) { - events_collector.invoke_remove_callback(entity); - } - } else { - ::entt::basic_view removed_view{ - info.registry.template storage>(), - info.registry.template storage>(), - }; - for(ecsact::entt::entity_id entity : removed_view) { - events_collector.invoke_remove_callback( - entity, - removed_view.template get>(entity).value - ); - info.registry.template storage>().remove( - entity - ); - } - } - }); - } - - void _trigger_create_entity_event( - registry_info& info, - execution_events_collector& events_collector - ) { - using boost::mp11::mp_for_each; - using ecsact::entt::detail::created_entity; - - if(!events_collector.has_entity_created_callback()) { - return; - } - - ::entt::basic_view created_view{ - info.registry.template storage(), - }; - - for(ecsact::entt::entity_id entity : created_view) { - events_collector.invoke_entity_created_callback( - entity, - created_view.template get(entity).placeholder_entity_id - ); - } - } - - void _trigger_destroy_entity_event( - registry_info& info, - execution_events_collector& events_collector - ) { - using boost::mp11::mp_for_each; - using ecsact::entt::detail::destroyed_entity; - - if(!events_collector.has_entity_destroyed_callback()) { - return; - } - - ::entt::basic_view destroy_view{ - info.registry.template storage(), - }; - - for(ecsact::entt::entity_id entity : destroy_view) { - events_collector.invoke_entity_destroyed_callback(entity); - } - } - - template - void _execute_package_systems(registry_info& info, actions_span_t& actions) { - using boost::mp11::mp_for_each; - using dependencies = typename TargetPackage::dependencies; - - mp_for_each([&](const D&) { - _execute_package_systems(info, actions); - }); - - mp_for_each( - [&](SystemPair) { - using boost::mp11::mp_first; - using boost::mp11::mp_second; - - using SystemT = mp_first; - using ChildSystemsListT = mp_second; - _execute_system(info, nullptr, actions); - } - ); - } - - void _execute_systems(registry_info& info, actions_span_t& actions) { - _execute_package_systems(info, actions); - } - - template - requires(!std::is_empty_v) - void _pre_exec_add_component( - registry_info& info, - entt_entity_type entity, - const C& component - ) { -#ifndef NDEBUG - { - const bool already_has_component = - info.registry.template all_of(entity); - if(already_has_component) { - using namespace std::string_literals; - std::string err_msg = "Entity already has component. "; - err_msg += "Attempted added component: "s + typeid(C).name(); - throw std::runtime_error(err_msg.c_str()); - } - } -#endif - - info.template add_component(entity, component); - info.registry.template emplace>(entity); - } - - template - requires(std::is_empty_v) - void _pre_exec_add_component(registry_info& info, entt_entity_type entity) { -#ifndef NDEBUG - if(info.registry.template all_of(entity)) { - using namespace std::string_literals; - std::string err_msg = "Entity already has component. "; - err_msg += "Attempted added component: "s + typeid(C).name(); - throw std::runtime_error(err_msg.c_str()); - } -#endif - - info.template add_component(entity); - info.registry.template emplace>(entity); - } - - template - requires(!std::is_empty_v) - void _pre_exec_update_component( - registry_info& info, - entt_entity_type entity, - const C& updated_component - ) { - using detail::beforechange_storage; - -#ifndef NDEBUG - if(!info.registry.template all_of(entity)) { - using namespace std::string_literals; - std::string err_msg = "Entity does not have component. "; - err_msg += "Attempted update on component: "s + typeid(C).name(); - throw std::runtime_error(err_msg.c_str()); - } -#endif - - C& component = info.registry.template get(entity); - if(info.registry.template all_of>(entity)) { - auto& before = - info.registry.template get>(entity); - if(!before.set) { - before.value = component; - before.set = true; - } - } else { - info.registry - .template emplace>(entity, component, true); - } - - component = updated_component; - - if(!info.registry.template all_of>(entity)) { - info.registry.template emplace_or_replace>(entity); - } - } - - template - void _pre_exec_remove_component( - registry_info& info, - entt_entity_type entity - ) { - using detail::temp_storage; - - if(info.registry.template all_of>(entity)) { - info.registry.template remove>(entity); - } - if constexpr(!std::is_empty_v) { - auto& temp = info.registry.template storage>(); - - // Store current value of component for the before_remove event later - if(temp.contains(entity)) { - temp.get(entity).value = info.registry.template get(entity); - } else { - temp.emplace(entity, info.registry.template get(entity)); - } - } - - info.template remove_component(entity); - if(!info.registry.template all_of>(entity)) { - info.registry.template emplace>(entity); - } - info.registry.template remove>(entity); - info.registry.template remove>(entity); - } - - void _apply_execution_options( - const ecsact_execution_options& options, - registry_info& info - ) { - using ecsact::entt::detail::created_entity; - using ecsact::entt::detail::destroyed_entity; - using ecsact::entt::detail::mp_for_each_available_component; - - for(int i = 0; options.create_entities_length > i; i++) { - auto entity = info.create_entity(); - info.registry.template emplace( - entity, - options.create_entities[i] - ); - - for(int j = 0; options.create_entities_components_length[i] > j; j++) { - const ecsact_component& comp = options.create_entities_components[i][j]; - - mp_for_each_available_component([&](C) { - if constexpr(C::transient) { - return; - } - - if(comp.component_id == static_cast(C::id)) { - if constexpr(std::is_empty_v) { - _pre_exec_add_component(info, entity); - } else { - _pre_exec_add_component( - info, - entity, - *static_cast(comp.component_data) - ); - } - } - }); - } - } - - for(int i = 0; options.add_components_length > i; ++i) { - const ecsact::entt::entity_id entity = options.add_components_entities[i]; - const ecsact_component& comp = options.add_components[i]; - - mp_for_each_available_component([&](C) { - if constexpr(C::transient) { - return; - } - - if(comp.component_id == static_cast(C::id)) { - if constexpr(std::is_empty_v) { - _pre_exec_add_component(info, entity); - } else { - _pre_exec_add_component( - info, - entity, - *static_cast(comp.component_data) - ); - } - } - }); - } - - for(int i = 0; options.update_components_length > i; ++i) { - const ecsact::entt::entity_id entity = - options.update_components_entities[i]; - const ecsact_component& comp = options.update_components[i]; - - mp_for_each_available_component([&](C) { - if constexpr(C::transient) { - return; - } - - if(comp.component_id == static_cast(C::id)) { - if constexpr(!std::is_empty_v) { - _pre_exec_update_component( - info, - entity, - *static_cast(comp.component_data) - ); - } else { - assert(!std::is_empty_v); - } - } - }); - } - - for(int i = 0; options.remove_components_length > i; ++i) { - const ecsact::entt::entity_id entity = - options.remove_components_entities[i]; - ecsact_component_id component_id = options.remove_components[i]; - - mp_for_each_available_component([&](C) { - if constexpr(C::transient) { - return; - } - - if(component_id == static_cast(C::id)) { - _pre_exec_remove_component(info, entity); - } - }); - } - - for(int i = 0; options.destroy_entities_length > i; ++i) { - const ecsact::entt::entity_id entity = options.destroy_entities[i]; - mp_for_each_available_component([&](C) { - if constexpr(C::transient) { - return; - } - if(info.registry.template all_of(entity)) { - _pre_exec_remove_component(info, entity); - } - }); - info.registry.template emplace(entity); - } - } - - void _clear_event_markers(registry_info& info) { - using ecsact::entt::detail::created_entity; - using ecsact::entt::detail::destroyed_entity; - using ecsact::entt::detail::mp_for_each_available_component; - - mp_for_each_available_component([&](C) { - if constexpr(C::transient) { - return; - } - - info.registry.template clear>(); - }); - - mp_for_each_available_component([&](C) { - if constexpr(C::transient) { - return; - } - - info.registry.template storage>().clear(); - }); - - mp_for_each_available_component([&](C) { - if constexpr(C::transient) { - return; - } - - info.registry.template clear>(); - }); - - info.registry.template clear(); - info.registry.template clear(); - } - - auto _validate_action(ecsact_registry_id registry_id, ecsact_action& action) - -> ecsact_execute_systems_error { - using boost::mp11::mp_for_each; - - auto& info = _registries.at(registry_id); - auto result = ECSACT_EXEC_SYS_OK; - - mp_for_each([&](A) { - if(A::id != action.action_id) { - return; - } - constexpr auto fields_info = ecsact::fields_info(); - for(auto& field : fields_info) { - if(field.storage_type == ECSACT_ENTITY_TYPE) { - ecsact::entt::entity_id entity_field = - field.template get(action.action_data); - - if(!info.registry.valid(entity_field)) { - result = ECSACT_EXEC_SYS_ERR_ACTION_ENTITY_INVALID; - } - } - } - }); - - return result; - } - - auto _destroy_entities(registry_info& info) { - using ecsact::entt::detail::destroyed_entity; - - ::entt::basic_view destroy_view{ - info.registry.template storage(), - }; - - for(ecsact::entt::entity_id entity : destroy_view) { - info.destroy_entity(entity); - } - } - -public: -#ifdef ECSACT_ENTT_RUNTIME_DYNAMIC_SYSTEM_IMPLS - bool set_system_execution_impl( - ecsact_system_like_id system_id, - ecsact_system_execution_impl exec_impl - ) { - if(exec_impl == nullptr) { - _sys_impl_fns.erase(system_id); - } else { - _sys_impl_fns[system_id] = exec_impl; - } - return true; - } -#endif - - ecsact_execute_systems_error execute_systems( - ecsact_registry_id reg_id, - int execution_count, - const ecsact_execution_options* execution_options_list, - std::optional events_collector - ) { - auto mutex = std::mutex{}; - auto& info = _registries.at(reg_id); - auto exec_err = ECSACT_EXEC_SYS_OK; - info.mutex = std::ref(mutex); - - if(execution_options_list != nullptr) { - for(int n = 0; execution_count > n; ++n) { - auto opts = execution_options_list[n]; - for(auto act_idx = 0; opts.actions_length > act_idx; ++act_idx) { - auto& act = opts.actions[act_idx]; - exec_err = _validate_action(reg_id, act); - if(exec_err != ECSACT_EXEC_SYS_OK) { - return exec_err; - } - } - } - } - - for(int n = 0; execution_count > n; ++n) { - actions_span_t actions; - if(execution_options_list != nullptr) { - _apply_execution_options(execution_options_list[n], info); - if(execution_options_list->actions_length > 0) { - actions = std::span( - execution_options_list->actions, - execution_options_list->actions_length - ); - } - } - // _sort_components(info); - _execute_systems(info, actions); - _clear_transients(info); - } - if(events_collector) { - _trigger_create_entity_event(info, *events_collector); - _trigger_init_component_events(info, *events_collector); - _trigger_update_component_events(info, *events_collector); - _trigger_remove_component_events(info, *events_collector); - _trigger_destroy_entity_event(info, *events_collector); - } - _destroy_entities(info); - _clear_event_markers(info); - - info.mutex = std::nullopt; - return exec_err; - } -}; - -} // namespace ecsact::entt diff --git a/ecsact/entt/system_view.hh b/ecsact/entt/system_view.hh deleted file mode 100644 index 7b4ca0f..0000000 --- a/ecsact/entt/system_view.hh +++ /dev/null @@ -1,161 +0,0 @@ -#pragma once - -#include -#include -#include -#include "ecsact/lib.hh" -#include "ecsact/entt/detail/mp11_util.hh" -#include "ecsact/entt/event_markers.hh" -#include "ecsact/entt/detail/internal_markers.hh" -#include "ecsact/cpp/type_info.hh" - -namespace ecsact::entt::detail { -template -auto system_view_helper( - ::ecsact::mp_list, - ::ecsact::mp_list, - ::entt::registry& registry -) { - return registry.view(::entt::exclude); -} -} // namespace ecsact::entt::detail - -namespace ecsact::entt { - -template< - typename SystemCapabilitiesInfo, - typename ExtraGetTypes = ::ecsact::mp_list<>> -using view_get_types = boost::mp11::mp_unique>, - ::ecsact::mp_list<>>>; - -template< - typename SystemCapabilitiesInfo, - typename ExtraExcludeTypes = ::ecsact::mp_list<>> -using view_exclude_types = boost::mp11::mp_unique, - ::ecsact::mp_list<>>>; - -template< - typename SystemCapabilitiesInfo, - typename ExtraGetTypes = ::ecsact::mp_list<>, - typename ExtraExcludeTypes = ::ecsact::mp_list<>> -auto view_from_system_capabilities(::entt::registry& registry) { - return detail::system_view_helper( - view_get_types{}, - view_exclude_types{}, - registry - ); -} - -template< - typename SystemCapabilitiesInfo, - typename ExtraGetTypes = ::ecsact::mp_list<>, - typename ExtraExcludeTypes = ::ecsact::mp_list<>> -using view_from_system_capabilities_type = - decltype(view_from_system_capabilities< - SystemCapabilitiesInfo, - ExtraGetTypes, - ExtraExcludeTypes>(std::declval<::entt::registry&>())); - -template -auto association_view(::entt::registry& registry) { - using ecsact::entt::detail::association; - using assoc_marker_component = - association; - using extra_get_types = ::ecsact::mp_list; - - return view_from_system_capabilities(registry); -} - -template -using association_view_type = - decltype(association_view(std::declval<::entt::registry&>())); - -template -auto association_views(::entt::registry& registry) { - using boost::mp11::mp_empty; - using boost::mp11::mp_for_each; - using boost::mp11::mp_rename; - using boost::mp11::mp_transform; - - using caps_info = SystemCapabilitiesInfo; - using assocs = typename caps_info::associations; - - using result_type = mp_rename< - mp_transform, - std::tuple>; - - result_type result; - - mp_for_each([&](Assoc) { - std::get>(result) = - association_view(registry); - }); - - return result; -} - -template -using association_views_type = - decltype(association_views( - std::declval<::entt::registry&>() - )); - -template -auto system_view(::entt::registry& registry) { - using caps_info = ecsact::system_capabilities_info; - - return view_from_system_capabilities(registry); -} - -template -using system_view_type = - decltype(system_view(std::declval<::entt::registry&>())); - -template -auto system_association_views(::entt::registry& registry) { - using caps_info = ecsact::system_capabilities_info; - - return association_views(registry); -} - -template -using system_association_views_type = - decltype(system_association_views(std::declval<::entt::registry&>()) - ); - -template -auto system_association_views_iterators(AssocViews& assoc_views) { - return std::apply( - [&](auto&... views) { return std::make_tuple(views.begin()...); }, - assoc_views - ); -} - -template -struct system_or_association_view { - using type = view_from_system_capabilities_type; -}; - -template -struct system_or_association_view { - using type = association_view_type; -}; - -template -using system_or_association_view_t = - typename system_or_association_view::type; - -} // namespace ecsact::entt diff --git a/ecsact/entt/trivial_system_impl.hh b/ecsact/entt/trivial_system_impl.hh deleted file mode 100644 index 0aa4703..0000000 --- a/ecsact/entt/trivial_system_impl.hh +++ /dev/null @@ -1,111 +0,0 @@ -#pragma once - -#include -#include "ecsact/cpp/type_info.hh" -#include "ecsact/entt/system_view.hh" - -namespace ecsact::entt { - -template -using is_not_empty = boost::mp11::mp_not>; - -/** - * Checks if a system 'trivial' i.e. there is only a single possible - * meaningful implementation. - */ -template -constexpr bool is_trivial_system() { - using boost::mp11::mp_empty; - using boost::mp11::mp_filter; - using boost::mp11::mp_list; - using boost::mp11::mp_size; - - using caps_info = ecsact::system_capabilities_info; - - using readonly_components = typename caps_info::readonly_components; - using readwrite_components = typename caps_info::readwrite_components; - using writeonly_components = typename caps_info::writeonly_components; - using adds_components = typename caps_info::adds_components; - using removes_components = typename caps_info::removes_components; - using adds_tag_components = mp_filter; - - const bool can_add = !mp_empty::value; - const bool can_remove = !mp_empty::value; - - const bool can_only_add_tag = mp_size::value == - mp_size::value; - - const bool has_only_trivial_modifiers = can_remove || can_only_add_tag; - const bool can_access = !mp_empty::value || - !mp_empty::value || - !mp_empty::value; - - if(!can_access && has_only_trivial_modifiers) { - return true; - } - - const bool cant_write = mp_empty::value && - mp_empty::value; - const bool has_modifiers = can_add || can_remove; - - if(cant_write && !has_modifiers) { - return true; - } - - return false; -} - -template - requires(is_trivial_system()) -void trivial_system_impl( - auto& info, - EachCallbackT&& each_callback = [](auto&, auto&, auto) {} -) { - using boost::mp11::mp_for_each; - using ecsact::entt::component_removed; - using ecsact::entt::detail::pending_remove; - using ecsact::entt::detail::temp_storage; - - using caps_info = ecsact::system_capabilities_info; - using adds_components = typename caps_info::adds_components; - using removes_components = typename caps_info::removes_components; - - auto view = system_view(info.registry); - // TODO(zaucy): Iterate over association views in trivial systems - auto assoc_views = system_association_views(info.registry); - for(auto entity : view) { - mp_for_each([&](C) { - // Only empty components should have made it into this list if the - // `is_trivial_system` constraint succeeded. - static_assert(std::is_empty_v); - info.template add_component(entity); - }); - - mp_for_each([&](C) { - info.registry.template emplace>(entity); - - if constexpr(!C::transient) { - if(info.registry.template all_of>(entity)) { - info.registry.template remove>(entity); - info.registry.template remove>(entity); - } else { - info.registry.template emplace_or_replace>(entity - ); - } - - if constexpr(!std::is_empty_v) { - auto& temp = info.registry.template storage>(); - if(temp.contains(entity)) { - temp.get(entity).value = info.registry.template get(entity); - } else { - temp.emplace(entity, info.registry.template get(entity)); - } - } - } - }); - - each_callback(view, assoc_views, entity); - } -} - -} // namespace ecsact::entt diff --git a/ecsact/entt/wrapper/core.hh b/ecsact/entt/wrapper/core.hh new file mode 100644 index 0000000..01ced54 --- /dev/null +++ b/ecsact/entt/wrapper/core.hh @@ -0,0 +1,392 @@ +#pragma once + +#include +#include +#include "ecsact/runtime/common.h" +#include "ecsact/entt/detail/internal_markers.hh" +#include "ecsact/entt/event_markers.hh" +#include "entt/entity/registry.hpp" +#include "ecsact/entt/registry_util.hh" +#include "ecsact/entt/error_check.hh" +#include "ecsact/entt/detail/execution_events_collector.hh" + +namespace ecsact::entt::wrapper::core { + +template +inline auto has_component( // + ecsact_registry_id registry_id, + ecsact_entity_id entity_id, + [[maybe_unused]] ecsact_component_id component_id +) -> bool { + auto& reg = ecsact::entt::get_registry(registry_id); + auto entity = ecsact::entt::entity_id{entity_id}; + assert(C::id == component_id); + return reg.all_of(entity); +} + +template +inline auto get_component( + ecsact_registry_id registry_id, + ecsact_entity_id entity_id, + [[maybe_unused]] ecsact_component_id component_id +) -> const void* { + auto& reg = ecsact::entt::get_registry(registry_id); + auto entity = ecsact::entt::entity_id{entity_id}; + assert(C::id == component_id); + + const C& comp = reg.get(entity); + return ∁ +} + +template +inline auto add_component( // + ecsact_registry_id registry_id, + ecsact_entity_id entity_id, + [[maybe_unused]] ecsact_component_id component_id, + const void* component_data +) -> ecsact_add_error { + auto& reg = ecsact::entt::get_registry(registry_id); + auto entity = ecsact::entt::entity_id{entity_id}; + assert(C::id == component_id); + + auto err = ecsact::entt::check_add_component_error( + reg, + entity, + *static_cast(component_data) + ); + + if(err == ECSACT_ADD_OK) { + if constexpr(std::is_empty_v) { + reg.emplace(entity); + } else { + reg.emplace>( + entity, + *static_cast(component_data) + ); + reg.emplace(entity, *static_cast(component_data)); + } + } + + return err; +} + +template +inline auto add_component_exec_options( // + ecsact_registry_id registry_id, + ecsact_entity_id entity_id, + [[maybe_unused]] ecsact_component_id component_id, + const void* component_data +) -> ecsact_add_error { + auto& reg = ecsact::entt::get_registry(registry_id); + auto entity = ecsact::entt::entity_id{entity_id}; + assert(C::id == component_id); + + auto err = ecsact::entt::check_add_component_error( + reg, + entity, + *static_cast(component_data) + ); + + assert(err == ECSACT_ADD_OK); + + if(err == ECSACT_ADD_OK) { + if constexpr(std::is_empty_v) { + reg.emplace(entity); + } else { + reg.emplace>( + entity, + *static_cast(component_data) + ); + reg.emplace(entity, *static_cast(component_data)); + } + reg.template emplace_or_replace>(entity); + } + + return err; +} + +template +inline auto update_component( // + ecsact_registry_id registry_id, + ecsact_entity_id entity_id, + [[maybe_unused]] ecsact_component_id component_id, + const void* component_data +) -> ecsact_update_error { + auto& reg = ecsact::entt::get_registry(registry_id); + auto entity = ecsact::entt::entity_id{entity_id}; + assert(C::id == component_id); + static_assert(!std::is_empty_v, "Tag components cannot be updated"); + + auto err = ecsact::entt::check_update_component_error( + reg, + entity, + *static_cast(component_data) + ); + + if(err == ECSACT_UPDATE_OK) { + reg.replace(entity, *static_cast(component_data)); + } + + return err; +} + +template +inline auto update_component_exec_options( // + ecsact_registry_id registry_id, + ecsact_entity_id entity_id, + [[maybe_unused]] ecsact_component_id component_id, + const void* component_data +) -> ecsact_update_error { + auto& reg = ecsact::entt::get_registry(registry_id); + auto entity = ecsact::entt::entity_id{entity_id}; + assert(C::id == component_id); + static_assert(!std::is_empty_v, "Tag components cannot be updated"); + + auto err = ecsact::entt::check_update_component_error( + reg, + entity, + *static_cast(component_data) + ); + + if(err == ECSACT_UPDATE_OK) { + reg.replace(entity, *static_cast(component_data)); + reg.template emplace_or_replace>(entity); + } + + return err; +} + +template +auto remove_component( + ecsact_registry_id registry_id, + ecsact_entity_id entity_id, + [[maybe_unused]] ecsact_component_id component_id +) -> void { + auto& reg = ecsact::entt::get_registry(registry_id); + auto entity = ecsact::entt::entity_id{entity_id}; + assert(C::id == component_id); + + reg.remove(entity); + if constexpr(!std::is_empty_v) { + reg.remove>(entity); + } + reg.template remove>(entity); + reg.template remove>(entity); + reg.template emplace_or_replace>(entity); +} + +template +auto remove_component_exec_options( + ecsact_registry_id registry_id, + ecsact_entity_id entity_id, + [[maybe_unused]] ecsact_component_id component_id +) -> void { + using ecsact::entt::detail::pending_remove; + + auto& reg = ecsact::entt::get_registry(registry_id); + auto entity = ecsact::entt::entity_id{entity_id}; + assert(C::id == component_id); + + if constexpr(!std::is_empty_v) { + reg.template emplace_or_replace>( + entity, + reg.template get(entity) + ); + } + + reg.template erase(entity); + reg.template remove>(entity); + reg.template remove>(entity); + reg.template emplace_or_replace>(entity); + + if constexpr(!std::is_empty_v) { + reg.template remove>(entity); + } +} + +inline auto _trigger_create_entity_events( + ecsact_registry_id registry_id, + ecsact::entt::detail::execution_events_collector& events_collector +) -> void { + using ecsact::entt::detail::created_entity; + + auto& reg = ecsact::entt::get_registry(registry_id); + + ::entt::basic_view created_view{ + reg.template storage(), + }; + + for(ecsact::entt::entity_id entity : created_view) { + events_collector.invoke_entity_created_callback( + entity, + created_view.template get(entity).placeholder_entity_id + ); + } +} + +inline auto _trigger_destroy_entity_events( + ecsact_registry_id registry_id, + ecsact::entt::detail::execution_events_collector& events_collector +) -> void { + auto& reg = ecsact::entt::get_registry(registry_id); + + using ecsact::entt::detail::destroyed_entity; + + if(!events_collector.has_entity_destroyed_callback()) { + return; + } + + ::entt::basic_view destroy_view{ + reg.template storage(), + }; + + for(ecsact::entt::entity_id entity : destroy_view) { + events_collector.invoke_entity_destroyed_callback(entity); + } +} + +template +auto _trigger_init_component_event( + ecsact_registry_id registry_id, + ecsact::entt::detail::execution_events_collector& events_collector +) -> void { + auto& reg = ecsact::entt::get_registry(registry_id); + + if(!events_collector.has_init_callback()) { + return; + } + + if constexpr(C::transient) { + return; + } + + ::entt::basic_view added_view{ + reg.template storage(), + reg.template storage>(), + }; + + for(ecsact::entt::entity_id entity : added_view) { + if constexpr(std::is_empty_v) { + events_collector.invoke_init_callback(entity); + } else { + events_collector.invoke_init_callback( + entity, + added_view.template get(entity) + ); + } + } +} + +template +auto _trigger_update_component_event( + ecsact_registry_id registry_id, + ecsact::entt::detail::execution_events_collector& events_collector +) -> void { + using ecsact::entt::component_changed; + using ecsact::entt::detail::beforechange_storage; + + if(!events_collector.has_update_callback()) { + return; + } + + auto& reg = ecsact::entt::get_registry(registry_id); + if constexpr(!C::transient && !std::is_empty_v) { + ::entt::basic_view changed_view{ + reg.template storage(), + reg.template storage>(), + reg.template storage>(), + }; + + for(ecsact::entt::entity_id entity : changed_view) { + auto& before = changed_view.template get>(entity); + auto& current = changed_view.template get(entity); + + if(before.value != current) { + events_collector.invoke_update_callback(entity, current); + } + } + } +} + +template +auto _trigger_remove_component_event( + ecsact_registry_id registry_id, + ecsact::entt::detail::execution_events_collector& events_collector +) -> void { + auto& reg = ecsact::entt::get_registry(registry_id); + + if(!events_collector.has_remove_callback()) { + return; + } + + if constexpr(C::transient) { + return; + } + + if constexpr(std::is_empty_v) { + ::entt::basic_view removed_view{ + reg.template storage>(), + }; + for(ecsact::entt::entity_id entity : removed_view) { + events_collector.invoke_remove_callback(entity); + } + } else { + ::entt::basic_view removed_view{ + reg.template storage>(), + reg.template storage>(), + }; + for(ecsact::entt::entity_id entity : removed_view) { + events_collector.invoke_remove_callback( + entity, + removed_view.template get>(entity).value + ); + } + + reg.template clear>(); + } +} + +auto check_action_error_t( + ecsact_registry_id registry_id, + const void* action_data +) -> ecsact_execute_systems_error; + +template +inline auto check_action_error( + ecsact_registry_id registry_id, + const void* action_data +) -> ecsact_execute_systems_error { + auto& reg = ecsact::entt::get_registry(registry_id); + + auto action = *static_cast(action_data); + auto result = ecsact::entt::check_action_error(reg, action); + + return result; +} + +template +inline auto clear_component(ecsact_registry_id registry_id) -> void { + auto& reg = ecsact::entt::get_registry(registry_id); + + reg.clear>(); + reg.clear>(); + reg.clear>(); +} + +template +inline auto prepare_component(ecsact_registry_id registry_id) -> void { + using namespace ecsact::entt; + + auto& reg = ecsact::entt::get_registry(registry_id); + + reg.template storage(); + reg.template storage>(); + reg.template storage>(); + + if constexpr(!std::is_empty_v) { + reg.storage>(); + reg.template storage>(); + } +} + +} // namespace ecsact::entt::wrapper::core diff --git a/ecsact/entt/wrapper/dynamic.hh b/ecsact/entt/wrapper/dynamic.hh new file mode 100644 index 0000000..f66e28b --- /dev/null +++ b/ecsact/entt/wrapper/dynamic.hh @@ -0,0 +1,200 @@ +#pragma once + +#include +#include +#include "ecsact/entt/entity.hh" +#include "entt/entity/registry.hpp" +#include "ecsact/entt/registry_util.hh" +#include "ecsact/entt/error_check.hh" +#include "ecsact/entt/detail/internal_markers.hh" +#include "ecsact/entt/event_markers.hh" +#include "ecsact/entt/detail/system_execution_context.hh" + +namespace ecsact::entt::wrapper::dynamic { + +template +auto context_add( + ecsact_system_execution_context* context, + [[maybe_unused]] ecsact_component_like_id component_id, + const void* component_data +) -> void { + using ecsact::entt::component_added; + using ecsact::entt::component_removed; + using ecsact::entt::detail::beforechange_storage; + using ecsact::entt::detail::beforeremove_storage; + using ecsact::entt::detail::pending_add; + + assert(ecsact_id_cast(C::id) == component_id); + + auto entity = context->entity; + auto& registry = *context->registry; + + if constexpr(std::is_empty_v) { + registry.template emplace_or_replace>(entity); + } else { + const C* component = static_cast(component_data); + registry.template emplace_or_replace>(entity, *component); + + auto& before_change = + registry.template emplace_or_replace>(entity); + + before_change.value = *component; + + registry.template remove>(entity); + } + + if constexpr(!C::transient) { + if(registry.template all_of>(entity)) { + registry.template erase>(entity); + } else { + registry.template emplace_or_replace>(entity); + } + } +} + +template +auto component_add_trivial( + ::entt::registry& registry, + ecsact::entt::entity_id entity_id +) -> void { + using ecsact::entt::component_added; + using ecsact::entt::component_removed; + using ecsact::entt::detail::beforechange_storage; + using ecsact::entt::detail::beforeremove_storage; + using ecsact::entt::detail::pending_add; + + registry.template emplace_or_replace>(entity_id); + + if constexpr(!C::transient) { + if(registry.template all_of>(entity_id)) { + registry.template erase>(entity_id); + } else { + registry.template emplace_or_replace>(entity_id); + } + } +} + +template +auto context_remove( + ecsact_system_execution_context* context, + [[maybe_unused]] ecsact_component_like_id component_id +) -> void { + assert(ecsact_id_cast(C::id) == component_id); + + using ecsact::entt::component_changed; + using ecsact::entt::component_removed; + using ecsact::entt::detail::beforeremove_storage; + using ecsact::entt::detail::pending_remove; + + auto entity = context->entity; + auto& registry = *context->registry; + + registry.template remove>(entity); + registry.template remove>(entity); + registry.template emplace_or_replace>(entity); + registry.template emplace_or_replace>(entity); + + // Stop here (tag) + if constexpr(!std::is_empty_v) { + auto component = registry.template get(entity); + + auto& remove_storage = + registry.template emplace_or_replace>(entity); + + remove_storage.value = component; + } +} + +template +auto component_remove_trivial( + ::entt::registry& registry, + ecsact::entt::entity_id entity_id +) -> void { + using ecsact::entt::component_changed; + using ecsact::entt::component_removed; + using ecsact::entt::detail::beforeremove_storage; + using ecsact::entt::detail::pending_remove; + + registry.template remove>(entity_id); + registry.template remove>(entity_id); + registry.template emplace_or_replace>(entity_id); + registry.template emplace_or_replace>(entity_id); + + if constexpr(!std::is_empty_v) { + auto component = registry.template get(entity_id); + + auto& remove_storage = + registry.template emplace_or_replace>(entity_id); + + remove_storage.value = component; + } +} + +template +auto context_get( + ecsact_system_execution_context* context, + [[maybe_unused]] ecsact_component_like_id component_id, + void* out_component_data +) -> void { + auto entity = context->entity; + const auto& registry = *context->registry; + + assert(registry.template any_of(entity)); + + *static_cast(out_component_data) = registry.template get(entity); +} + +template +auto context_update( + ecsact_system_execution_context* context, + [[maybe_unused]] ecsact_component_like_id component_id, + const void* in_component_data +) -> void { + using ecsact::entt::component_changed; + // TODO(Kelwan): for remove, beforeremove_storage + + auto entity = context->entity; + auto& registry = *context->registry; + + const auto& in_component = *static_cast(in_component_data); + + auto& current_component = registry.template get(entity); + current_component = in_component; + registry.template emplace_or_replace>(entity); +} + +template +auto context_has( + ecsact_system_execution_context* context, + [[maybe_unused]] ecsact_component_like_id component_id +) -> bool { + auto entity = context->entity; + auto& registry = *context->registry; + + return registry.template any_of(entity); +} + +template +auto context_generate_add( + ecsact_system_execution_context* context, + ecsact_component_id component_id, + const void* component_data, + ecsact::entt::entity_id entity +) -> void { + using ecsact::entt::detail::created_entity; + using ecsact::entt::detail::pending_add; + + auto& registry = *context->registry; + + registry.template emplace( + entity, + created_entity{ + .placeholder_entity_id = ecsact_generated_entity, + } + ); + + const auto& component = *static_cast(component_data); + registry.template emplace>(entity, component); +} + +} // namespace ecsact::entt::wrapper::dynamic diff --git a/rt_entt_codegen/BUILD.bazel b/rt_entt_codegen/BUILD.bazel new file mode 100644 index 0000000..8288c0e --- /dev/null +++ b/rt_entt_codegen/BUILD.bazel @@ -0,0 +1,22 @@ +load("@ecsact_lang_cpp//:codegen_plugin.bzl", "cc_ecsact_codegen_plugin") +load("//bazel:copts.bzl", "copts") + +package(default_visibility = ["//visibility:public"]) + +cc_ecsact_codegen_plugin( + name = "ecsact_rt_entt_codegen", + srcs = ["rt_entt_codegen.cc"], + copts = copts, + output_extension = "rt_entt.cc", + deps = [ + "//rt_entt_codegen/core", + "//rt_entt_codegen/shared:ecsact_entt_details", + "//rt_entt_codegen/shared:util", + "@ecsact_lang_cpp//:support", + ], +) + +alias( + name = "rt_entt_codegen", + actual = ":ecsact_rt_entt_codegen", +) diff --git a/rt_entt_codegen/core/BUILD.bazel b/rt_entt_codegen/core/BUILD.bazel new file mode 100644 index 0000000..423c99a --- /dev/null +++ b/rt_entt_codegen/core/BUILD.bazel @@ -0,0 +1,47 @@ +load("@rules_cc//cc:defs.bzl", "cc_library") +load("//bazel:copts.bzl", "copts") + +cc_library( + name = "core_internal", + hdrs = ["core.hh"], + copts = copts, + visibility = ["//rt_entt_codegen:__pkg__"], + deps = ["//rt_entt_codegen/shared:ecsact_entt_details"], +) + +# keep sorted +_CORE_CODEGEN_METHODS = { + "execute_systems": [], + "create_registry": [], + "init_registry_storage": [], + "events": [], + "print_sys_exec": [ + "//rt_entt_codegen/shared:comps_with_caps", + "@entt//:entt", + "@ecsact_rt_entt//:lib", + ], + "check_error_template_specializations": [], + "execution_options": [], +} + +[cc_library( + name = method, + srcs = ["{}.cc".format(method)], + copts = copts, + defines = ["ECSACT_META_API_LOAD_AT_RUNTIME"], + deps = _CORE_CODEGEN_METHODS[method] + [ + ":core_internal", + "//rt_entt_codegen/shared:util", + "@ecsact_codegen//:plugin", + "@ecsact_lang_cpp//:cpp_codegen_plugin_util", + "@ecsact_lang_cpp//:support", + "@ecsact_runtime//:meta", + ], +) for method in _CORE_CODEGEN_METHODS] + +cc_library( + name = "core", + copts = copts, + visibility = ["//rt_entt_codegen:__pkg__"], + deps = [":core_internal"] + [":{}".format(method) for method in _CORE_CODEGEN_METHODS], +) diff --git a/rt_entt_codegen/core/check_error_template_specializations.cc b/rt_entt_codegen/core/check_error_template_specializations.cc new file mode 100644 index 0000000..bf22d68 --- /dev/null +++ b/rt_entt_codegen/core/check_error_template_specializations.cc @@ -0,0 +1,157 @@ +#include "core.hh" + +#include +#include "ecsact/runtime/meta.hh" +#include "ecsact/lang-support/lang-cc.hh" +#include "ecsact/cpp_codegen_plugin_util.hh" +#include "rt_entt_codegen/shared/util.hh" + +template +static auto for_each_entity_field(CompositeID composite_id, Fn&& fn) { + for(auto field_id : ecsact::meta::get_field_ids(composite_id)) { + auto field_type = ecsact_meta_field_type( + ecsact_id_cast(composite_id), + field_id + ); + + const auto is_entity_field = // + field_type.kind == ECSACT_TYPE_KIND_BUILTIN && + field_type.type.builtin == ECSACT_ENTITY_TYPE; + + if(!is_entity_field) { + continue; + } + + auto entity_field_name = std::string{ecsact_meta_field_name( + ecsact_id_cast(composite_id), + field_id + )}; + + fn(entity_field_name); + } +} + +static auto print_check_add_component_error_template_specialization( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_details& details, + ecsact_component_id component_id +) -> void { + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::cpp_codegen_plugin_util::method_printer; + using ecsact::rt_entt_codegen::util::decl_cpp_ident; + + auto cpp_component_ident = decl_cpp_ident(component_id); + + const auto method_name = + "ecsact::entt::check_add_component_error<" + cpp_component_ident + ">"; + + ctx.write("template<>\n"); + + auto printer = // + method_printer{ctx, method_name} + .parameter("::entt::registry&", "registry") + .parameter("::ecsact::entt::entity_id", "entity") + .parameter(cpp_component_ident + " const&", "component") + .return_type("ecsact_add_error"); + + for_each_entity_field(component_id, [&](auto field_name) { + auto field_var = "ecsact::entt::entity_id{component." + field_name + "}"; + block(ctx, "if(!registry.valid(" + field_var + "))", [&] { + ctx.write("return ECSACT_ADD_ERR_ENTITY_INVALID;\n"); + }); + }); + + ctx.write("return ECSACT_ADD_OK;"); +} + +static auto print_check_update_component_error_template_specialization( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_details& details, + ecsact_component_id component_id +) -> void { + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::cpp_codegen_plugin_util::method_printer; + using ecsact::rt_entt_codegen::util::decl_cpp_ident; + + auto cpp_component_ident = decl_cpp_ident(component_id); + + const auto method_name = + "ecsact::entt::check_update_component_error<" + cpp_component_ident + ">"; + + ctx.write("template<>\n"); + + auto printer = // + method_printer{ctx, method_name} + .parameter("::entt::registry&", "registry") + .parameter("::ecsact::entt::entity_id", "entity") + .parameter(cpp_component_ident + " const&", "component") + .return_type("ecsact_update_error"); + + for_each_entity_field(component_id, [&](auto field_name) { + auto field_var = "ecsact::entt::entity_id{component." + field_name + "}"; + block(ctx, "if(!registry.valid(" + field_var + "))", [&] { + ctx.write("return ECSACT_UPDATE_ERR_ENTITY_INVALID;\n"); + }); + }); + + ctx.write("return ECSACT_UPDATE_OK;"); +} + +static auto print_check_action_error_template_specialization( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_details& details, + ecsact_action_id action_id +) -> void { + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::cpp_codegen_plugin_util::method_printer; + using ecsact::rt_entt_codegen::util::decl_cpp_ident; + + auto cpp_action_ident = decl_cpp_ident(action_id); + + const auto method_name = + "ecsact::entt::check_action_error<" + cpp_action_ident + ">"; + + ctx.write("template<>\n"); + + auto printer = // + method_printer{ctx, method_name} + .parameter("::entt::registry&", "registry") + .parameter(cpp_action_ident + " const&", "action") + .return_type("ecsact_execute_systems_error"); + + ctx.write("auto err = ECSACT_EXEC_SYS_OK;\n"); + + for_each_entity_field(action_id, [&](auto field_name) { + auto field_var = "ecsact::entt::entity_id{action." + field_name + "}"; + block(ctx, "if(!registry.valid(" + field_var + "))", [&] { + ctx.write("return ECSACT_EXEC_SYS_ERR_ACTION_ENTITY_INVALID;\n"); + }); + }); + + ctx.write("return err;\n"); +} + +auto ecsact::rt_entt_codegen::core::print_check_error_template_specializations( + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void { + for(auto comp_id : details.all_components) { + print_check_add_component_error_template_specialization( + ctx, + details, + comp_id + ); + } + + for(auto comp_id : details.all_components) { + print_check_update_component_error_template_specialization( + ctx, + details, + comp_id + ); + } + + for(auto action_id : details.all_actions) { + print_check_action_error_template_specialization(ctx, details, action_id); + } +} diff --git a/rt_entt_codegen/core/core.hh b/rt_entt_codegen/core/core.hh new file mode 100644 index 0000000..82c5d61 --- /dev/null +++ b/rt_entt_codegen/core/core.hh @@ -0,0 +1,54 @@ +#pragma once + +#include "ecsact/runtime/meta.hh" +#include "ecsact/codegen/plugin.hh" +#include "rt_entt_codegen/shared/ecsact_entt_details.hh" + +namespace ecsact::rt_entt_codegen::core { + +auto print_execute_systems( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void; + +auto print_execution_options( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void; + +auto print_create_registry( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void; + +auto print_init_registry_storage( // + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_details& details +) -> void; + +auto print_execute_system_like_template_specializations( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void; + +auto print_check_error_template_specializations( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void; + +auto print_trigger_ecsact_events_minimal( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void; + +auto print_trigger_ecsact_events_all( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void; + +auto print_cleanup_ecsact_component_events( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void; + +} // namespace ecsact::rt_entt_codegen::core diff --git a/rt_entt_codegen/core/create_registry.cc b/rt_entt_codegen/core/create_registry.cc new file mode 100644 index 0000000..efc9849 --- /dev/null +++ b/rt_entt_codegen/core/create_registry.cc @@ -0,0 +1,33 @@ +#include "core.hh" + +#include "ecsact/lang-support/lang-cc.hh" +#include "rt_entt_codegen/shared/util.hh" + +auto ecsact::rt_entt_codegen::core::print_create_registry( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "ecsact_create_registry"} + .parameter("const char*", "registry_name") + .return_type("ecsact_registry_id"); + + ctx.write("auto&& [registry_id, reg] = ecsact::entt::create_registry();\n\n"); + + if(!details.group_systems.empty()) { + ctx.write( + "// These groups were automatically selected based on the input ecsact " + "files\n" + ); + for(auto sys_id : details.group_systems) { + auto decl_name = ecsact::meta::decl_full_name(sys_id); + } + } + + ctx.write("ecsact_init_registry_storage(registry_id);\n"); + + ctx.write("\nreturn registry_id;"); +} diff --git a/rt_entt_codegen/core/events.cc b/rt_entt_codegen/core/events.cc new file mode 100644 index 0000000..01e1e18 --- /dev/null +++ b/rt_entt_codegen/core/events.cc @@ -0,0 +1,138 @@ +#include "core.hh" +#include "algorithm" + +#include "ecsact/lang-support/lang-cc.hh" +#include "rt_entt_codegen/core/core.hh" +#include "rt_entt_codegen/shared/util.hh" +#include "ecsact/cpp_codegen_plugin_util.hh" +#include "rt_entt_codegen/shared/comps_with_caps.hh" + +static auto print_trigger_event_fn_call( + ecsact::codegen_plugin_context& ctx, + std::string event_name, + std::string component_name +) { + ctx.write( + "::ecsact::entt::wrapper::core::_trigger_", + event_name, + "_component_event<::", + component_name, + ">(registry_id, events_collector);\n" + ); +} + +auto ecsact::rt_entt_codegen::core::print_trigger_ecsact_events_minimal( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "trigger_component_events_minimal"} + .parameter("ecsact_registry_id", "registry_id") + .parameter( + "ecsact::entt::detail::execution_events_collector&", + "events_collector" + ) + .return_type("void"); + + for(auto comp_id : comps_with_caps(details, ECSACT_SYS_CAP_ADDS)) { + auto type_name = cpp_identifier(decl_full_name(comp_id)); + print_trigger_event_fn_call(ctx, "init", type_name); + } + + for(auto comp_id : comps_with_caps(details, ECSACT_SYS_CAP_WRITEONLY)) { + auto type_name = cpp_identifier(decl_full_name(comp_id)); + print_trigger_event_fn_call(ctx, "update", type_name); + } + + for(auto comp_id : comps_with_caps(details, ECSACT_SYS_CAP_REMOVES)) { + auto type_name = cpp_identifier(decl_full_name(comp_id)); + print_trigger_event_fn_call(ctx, "remove", type_name); + } + + ctx.write( + "ecsact::entt::wrapper::core::_trigger_create_entity_events(registry_id, " + "events_collector);\n" + ); + + ctx.write( + "ecsact::entt::wrapper::core::_trigger_destroy_entity_events(registry_id, " + "events_collector);\n" + ); +} + +auto ecsact::rt_entt_codegen::core::print_trigger_ecsact_events_all( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "trigger_component_events_all"} + .parameter("ecsact_registry_id", "registry_id") + .parameter( + "ecsact::entt::detail::execution_events_collector&", + "events_collector" + ) + .return_type("void"); + + for(auto component_id : details.all_components) { + auto type_name = cpp_identifier(decl_full_name(component_id)); + print_trigger_event_fn_call(ctx, "init", type_name); + } + for(auto component_id : details.all_components) { + auto type_name = cpp_identifier(decl_full_name(component_id)); + + auto count = + ecsact_meta_count_fields(ecsact_id_cast(component_id) + ); + + if(count > 0) { + print_trigger_event_fn_call(ctx, "update", type_name); + } + } + for(auto component_id : details.all_components) { + auto type_name = cpp_identifier(decl_full_name(component_id)); + print_trigger_event_fn_call(ctx, "remove", type_name); + } + + ctx.write( + "ecsact::entt::wrapper::core::_trigger_create_entity_events(registry_id, " + "events_collector);\n" + ); + + ctx.write( + "ecsact::entt::wrapper::core::_trigger_destroy_entity_events(registry_id, " + "events_collector);\n" + ); +} + +auto ecsact::rt_entt_codegen::core::print_cleanup_ecsact_component_events( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "cleanup_component_events"} + .parameter("ecsact_registry_id", "registry_id") + .return_type("void"); + + for(auto component_id : details.all_components) { + auto type_name = cpp_identifier(decl_full_name(component_id)); + ctx.write( + "ecsact::entt::wrapper::core::clear_component", + "<::", + type_name, + ">(registry_id);\n" + ); + } +} diff --git a/rt_entt_codegen/core/execute_systems.cc b/rt_entt_codegen/core/execute_systems.cc new file mode 100644 index 0000000..1956ce9 --- /dev/null +++ b/rt_entt_codegen/core/execute_systems.cc @@ -0,0 +1,95 @@ +#include "core.hh" + +#include "ecsact/lang-support/lang-cc.hh" +#include "rt_entt_codegen/shared/util.hh" +#include "ecsact/cpp_codegen_plugin_util.hh" + +constexpr auto METHOD_BODY_TOP = R"( +auto& reg = ecsact::entt::get_registry(registry_id); +auto actions = ecsact::entt::actions_map{}; +)"; + +auto ecsact::rt_entt_codegen::core::print_execute_systems( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "ecsact_execute_systems"} + .parameter("ecsact_registry_id", "registry_id") + .parameter("int", "execution_count") + .parameter("const ecsact_execution_options*", "execution_options_list") + .parameter("const ecsact_execution_events_collector*", "evc") + .return_type("ecsact_execute_systems_error"); + + ctx.write(METHOD_BODY_TOP); + + ctx.write("\n"); + + ctx.write("for(auto i=0; execution_count > i; ++i) {"); + ctx.indentation += 1; + ctx.write("\n"); + + ctx.write("actions.collect(i, execution_count, execution_options_list);\n"); + + block(ctx, "if(execution_options_list != nullptr)", [&] { + ctx.write( + "auto err = handle_execution_options(registry_id, " + "execution_options_list[i]);\n\n" + ); + block(ctx, "if(err != ECSACT_EXEC_SYS_OK)", [&] { + ctx.write("return err;"); + }); + }); + + for(auto sys_like : details.top_execution_order) { + auto cpp_decl_name = cpp_identifier(ecsact::meta::decl_full_name(sys_like)); + + if(details.is_action(sys_like)) { + ctx.write( + "ecsact::entt::execute_actions<", + cpp_decl_name, + ">(reg, actions.as_action_span<", + cpp_decl_name, + ">());\n" + ); + } else if(details.is_system(sys_like)) { + ctx.write( + "ecsact::entt::execute_system<", + cpp_decl_name, + ">(reg, nullptr);\n" + ); + } else { + ctx.write("// ??? unhandled ??? ", cpp_decl_name, "\n"); + } + } + + ctx.indentation -= 1; + ctx.write("\n}\n\n"); + + block(ctx, "if(evc != nullptr)", [&] { + ctx.write( + "auto events_collector = " + "ecsact::entt::detail::execution_events_collector{};\n" + ); + ctx.write("events_collector.target = evc;\n\n"); + + block(ctx, "if(execution_options_list == nullptr)", [&] { + ctx.write( + "trigger_component_events_minimal(registry_id, events_collector);\n\n" + ); + }); + + block(ctx, "else", [&] { + ctx.write( + "trigger_component_events_all(registry_id, events_collector);\n\n" + ); + }); + ctx.write("cleanup_component_events(registry_id);\n"); + }); + + ctx.write("return ECSACT_EXEC_SYS_OK;"); +} diff --git a/rt_entt_codegen/core/execution_options.cc b/rt_entt_codegen/core/execution_options.cc new file mode 100644 index 0000000..636e02d --- /dev/null +++ b/rt_entt_codegen/core/execution_options.cc @@ -0,0 +1,215 @@ +#include "core.hh" + +#include "ecsact/lang-support/lang-cc.hh" +#include "rt_entt_codegen/shared/util.hh" +#include "ecsact/cpp_codegen_plugin_util.hh" + +inline auto print_static_maps( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + + block( + ctx, + "static const auto execution_add_fns =" + "std::unordered_map\n", + [&] { + for(auto component_id : details.all_components) { + auto type_name = cpp_identifier(decl_full_name(component_id)); + ctx.write( + "{", + "ecsact_id_cast(", + type_name, + "::id), ", + "&ecsact::entt::wrapper::core::add_component_exec_options", + "<::", + type_name, + "> },\n" + ); + } + } + ); + ctx.write(";\n"); + + block( + ctx, + "static const auto execution_update_fns=" + "std::unordered_map\n", + [&] { + for(auto component_id : details.all_components) { + auto type_name = cpp_identifier(decl_full_name(component_id)); + auto field_count = ecsact_meta_count_fields( + ecsact_id_cast(component_id) + ); + if(field_count == 0) { + continue; + } + ctx.write( + "{", + "ecsact_id_cast(", + type_name, + "::id), ", + "&ecsact::entt::wrapper::core::update_component_exec_options" + "<::", + type_name, + "> },\n" + ); + } + } + ); + ctx.write(";\n"); + + block( + ctx, + "static const auto execution_remove_fns= " + "std::unordered_map\n", + [&] { + for(auto component_id : details.all_components) { + auto type_name = cpp_identifier(decl_full_name(component_id)); + ctx.write( + "{", + "ecsact_id_cast(", + type_name, + "::id), ", + "&ecsact::entt::wrapper::core::remove_component_exec_options", + "<::", + type_name, + "> },\n" + ); + } + } + ); + ctx.write(";\n"); + + block( + ctx, + "static const auto action_error_fns= " + "std::unordered_map\n", + [&] { + for(auto action_id : details.all_actions) { + auto type_name = cpp_identifier(decl_full_name(action_id)); + ctx.write( + "{", + "ecsact_id_cast(", + type_name, + "::id), ", + "&ecsact::entt::wrapper::core::check_action_error", + "<::", + type_name, + "> },\n" + ); + } + } + ); + + ctx.write(";\n"); +} + +auto ecsact::rt_entt_codegen::core::print_execution_options( + codegen_plugin_context& ctx, + const ecsact_entt_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "handle_execution_options"} + .parameter("ecsact_registry_id", "registry_id") + .parameter("const ecsact_execution_options&", "options") + .return_type("ecsact_execute_systems_error"); + + print_static_maps(ctx, details); + ctx.write("auto& reg = ecsact::entt::get_registry(registry_id);\n"); + + block(ctx, "for(int i = 0; i < options.actions_length; i++)", [&] { + ctx.write("auto action = options.actions[i];\n"); + ctx.write( + "auto err = action_error_fns.at(action.action_id)(registry_id, " + "action.action_data);\n" + ); + block(ctx, "if(err != ECSACT_EXEC_SYS_OK)", [&] { + ctx.write("return err;\n"); + }); + }); + + block(ctx, "for(int i = 0; i < options.create_entities_length; i++)", [&] { + ctx.write("auto entity = ecsact::entt::entity_id(reg.create());\n"); + ctx.write( + "reg.template emplace(entity, " + "options.create_entities[i]);\n" + ); + block( + ctx, + "for(int j = 0; j < options.create_entities_components_length[i]; " + "j++)", + [&] { + ctx.write( + "auto& component = options.create_entities_components[i][j];\n" + ); + ctx.write( + "execution_add_fns.at(ecsact_id_cast(" + "component.component_id))(registry_id, " + "entity, " + "component.component_id, component.component_data);\n" + ); + } + ); + }); + + block(ctx, "for(int i = 0; i < options.add_components_length; i++)", [&] { + ctx.write("auto& component = options.add_components[i];\n"); + ctx.write("auto entity = options.add_components_entities[i];\n\n"); + + ctx.write( + "execution_add_fns.at(ecsact_id_cast(" + "component.component_id))(registry_id, " + "ecsact::entt::entity_id(entity), " + "component.component_id, component.component_data);\n" + ); + }); + + block(ctx, "for(int i = 0; i < options.update_components_length; i++)", [&] { + ctx.write("auto& component = options.update_components[i];\n"); + ctx.write("auto entity = options.update_components_entities[i];\n\n"); + + ctx.write( + "execution_update_fns.at(ecsact_id_cast(" + "component.component_id))(registry_id, " + "ecsact::entt::entity_id(entity), " + "component.component_id, component.component_data);\n" + ); + }); + + block(ctx, "for(int i = 0; i < options.remove_components_length; i++)", [&] { + ctx.write("auto& component_id = options.remove_components[i];\n"); + ctx.write("auto entity = options.remove_components_entities[i];\n\n"); + + ctx.write( + "execution_remove_fns.at(ecsact_id_cast(" + "component_id))(registry_id, " + "ecsact::entt::entity_id(entity), " + "component_id);\n\n" + ); + }); + + block(ctx, "for(int i = 0; i < options.destroy_entities_length; i++)", [&] { + ctx.write("auto entity = options.destroy_entities[i];\n"); + ctx.write("reg.destroy(ecsact::entt::entity_id(entity));\n"); + ctx.write( + "reg.template " + "emplace(ecsact::entt::entity_id(" + "entity));\n" + ); + }); + + ctx.write("return ECSACT_EXEC_SYS_OK;\n"); +} diff --git a/rt_entt_codegen/core/init_registry_storage.cc b/rt_entt_codegen/core/init_registry_storage.cc new file mode 100644 index 0000000..816140c --- /dev/null +++ b/rt_entt_codegen/core/init_registry_storage.cc @@ -0,0 +1,29 @@ +#include "core.hh" + +#include "ecsact/lang-support/lang-cc.hh" +#include "rt_entt_codegen/shared/util.hh" + +auto ecsact::rt_entt_codegen::core::print_init_registry_storage( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "ecsact_init_registry_storage"} + .parameter("ecsact_registry_id", "registry_id") + .return_type("void"); + + for(auto comp_id : details.all_components) { + auto cpp_comp_name = cpp_identifier(decl_full_name(comp_id)); + + ctx.write( + "ecsact::entt::wrapper::core::prepare_component<", + cpp_comp_name, + ">(registry_id)" + ); + ctx.write(";\n"); + } +} diff --git a/rt_entt_codegen/core/print_sys_exec.cc b/rt_entt_codegen/core/print_sys_exec.cc new file mode 100644 index 0000000..0390194 --- /dev/null +++ b/rt_entt_codegen/core/print_sys_exec.cc @@ -0,0 +1,1105 @@ +#include "core.hh" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "ecsact/runtime/meta.hh" +#include "ecsact/runtime/common.h" +#include "ecsact/lang-support/lang-cc.hh" +#include "ecsact/cpp_codegen_plugin_util.hh" +#include "rt_entt_codegen/shared/ecsact_entt_details.hh" +#include "rt_entt_codegen/shared/util.hh" +#include "rt_entt_codegen/shared/comps_with_caps.hh" + +using capability_t = + std::unordered_map; + +template +concept system_or_action = + std::same_as || std::same_as; + +using ecsact::rt_entt_codegen::system_comps_with_caps; + +template +static auto print_sys_exec_ctx_action( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details, + T system_id +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "action"} + .parameter("void*", "out_action_data") + .return_type("void final"); + + if constexpr(std::is_same_v) { + auto action_name = cpp_identifier(decl_full_name(system_id)); + + ctx.write( + "*static_cast<", + action_name, + "*>(out_action_data) = *static_cast(action_data);\n" + ); + } else { + // TODO(Kelwan): Trying to access .action() without a valid action + ctx.write("\n"); + } +} + +static auto print_sys_exec_ctx_add( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details, + capability_t sys_caps +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::is_transient_component; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "add"} + .parameter("ecsact_component_like_id", "component_id") + .parameter("const void*", "component_data") + .return_type("void final"); + + auto adds_comps = std::vector{}; + + for(auto&& [comp_id, sys_cap] : sys_caps) { + if(is_transient_component(ctx.package_id, comp_id)) { + continue; + } + if((ECSACT_SYS_CAP_ADDS & sys_cap) == ECSACT_SYS_CAP_ADDS) { + adds_comps.push_back(comp_id); + } + } + + if(adds_comps.empty()) { + // TODO(Kelwan): Handle unexpected behaviour + return; + } else if(adds_comps.size() == 1) { + const auto& comp_id = adds_comps.front(); + auto type_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "wrapper::dynamic::context_add<::", + type_name, + ">(this, ecsact_id_cast(", + type_name, + "::id),", + "component_data); \n" + ); + return; + } + block( + ctx, + "static const auto add_fns = " + "std::unordered_map", + [&] { + for(int i = 0; i < adds_comps.size(); ++i) { + const auto comp_id = adds_comps[i]; + auto type_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "{", + "ecsact_id_cast(", + type_name, + "::id), ", + "&wrapper::dynamic::context_add<::", + type_name, + "> }," + ); + } + } + ); + + ctx.write(";\n"); + + ctx.write("add_fns.at(component_id)(this, component_id, component_data);\n"); +} + +static auto print_sys_exec_ctx_remove( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details, + capability_t sys_caps +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::is_transient_component; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "remove"} + .parameter("ecsact_component_like_id", "component_id") + .return_type("void final"); + + auto remove_comps = std::vector{}; + + for(auto&& [comp_id, sys_cap] : sys_caps) { + if(is_transient_component(ctx.package_id, comp_id)) { + continue; + } + if((ECSACT_SYS_CAP_REMOVES & sys_cap) == ECSACT_SYS_CAP_REMOVES) { + remove_comps.push_back(comp_id); + } + } + + ctx.write("// Size: ", remove_comps.size(), "\n"); + + if(remove_comps.size() == 0) { + // TODO(Kelwan): Handle unexpected behaviour + return; + } + if(remove_comps.size() == 1) { + const auto& comp_id = remove_comps.front(); + + auto type_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "wrapper::dynamic::context_remove<::", + type_name, + ">(this, ecsact_id_cast(", + type_name, + "::id));\n" + ); + return; + } + block( + ctx, + "static const auto remove_fns = " + "std::unordered_map", + [&] { + for(int i = 0; i < remove_comps.size(); ++i) { + const auto comp_id = remove_comps[i]; + auto type_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "{ecsact_id_cast(", + type_name, + "::id), &wrapper::dynamic::context_remove<", + type_name, + "> }," + ); + } + } + ); + ctx.write(";\n"); +} + +static auto print_sys_exec_ctx_get( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::is_transient_component; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "get"} + .parameter("ecsact_component_like_id", "component_id") + .parameter("void*", "out_component_data") + .return_type("void final"); + + if(details.readable_comps.size() == 0) { + return; + } + + std::vector get_components; + + for(auto comp_id : details.readable_comps) { + if(is_transient_component(ctx.package_id, comp_id)) { + continue; + } + get_components.insert(get_components.end(), comp_id); + } + + if(get_components.size() == 0) { + return; + } + + // Shortcut - ignore component ID because we only have 1 + if(details.get_comps.size() == 1 && details.readable_comps.size() == 1) { + auto comp_id = *details.get_comps.begin(); + auto cpp_comp_full_name = cpp_identifier(decl_full_name(comp_id)); + + ctx.write( + "assert(ecsact_id_cast(::", + cpp_comp_full_name, + "::id) == component_id);\n" + ); + ctx.write( + "*static_cast<::", + cpp_comp_full_name, + "*>(out_component_data) = view->get<::", + cpp_comp_full_name, + ">(entity);" + ); + return; + } + block( + ctx, + "static const auto get_fns = " + "std::unordered_map", + [&] { + for(const auto comp_id : details.readable_comps) { + auto type_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "{ecsact_id_cast(", + type_name, + "::id), &wrapper::dynamic::context_get<", + type_name, + "> }," + ); + } + } + ); + ctx.write(";\n"); + + ctx.write( + "get_fns.at(component_id)(this, component_id, out_component_data);\n" + ); +} + +static auto print_sys_exec_ctx_update( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "update"} + .parameter("ecsact_component_like_id", "component_id") + .parameter("const void*", "component_data") + .return_type("void final"); + + if(details.writable_comps.size() == 0) { + return; + } + + if(details.writable_comps.size() == 1) { + const auto& comp_id = *details.writable_comps.begin(); + auto type_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "wrapper::dynamic::context_update<::", + type_name, + ">(this, ecsact_id_cast(", + type_name, + "::id),", + "component_data); \n" + ); + return; + } + block( + ctx, + "static const auto update_fns = " + "std::unordered_map", + [&] { + for(const auto comp_id : details.readable_comps) { + auto type_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "{ecsact_id_cast(", + type_name, + "::id), &wrapper::dynamic::context_update<", + type_name, + "> }," + ); + } + } + ); + ctx.write(";\n"); + + ctx.write("update_fns.at(component_id)(this, component_id, component_data);\n" + ); +} + +static auto print_sys_exec_ctx_has( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::method_printer; + + // use optional_comps + + auto printer = // + method_printer{ctx, "has"} + .parameter("ecsact_component_like_id", "component_id") + .return_type("bool final"); + + if(details.writable_comps.size() == 0) { + ctx.write("return false;"); + return; + } + + if(details.writable_comps.size() == 1) { + const auto& comp_id = *details.writable_comps.begin(); + auto type_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "return wrapper::dynamic::context_has<::", + type_name, + ">(this, ecsact_id_cast(", + type_name, + "::id));\n" + ); + } + block( + ctx, + "static const auto has_fns = " + "std::unordered_map", + [&] { + for(const auto comp_id : details.readable_comps) { + auto type_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "{ecsact_id_cast(", + type_name, + "::id), &wrapper::dynamic::context_has<", + type_name, + "> }," + ); + } + } + ); + ctx.write(";\n"); + + ctx.write("return has_fns.at(component_id)(this, component_id);\n"); +} + +static auto print_sys_exec_ctx_generate( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "generate"} + .parameter("int", "component_count") + .parameter("ecsact_component_id*", "component_ids") + .parameter("const void**", "components_data") + .return_type("void final"); + + if(details.generate_comps.size() == 0) { + // TODO (Kelwan): Handle undefined behaviour + return; + } + block( + ctx, + "static const auto generate_fns = " + "std::unordered_map", + [&] { + for(const auto& component : details.generate_comps) { + for(const auto& [comp_id, requirements] : component) { + auto type_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "{", + type_name, + "::id, &wrapper::dynamic::context_generate_add<", + type_name, + "> }," + ); + } + } + } + ); + ctx.write(";\n"); + + // NOTE(Kelwan): Multiple generates blocks are allowed in Ecsact systems but + // currently the interpreter won't allow this. More testing required after the + // issue is resolved https://github.com/ecsact-dev/ecsact_interpret/issues/185 + ctx.write("auto entity = this->registry->create();\n"); + + block(ctx, "for(int i = 0; i < component_count; ++i)", [&] { + ctx.write("const auto component_id = component_ids[i];\n"); + ctx.write("const void* component_data = components_data[i];\n"); + + ctx.write( + "generate_fns.at(component_id)(this, component_id, " + "component_data, entity);\n" + ); + }); +} + +static auto print_sys_exec_ctx_parent(ecsact::codegen_plugin_context& ctx) + -> void { + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "parent"} // + .return_type("const ecsact_system_execution_context* final"); + + ctx.write("return this->parent_ctx;\n"); +} + +static auto print_sys_exec_ctx_other( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details +) -> void { + using ecsact::rt_entt_codegen::util::method_printer; + + auto printer = // + method_printer{ctx, "other"} + .parameter("ecsact_entity_id", "entity") + .return_type("ecsact_system_execution_context* final"); + + if(details.association_details.size() == 0) { + // TODO(Kelwan): Handle undefined behaviour + // Attempt to access other without association + + ctx.write("return nullptr;"); + return; + } + + ctx.write( + "if(other_contexts.contains(entity)) {\n", + "return other_contexts.at(entity);\n}\n" + ); + // NOTE(Kelwan): Maybe we handle undefined behaviour here too + ctx.write("return nullptr;"); +} + +static auto comma_delim(auto&& range) -> std::string { + auto result = std::string{}; + + for(auto str : range) { + result += str + ", "; + } + + if(result.ends_with(", ")) { + result = result.substr(0, result.size() - 2); + } + + return result; +} + +static auto make_view( // + ecsact::codegen_plugin_context& ctx, + auto&& view_var_name, + auto&& registry_var_name, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details +) -> void { + using namespace std::string_literals; + using ecsact::rt_entt_codegen::util::decl_cpp_ident; + using std::views::transform; + + ctx.write("auto ", view_var_name, " = ", registry_var_name, ".view<"); + + ctx.write(comma_delim( + details.get_comps | transform(decl_cpp_ident) + )); + + ctx.write(">("); + + if(!details.exclude_comps.empty()) { + ctx.write( + "::entt::exclude<", + comma_delim( + details.exclude_comps | + transform(decl_cpp_ident) + ), + ">" + ); + } + + ctx.write(");\n"); +} + +template +static auto print_apply_pendings( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details, + SystemLikeID sys_like_id, + std::string registry_name +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::meta::decl_full_name; + + auto add_comps = system_comps_with_caps(sys_like_id, ECSACT_SYS_CAP_ADDS); + + for(auto comp_id : add_comps) { + auto comp_name = cpp_identifier(decl_full_name(comp_id)); + + ctx.write( + "ecsact::entt::detail::apply_pending_add<", + comp_name, + ">(", + registry_name, + ");\n" + ); + } + + auto remove_comps = + system_comps_with_caps(sys_like_id, ECSACT_SYS_CAP_REMOVES); + + for(auto comp_id : remove_comps) { + auto comp_name = cpp_identifier(decl_full_name(comp_id)); + + ctx.write( + "ecsact::entt::detail::apply_pending_remove<", + comp_name, + ">(", + registry_name, + ");\n" + ); + } + + for(auto generate_details : details.generate_comps) { + for(auto&& [comp_id, generate] : generate_details) { + auto comp_name = cpp_identifier(decl_full_name(comp_id)); + + ctx.write( + "ecsact::entt::detail::apply_pending_add<", + comp_name, + ">(", + registry_name, + ");\n" + ); + } + } +} + +template +struct print_ecsact_entt_system_details_options { + SystemLikeID sys_like_id; + std::string system_name; + std::string registry_var_name; + std::string parent_context_var_name; + /// only set if system is an action + std::optional action_var_name; +}; + +template +static auto print_ecsact_entt_system_details( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details, + const print_ecsact_entt_system_details_options options +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + using ecsact::meta::get_child_system_ids; + using ecsact::rt_entt_codegen::ecsact_entt_system_details; + using ecsact::rt_entt_codegen::util::method_printer; + + auto sys_caps = ecsact::meta::system_capabilities(options.sys_like_id); + + make_view(ctx, "view", options.registry_var_name, details); + block(ctx, "struct : ecsact_system_execution_context ", [&] { + ctx.write("decltype(view)* view;\n"); + + ctx.write( + "std::unordered_map " + "other_contexts;\n\n" + ); + + if(options.action_var_name) { + ctx.write("const void* action_data = nullptr;\n"); + } + + ctx.write("\n"); + print_sys_exec_ctx_action(ctx, details, options.sys_like_id); + print_sys_exec_ctx_add(ctx, details, sys_caps); + print_sys_exec_ctx_remove(ctx, details, sys_caps); + print_sys_exec_ctx_get(ctx, details); + print_sys_exec_ctx_update(ctx, details); + print_sys_exec_ctx_has(ctx, details); + print_sys_exec_ctx_generate(ctx, details); + print_sys_exec_ctx_parent(ctx); + print_sys_exec_ctx_other(ctx, details); + }); + ctx.write("context;\n\n"); + + ctx.write("context.registry = &", options.registry_var_name, ";\n"); + if(options.action_var_name) { + ctx.write("context.action_data = ", *options.action_var_name, ";\n\n"); + } + + ctx.write( + "context.id = ecsact_id_cast(::", + options.system_name, + "::id);\n" + ); + ctx.write("context.parent_ctx = ", options.parent_context_var_name, ";\n"); + ctx.write("context.view = &view;\n\n"); + + auto other_view_names = print_other_contexts(ctx, details, options); + + block(ctx, "for(ecsact::entt::entity_id entity : view)", [&] { + // value = comp var name + auto components_with_entity_fields = + std::map{}; + + int comp_iter = 0; + + for(auto [ids, view_name] : other_view_names) { + if(!components_with_entity_fields.contains(ids.component_like_id)) { + components_with_entity_fields[ids.component_like_id] = + "assoc_comp_" + std::to_string(comp_iter++); + } + } + + for(auto&& [comp_like_id, comp_var] : components_with_entity_fields) { + auto comp_name = cpp_identifier(decl_full_name(comp_like_id)); + ctx.write("auto ", comp_var, " = view.get<", comp_name, ">(entity);\n"); + } + + ctx.write("context.entity = entity;\n"); + + for(auto child_sys_id : get_child_system_ids(options.sys_like_id)) { + auto child_details = ecsact_entt_system_details::from_system_like( + ecsact_id_cast(child_sys_id) + ); + + auto child_system_name = cpp_identifier(decl_full_name(child_sys_id)); + + ctx.write( + "ecsact::entt::execute_system<::" + child_system_name + ">(", + options.registry_var_name, + ", &context);\n" + ); + } + ctx.write("\n"); + + if(!other_view_names.empty()) { + ctx.write("auto found_assoc_entities = 0;\n"); + } + + for(auto [ids, view_name] : other_view_names) { + auto field_name = ecsact_meta_field_name( + ecsact_id_cast(ids.component_like_id), + ids.field_id + ); + + auto entity_field_access = + components_with_entity_fields.at(ids.component_like_id) + "." + + field_name; + + auto view_itr_name = view_name + "_itr"; + ctx.write( + "auto ", + view_itr_name, + " = ", + view_name, + ".find(ecsact::entt::entity_id{", + entity_field_access, + "});\n" + ); + + ctx.write( + "if(", + view_itr_name, + " == ", + view_name, + ".end()) { continue; }\n" + ); + + ctx.write("found_assoc_entities += 1;\n"); + + auto context_name = create_context_var_name(ids.component_like_id); + ctx.write(context_name, ".entity = ", entity_field_access, ";\n"); + + ctx.write( + "context.other_contexts.insert(context.other_contexts.end(), " + "std::pair(", + context_name, + ".entity, &", + context_name, + "));\n" + ); + } + + if(other_view_names.empty()) { + ctx.write("system_impl(&context);\n"); + } else { + // we need to check if we found any invalid associations + block( + ctx, + "if(found_assoc_entities == " + + std::to_string(other_view_names.size()) + ")", + [&] { ctx.write("system_impl(&context);\n"); } + ); + } + + ctx.write("\n"); + }); + + print_apply_pendings( + ctx, + details, + options.sys_like_id, + options.registry_var_name + ); +} + +static auto get_unique_view_name() -> std::string { + static int counter = 0; + return "view" + std::to_string(counter++); +} + +template +static auto create_context_struct_name(ComponentLikeID component_like_id) + -> std::string { + using ecsact::cc_lang_support::c_identifier; + auto full_name = + c_identifier(ecsact::meta::decl_full_name(component_like_id)); + return full_name + "Struct"; +} + +template +static auto create_context_var_name(ComponentLikeID component_like_id) + -> std::string { + using ecsact::cc_lang_support::c_identifier; + auto full_name = + c_identifier(ecsact::meta::decl_full_name(component_like_id)); + return full_name + "_context"; +} + +template +static auto print_other_contexts( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details, + const print_ecsact_entt_system_details_options options +) -> std::map { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::component_name; + using ecsact::meta::decl_full_name; + using ecsact::meta::get_child_system_ids; + using ecsact::rt_entt_codegen::ecsact_entt_system_details; + using ecsact::rt_entt_codegen::other_key; + using ecsact::rt_entt_codegen::util::method_printer; + + std::map other_views; + + for(auto& assoc_detail : details.association_details) { + auto struct_name = create_context_struct_name(assoc_detail.component_id); + auto struct_header = struct_name + " : ecsact_system_execution_context "; + + auto view_name = get_unique_view_name(); + other_views.insert( + other_views.end(), + std::pair( + other_key{ + .component_like_id = assoc_detail.component_id, + .field_id = assoc_detail.field_id // + }, + view_name + ) + ); + + auto other_details = + ecsact_entt_system_details::from_capabilities(assoc_detail.capabilities); + + make_view(ctx, view_name, "registry", other_details); + + block(ctx, "struct " + struct_header, [&] { + using namespace std::string_literals; + using ecsact::rt_entt_codegen::util::decl_cpp_ident; + using std::views::transform; + + ctx.write("decltype(", view_name, ")* view;\n"); + ctx.write("\n"); + print_sys_exec_ctx_action(ctx, other_details, options.sys_like_id); + print_sys_exec_ctx_add(ctx, other_details, assoc_detail.capabilities); + print_sys_exec_ctx_remove(ctx, other_details, assoc_detail.capabilities); + print_sys_exec_ctx_get(ctx, other_details); + print_sys_exec_ctx_update(ctx, other_details); + print_sys_exec_ctx_has(ctx, other_details); + print_sys_exec_ctx_generate(ctx, other_details); + print_sys_exec_ctx_parent(ctx); + print_sys_exec_ctx_other(ctx, other_details); + }); + ctx.write(";\n\n"); + + auto type_name = cpp_identifier(decl_full_name(assoc_detail.component_id)); + auto context_name = create_context_var_name(assoc_detail.component_id); + + ctx.write(struct_name, " ", context_name, ";\n\n"); + + ctx.write(context_name, ".view = &", view_name, ";\n"); + ctx.write(context_name, ".parent_ctx = nullptr;\n\n"); + ctx.write(context_name, ".registry = &", options.registry_var_name, ";\n"); + } + + return other_views; +} + +static auto is_trivial_system(ecsact_system_like_id system_id) -> bool { + using ecsact::meta::get_field_ids; + using ecsact::meta::system_capabilities; + + auto sys_capabilities = system_capabilities(system_id); + + auto non_trivial_capabilities = std::array{ + ECSACT_SYS_CAP_READONLY, + ECSACT_SYS_CAP_READWRITE, + ECSACT_SYS_CAP_WRITEONLY, + ECSACT_SYS_CAP_OPTIONAL_READONLY, + ECSACT_SYS_CAP_OPTIONAL_READWRITE, + ECSACT_SYS_CAP_OPTIONAL_WRITEONLY, + }; + + bool has_non_tag_adds = false; + bool has_read_write = false; + for(auto&& [comp_id, sys_cap] : sys_capabilities) { + if((ECSACT_SYS_CAP_ADDS & sys_cap) == ECSACT_SYS_CAP_ADDS) { + auto field_count = + ecsact_meta_count_fields(ecsact_id_cast(comp_id)); + if(field_count > 0) { + has_non_tag_adds = true; + } + } + + for(auto non_trivial_cap : non_trivial_capabilities) { + if((non_trivial_cap & sys_cap) == sys_cap) { + has_read_write = true; + } + } + } + if(has_non_tag_adds || has_read_write) { + return false; + } + return true; +} + +static auto print_trivial_system_like( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details, + ecsact_system_like_id system_like_id +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + + using ecsact::meta::decl_full_name; + using ecsact::meta::get_field_ids; + using ecsact::meta::system_capabilities; + + using ecsact::rt_entt_codegen::util::method_printer; + + auto system_name = cpp_identifier(decl_full_name(system_like_id)); + + auto sys_capabilities = system_capabilities(system_like_id); + + ctx.write("template<>\n"); + auto printer = // + method_printer{ctx, "ecsact::entt::execute_system<::" + system_name + ">"} + .parameter("::entt::registry&", "registry") + .parameter("ecsact_system_execution_context*", "parent_context") + .return_type("void"); + + make_view(ctx, "view", "registry", details); + + block(ctx, "for(auto entity : view)", [&] { + for(auto&& [comp_id, capability] : sys_capabilities) { + auto type_name = cpp_identifier(decl_full_name(comp_id)); + + if((ECSACT_SYS_CAP_ADDS & capability) == ECSACT_SYS_CAP_ADDS) { + ctx.write( + "ecsact::entt::wrapper::dynamic::component_add_trivial<", + type_name, + ">(registry, " + "ecsact::entt::entity_id(entity);\n" + ); + } + if((ECSACT_SYS_CAP_REMOVES & capability) == ECSACT_SYS_CAP_REMOVES) { + ctx.write( + "ecsact::entt::wrapper::dynamic::component_remove_trivial<", + type_name, + ">(registry, " + "ecsact::entt::entity_id(entity));\n" + ); + } + } + }); + ctx.write("\n"); + print_apply_pendings(ctx, details, system_like_id, "registry"); +} + +static auto print_execute_system_template_specialization( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details, + ecsact_system_id system_id +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + + using ecsact::rt_entt_codegen::util::method_printer; + + if(is_trivial_system(ecsact_id_cast(system_id))) { + print_trivial_system_like( + ctx, + details, + ecsact_id_cast(system_id) + ); + return; + } + auto system_name = cpp_identifier(decl_full_name(system_id)); + + ctx.write("template<>\n"); + auto printer = // + method_printer{ctx, "ecsact::entt::execute_system<::" + system_name + ">"} + .parameter("::entt::registry&", "registry") + .parameter("ecsact_system_execution_context*", "parent_context") + .return_type("void"); + + ctx.write( + "auto system_impl = ::ecsact::entt::get_system_impl<::", + system_name, + ">();\n" + ); + + block(ctx, "if(system_impl == nullptr)", [&] { ctx.write("return;"); }); + + print_ecsact_entt_system_details( + ctx, + details, + { + .sys_like_id = system_id, + .system_name = system_name, + .registry_var_name = "registry", + .parent_context_var_name = "parent_context", + .action_var_name = std::nullopt, + } + ); +} + +static auto print_execute_actions_template_specialization( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details, + ecsact_action_id action_id +) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::cpp_codegen_plugin_util::block; + using ecsact::meta::decl_full_name; + using ecsact::rt_entt_codegen::util::method_printer; + + if(is_trivial_system(ecsact_id_cast(action_id))) { + print_trivial_system_like( + ctx, + details, + ecsact_id_cast(action_id) + ); + return; + } + + auto cpp_system_name = cpp_identifier(decl_full_name(action_id)); + + const auto method_name = + "ecsact::entt::execute_actions<::" + cpp_system_name + ">"; + + ctx.write("template<>\n"); + auto printer = // + method_printer{ctx, method_name} + .parameter("::entt::registry&", "registry") + .parameter("std::span<::" + cpp_system_name + " const*>", "actions") + .return_type("void"); + + ctx.write( + "auto system_impl = ::ecsact::entt::get_system_impl<::", + cpp_system_name, + ">();\n" + ); + + block(ctx, "if(system_impl == nullptr)", [&] { ctx.write("return;"); }); + + block(ctx, "for(auto action : actions)", [&] { + print_ecsact_entt_system_details( + ctx, + details, + { + .sys_like_id = action_id, + .system_name = cpp_system_name, + .registry_var_name = "registry", + .parent_context_var_name = "nullptr", + .action_var_name = "action", + } + ); + }); +} + +template +static auto print_child_execution_system_like_template_specializations( + ecsact::codegen_plugin_context& ctx, + const ecsact::rt_entt_codegen::ecsact_entt_system_details& details, + SystemLikeID sys_like_id +) -> void { + using ecsact::rt_entt_codegen::ecsact_entt_system_details; + + for(auto child_sys_id : ecsact::meta::get_child_system_ids(sys_like_id)) { + auto sys_details = ecsact_entt_system_details::from_system_like( + static_cast(child_sys_id) + ); + + print_execute_system_template_specialization( + ctx, + sys_details, + static_cast(child_sys_id) + ); + + print_child_execution_system_like_template_specializations( + ctx, + sys_details, + static_cast(child_sys_id) + ); + } +} + +auto ecsact::rt_entt_codegen::core:: + print_execute_system_like_template_specializations( // + codegen_plugin_context& ctx, + const ecsact_entt_details& details + ) -> void { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::rt_entt_codegen::ecsact_entt_system_details; + using ecsact::rt_entt_codegen::util::method_printer; + + for(auto sys_like_id : details.top_execution_order) { + auto sys_details = + ecsact_entt_system_details::from_system_like(sys_like_id); + + print_child_execution_system_like_template_specializations( + ctx, + sys_details, + sys_like_id + ); + + if(details.is_system(sys_like_id)) { + print_execute_system_template_specialization( + ctx, + sys_details, + static_cast(sys_like_id) + ); + } else if(details.is_action(sys_like_id)) { + print_execute_actions_template_specialization( + ctx, + sys_details, + static_cast(sys_like_id) + ); + } + } +} diff --git a/rt_entt_codegen/rt_entt_codegen.cc b/rt_entt_codegen/rt_entt_codegen.cc new file mode 100644 index 0000000..9da23f0 --- /dev/null +++ b/rt_entt_codegen/rt_entt_codegen.cc @@ -0,0 +1,215 @@ +#include +#include +#include +#include "core/core.hh" +#include "ecsact/runtime/meta.hh" +#include "ecsact/codegen/plugin.h" +#include "ecsact/codegen/plugin.hh" +#include "ecsact/lang-support/lang-cc.hh" + +#include "rt_entt_codegen/core/core.hh" +#include "rt_entt_codegen/shared/ecsact_entt_details.hh" +#include "shared/util.hh" + +constexpr auto GENERATED_FILE_DISCLAIMER = R"( +// GENERATED FILE - DO NOT EDIT +)"; + +constexpr auto MAIN_PACKAGE_ONLY_DISCLAIMER = R"( +// Purposely empty. ecsact_rt_entt_codegen is only for the 'main' package +)"; + +void ecsact_codegen_plugin( + ecsact_package_id package_id, + ecsact_codegen_write_fn_t write_fn +) { + using ecsact::cc_lang_support::c_identifier; + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::meta::decl_full_name; + using ecsact::meta::get_all_system_like_ids; + using ecsact::rt_entt_codegen::ecsact_entt_details; + using ecsact::rt_entt_codegen::util::global_initializer_printer; + using ecsact::rt_entt_codegen::util::inc_header; + using ecsact::rt_entt_codegen::util::inc_package_header; + using ecsact::rt_entt_codegen::util::init_global; + + ecsact::codegen_plugin_context ctx{package_id, write_fn}; + + ctx.write(GENERATED_FILE_DISCLAIMER); + + if(ecsact_meta_main_package() != package_id) { + ctx.write(MAIN_PACKAGE_ONLY_DISCLAIMER); + return; + } + + auto details = ecsact_entt_details::from_package(package_id); + + inc_header(ctx, "ecsact/entt/entity.hh"); + inc_header(ctx, "ecsact/entt/event_markers.hh"); + inc_header(ctx, "ecsact/entt/execution.hh"); + inc_header(ctx, "ecsact/entt/registry_util.hh"); + inc_header(ctx, "ecsact/entt/detail/globals.hh"); + inc_header(ctx, "ecsact/entt/detail/apply_pending.hh"); + inc_header(ctx, "ecsact/entt/wrapper/core.hh"); + inc_header(ctx, "ecsact/entt/wrapper/dynamic.hh"); + inc_header(ctx, "ecsact/entt/error_check.hh"); + ctx.write("\n"); + inc_package_header(ctx, package_id); + for(auto dep : ecsact::meta::get_dependencies(package_id)) { + inc_package_header(ctx, dep); + } + ctx.write("\n"); + + init_global(ctx, "registries"); + init_global(ctx, "last_registry_id"); + init_global(ctx, "system_impls"); + + init_global(ctx, "all_component_ids", [&] { + if(details.all_components.empty()) { + return; + } + + ctx.write("result.reserve(", details.all_components.size(), ");\n"); + + for(auto comp_id : details.all_components) { + auto cpp_comp_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write("result.insert(", cpp_comp_name, "::id);\n"); + } + }); + + init_global(ctx, "add_component_fns", [&] { + if(details.all_components.empty()) { + return; + } + + ctx.write("result.reserve(", details.all_components.size(), ");\n"); + + for(auto comp_id : details.all_components) { + auto cpp_comp_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "result.insert({::", + cpp_comp_name, + "::id, ", + "&ecsact::entt::wrapper::core::add_component<::", + cpp_comp_name, + ">});\n" + ); + } + }); + + init_global(ctx, "get_component_fns", [&] { + if(details.all_components.empty()) { + return; + } + + auto non_tag_component_ids = + details.all_components | + std::views::filter([&](ecsact_component_id comp_id) -> bool { + return !ecsact::meta::get_field_ids(comp_id).empty(); + }); + + ctx.write( + "result.reserve(", + std::ranges::distance(non_tag_component_ids), + ");\n" + ); + + for(auto comp_id : non_tag_component_ids) { + auto cpp_comp_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "result.insert({::", + cpp_comp_name, + "::id, ", + "&ecsact::entt::wrapper::core::get_component<::", + cpp_comp_name, + ">});\n" + ); + } + }); + + init_global(ctx, "update_component_fns", [&] { + if(details.all_components.empty()) { + return; + } + + auto non_tag_component_ids = + details.all_components | + std::views::filter([&](ecsact_component_id comp_id) -> bool { + return !ecsact::meta::get_field_ids(comp_id).empty(); + }); + + ctx.write( + "result.reserve(", + std::ranges::distance(non_tag_component_ids), + ");\n" + ); + + for(auto comp_id : non_tag_component_ids) { + auto cpp_comp_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "result.insert({::", + cpp_comp_name, + "::id, ", + "&ecsact::entt::wrapper::core::update_component<::", + cpp_comp_name, + ">});\n" + ); + } + }); + + init_global(ctx, "remove_component_fns", [&] { + if(details.all_components.empty()) { + return; + } + + ctx.write("result.reserve(", details.all_components.size(), ");\n"); + + for(auto comp_id : details.all_components) { + auto cpp_comp_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "result.insert({::", + cpp_comp_name, + "::id, ", + "&ecsact::entt::wrapper::core::remove_component<::", + cpp_comp_name, + ">});\n" + ); + } + }); + + init_global(ctx, "has_component_fns", [&] { + if(details.all_components.empty()) { + return; + } + + ctx.write("result.reserve(", details.all_components.size(), ");\n"); + + for(auto comp_id : details.all_components) { + auto cpp_comp_name = cpp_identifier(decl_full_name(comp_id)); + ctx.write( + "result.insert({::", + cpp_comp_name, + "::id, ", + "&ecsact::entt::wrapper::core::has_component<::", + cpp_comp_name, + ">});\n" + ); + } + }); + + ctx.write("\n"); + + { // Print core Ecsact API methods + using namespace ecsact::rt_entt_codegen; + + core::print_check_error_template_specializations(ctx, details); + core::print_execute_system_like_template_specializations(ctx, details); + core::print_init_registry_storage(ctx, details); + core::print_create_registry(ctx, details); + core::print_trigger_ecsact_events_minimal(ctx, details); + core::print_trigger_ecsact_events_all(ctx, details); + core::print_cleanup_ecsact_component_events(ctx, details); + core::print_execution_options(ctx, details); + core::print_execute_systems(ctx, details); + } +} diff --git a/rt_entt_codegen/shared/BUILD.bazel b/rt_entt_codegen/shared/BUILD.bazel new file mode 100644 index 0000000..f71bea2 --- /dev/null +++ b/rt_entt_codegen/shared/BUILD.bazel @@ -0,0 +1,43 @@ +load("@rules_cc//cc:defs.bzl", "cc_library") +load("//bazel:copts.bzl", "copts") + +package(default_visibility = ["//rt_entt_codegen:__subpackages__"]) + +cc_library( + name = "ecsact_entt_details", + srcs = ["ecsact_entt_details.cc"], + hdrs = ["ecsact_entt_details.hh"], + copts = copts, + defines = ["ECSACT_META_API_LOAD_AT_RUNTIME"], + deps = [ + "@ecsact_codegen//:plugin", + "@ecsact_lang_cpp//:support", + "@ecsact_runtime//:common", + "@ecsact_runtime//:meta", + ], +) + +cc_library( + name = "util", + hdrs = ["util.hh"], + copts = copts, + defines = ["ECSACT_META_API_LOAD_AT_RUNTIME"], + deps = [ + ":comps_with_caps", + "@ecsact_codegen//:plugin", + "@ecsact_lang_cpp//:support", + "@ecsact_runtime//:common", + "@ecsact_runtime//:meta", + ], +) + +cc_library( + name = "comps_with_caps", + hdrs = ["comps_with_caps.hh"], + copts = copts, + deps = [ + ":ecsact_entt_details", + "@ecsact_runtime//:common", + "@ecsact_runtime//:meta", + ], +) diff --git a/rt_entt_codegen/shared/comps_with_caps.hh b/rt_entt_codegen/shared/comps_with_caps.hh new file mode 100644 index 0000000..98a578f --- /dev/null +++ b/rt_entt_codegen/shared/comps_with_caps.hh @@ -0,0 +1,94 @@ +#pragma once + +#include +#include +#include +#include "ecsact/runtime/common.h" +#include "ecsact/runtime/meta.hh" +#include "rt_entt_codegen/shared/ecsact_entt_details.hh" + +namespace ecsact::rt_entt_codegen { +template +auto get_all_deep_capabilities( // + SystemLikeID system_like_id +) -> std::unordered_map { + auto capabilities = ecsact::meta::system_capabilities(system_like_id); + + auto all_capabilities = + std::unordered_map{}; + + for(auto&& [comp_id, capability] : capabilities) { + all_capabilities[comp_id] = static_cast( + capability | all_capabilities[comp_id] + ); + + auto fields = + ecsact::meta::system_association_fields(system_like_id, comp_id); + for(auto field_id : fields) { + auto assoc_comps = ecsact::meta::system_association_capabilities( + system_like_id, + comp_id, + field_id + ); + + for(auto&& [assoc_comp_id, assoc_comp_cap] : assoc_comps) { + all_capabilities[assoc_comp_id] = static_cast( + assoc_comp_cap | all_capabilities[assoc_comp_id] + ); + } + } + } + + return all_capabilities; +} + +template +inline auto system_comps_with_caps( + SystemLikeID system_like_id, + ecsact_system_capability sys_cap +) -> std::vector { + auto found_comps = std::vector{}; + auto capabilities = get_all_deep_capabilities(system_like_id); + for(auto&& [comp_id, capability] : capabilities) { + if((capability & sys_cap) == sys_cap) { + found_comps.insert(found_comps.end(), comp_id); + } + } + + return found_comps; +} + +inline auto comps_with_caps( + const ecsact_entt_details& details, + ecsact_system_capability sys_cap +) -> std::vector { + auto found_comps = std::vector{}; + + for(auto system_id : details.all_systems) { + auto capabilities = get_all_deep_capabilities(system_id); + for(auto&& [comp_id, capability] : capabilities) { + if((capability & sys_cap) == sys_cap) { + found_comps.insert(found_comps.end(), comp_id); + } + } + } + + for(auto action_id : details.all_actions) { + auto capabilities = get_all_deep_capabilities(action_id); + for(auto&& [comp_id, capability] : capabilities) { + if((capability & sys_cap) == sys_cap) { + found_comps.insert(found_comps.end(), comp_id); + } + } + } + + std::ranges::sort(found_comps); + auto unique_found_comps_range = std::ranges::unique(found_comps); + auto unique_found_comps = std::vector{}; + unique_found_comps.reserve(found_comps.size()); + std::ranges::copy(found_comps, std::back_inserter(unique_found_comps)); + + return unique_found_comps; +} + +} // namespace ecsact::rt_entt_codegen diff --git a/rt_entt_codegen/shared/ecsact_entt_details.cc b/rt_entt_codegen/shared/ecsact_entt_details.cc new file mode 100644 index 0000000..25f0b26 --- /dev/null +++ b/rt_entt_codegen/shared/ecsact_entt_details.cc @@ -0,0 +1,203 @@ +#include "ecsact_entt_details.hh" + +#include +#include "ecsact/codegen/plugin.h" +#include "ecsact/codegen/plugin.hh" +#include "ecsact/lang-support/lang-cc.hh" +#include "ecsact/runtime/meta.hh" +#include "rt_entt_codegen/shared/ecsact_entt_details.hh" + +using ecsact::rt_entt_codegen::ecsact_entt_details; +using ecsact::rt_entt_codegen::ecsact_entt_system_details; + +static auto collect_top_level_systems( // + ecsact_package_id pkg_id, + ecsact_entt_details& details +) -> void { + auto deps = ecsact::meta::get_dependencies(pkg_id); + for(auto dep : deps) { + auto tl_sys_ids = ecsact::meta::get_top_level_systems(dep); + details.top_execution_order.insert( + details.top_execution_order.end(), + tl_sys_ids.begin(), + tl_sys_ids.end() + ); + } + + auto main_tl_sys_ids = ecsact::meta::get_top_level_systems(pkg_id); + details.top_execution_order.insert( + details.top_execution_order.end(), + main_tl_sys_ids.begin(), + main_tl_sys_ids.end() + ); +} + +static auto collect_all_systems( // + ecsact_package_id pkg_id, + ecsact_entt_details& details +) -> void { + auto deps = ecsact::meta::get_dependencies(pkg_id); + for(auto dep : deps) { + for(auto id : ecsact::meta::get_system_ids(dep)) { + details.all_systems.insert(id); + } + } + + for(auto id : ecsact::meta::get_system_ids(pkg_id)) { + details.all_systems.insert(id); + } +} + +static auto collect_all_components( // + ecsact_package_id pkg_id, + ecsact_entt_details& details +) -> void { + auto deps = ecsact::meta::get_dependencies(pkg_id); + for(auto dep : deps) { + for(auto id : ecsact::meta::get_component_ids(dep)) { + details.all_components.insert(id); + } + } + + for(auto id : ecsact::meta::get_component_ids(pkg_id)) { + details.all_components.insert(id); + } +} + +static auto collect_all_actions( // + ecsact_package_id pkg_id, + ecsact_entt_details& details +) -> void { + auto deps = ecsact::meta::get_dependencies(pkg_id); + for(auto dep : deps) { + for(auto id : ecsact::meta::get_action_ids(dep)) { + details.all_actions.insert(id); + } + } + + for(auto id : ecsact::meta::get_action_ids(pkg_id)) { + details.all_actions.insert(id); + } +} + +auto ecsact_entt_system_details::fill_system_details( + ecsact_entt_system_details& out_details, + const std::unordered_map& + caps +) -> void { + for(auto&& [comp_id, cap] : caps) { + switch(cap) { + case ECSACT_SYS_CAP_INCLUDE: + out_details.get_comps.insert(comp_id); + break; + case ECSACT_SYS_CAP_READONLY: + out_details.get_comps.insert(comp_id); + out_details.readable_comps.insert(comp_id); + break; + case ECSACT_SYS_CAP_WRITEONLY: + out_details.get_comps.insert(comp_id); + out_details.writable_comps.insert(comp_id); + break; + case ECSACT_SYS_CAP_READWRITE: + out_details.get_comps.insert(comp_id); + out_details.readable_comps.insert(comp_id); + out_details.writable_comps.insert(comp_id); + break; + case ECSACT_SYS_CAP_OPTIONAL: + case ECSACT_SYS_CAP_OPTIONAL_READONLY: + case ECSACT_SYS_CAP_OPTIONAL_WRITEONLY: + case ECSACT_SYS_CAP_OPTIONAL_READWRITE: + assert(false && "optional unimplemented"); + break; + case ECSACT_SYS_CAP_REMOVES: + out_details.get_comps.insert(comp_id); + out_details.removable_comps.insert(comp_id); + break; + case ECSACT_SYS_CAP_EXCLUDE: + out_details.exclude_comps.insert(comp_id); + break; + case ECSACT_SYS_CAP_ADDS: + out_details.exclude_comps.insert(comp_id); + out_details.addable_comps.insert(comp_id); + break; + } + } + + for(auto&& [comp_id, _] : caps) { + // Santity check to make sure we've not missing any system comp IDs + assert( + out_details.get_comps.contains(comp_id) || + out_details.exclude_comps.contains(comp_id) + ); + } +} + +auto ecsact_entt_system_details::from_system_like( // + ecsact_system_like_id sys_like_id +) -> ecsact_entt_system_details { + auto details = ecsact_entt_system_details{}; + auto caps = ecsact::meta::system_capabilities(sys_like_id); + + fill_system_details(details, caps); + + for(auto comp_id : details.readable_comps) { + auto fields = ecsact::meta::system_association_fields(sys_like_id, comp_id); + for(auto field_id : fields) { + auto assoc_comps = ecsact::meta::system_association_capabilities( + sys_like_id, + comp_id, + field_id + ); + + details.association_details.insert( + details.association_details.end(), + association_info{ + .component_id = comp_id, + .field_id = field_id, + .capabilities = assoc_comps, + } + ); + } + } + + auto generate_ids = ecsact::meta::get_system_generates_ids(sys_like_id); + for(auto gen_id : generate_ids) { + auto gen_id_map = + ecsact::meta::get_system_generates_components(sys_like_id, gen_id); + details.generate_comps.emplace(details.generate_comps.end(), gen_id_map); + } + + return details; +} + +auto ecsact_entt_system_details::from_capabilities( // + std::unordered_map caps +) -> ecsact_entt_system_details { + // NOTE(Kelwan): This does not add generate behaviour or associations into + // details + auto details = ecsact_entt_system_details{}; + + fill_system_details(details, caps); + + return details; +} + +auto ecsact_entt_details::from_package( // + ecsact_package_id pkg_id +) -> ecsact_entt_details { + auto details = ecsact_entt_details{}; + + collect_top_level_systems(pkg_id, details); + collect_all_systems(pkg_id, details); + collect_all_actions(pkg_id, details); + collect_all_components(pkg_id, details); + + for(auto sys_id : details.top_execution_order) { + assert( + details.view_systems.contains(sys_id) || + details.group_systems.contains(sys_id) + ); + } + + return details; +} diff --git a/rt_entt_codegen/shared/ecsact_entt_details.hh b/rt_entt_codegen/shared/ecsact_entt_details.hh new file mode 100644 index 0000000..7323077 --- /dev/null +++ b/rt_entt_codegen/shared/ecsact_entt_details.hh @@ -0,0 +1,102 @@ +#pragma once + +#include +#include +#include +#include + +namespace ecsact::rt_entt_codegen { + +struct association_info { + ecsact_component_like_id component_id; + ecsact_field_id field_id; + std::unordered_map + capabilities; +}; + +struct other_key { + ecsact_component_like_id component_like_id; + ecsact_field_id field_id; + + auto operator<=>(const other_key& k) const = default; +}; + +using generate_t = + std::vector>; + +using association_t = std::vector; + +struct ecsact_entt_system_details { + /** Components/transients included in EnTT view/group */ + std::unordered_set get_comps; + + /** Components/transients excluded in EnTT view/group */ + std::unordered_set exclude_comps; + + /** Components this system is allowed to read */ + std::unordered_set readable_comps; + + /** Components this system is allowed to write */ + std::unordered_set writable_comps; + + /** Components this system is allowed to add */ + std::unordered_set addable_comps; + + /** Components this system is allowed to remove */ + std::unordered_set removable_comps; + + /** Components with an entity association*/ + association_t association_details; + + /** A map containing this system's generated component ids and its + * requirements*/ + generate_t generate_comps; + + static auto from_system_like( // + ecsact_system_like_id sys_like_id + ) -> ecsact_entt_system_details; + + static auto from_capabilities( // + std::unordered_map caps + ) -> ecsact_entt_system_details; + +private: + static auto fill_system_details( + ecsact_entt_system_details& in_details, + const std:: + unordered_map& caps + ) -> void; +}; + +/** + * Details about an the main Ecsact package in relation to EnTT runtime. Package + * dependencies are flattened. + */ +struct ecsact_entt_details { + static auto from_package(ecsact_package_id pkg_id) -> ecsact_entt_details; + + // Systems/actions we've decided will use an EnTT group + std::unordered_set group_systems; + + // Systems/actions we've decided will use an Entt view + std::unordered_set view_systems; + + // Top level sysetms/actions in execution order + std::vector top_execution_order; + + std::unordered_set all_systems; + + std::unordered_set all_actions; + + std::unordered_set all_components; + + inline auto is_action(ecsact_system_like_id id) const noexcept -> bool { + return all_actions.contains(static_cast(id)); + } + + inline auto is_system(ecsact_system_like_id id) const noexcept -> bool { + return all_systems.contains(static_cast(id)); + } +}; + +} // namespace ecsact::rt_entt_codegen diff --git a/rt_entt_codegen/shared/util.hh b/rt_entt_codegen/shared/util.hh new file mode 100644 index 0000000..2729a79 --- /dev/null +++ b/rt_entt_codegen/shared/util.hh @@ -0,0 +1,249 @@ +#pragma once + +#include +#include +#include +#include +#include "ecsact/codegen/plugin.hh" +#include "ecsact/lang-support/lang-cc.hh" +#include "ecsact/runtime/meta.hh" + +namespace ecsact::rt_entt_codegen::util { + +class global_initializer_printer { + bool disposed = false; + ecsact::codegen_plugin_context& ctx; + +public: + global_initializer_printer( + ecsact::codegen_plugin_context& ctx, + auto&& global_name + ) + : ctx(ctx) { + ctx.write( + "decltype(ecsact::entt::detail::globals::", + global_name, + ") ", + "ecsact::entt::detail::globals::", + global_name, + " = ", + "[]() -> " + "std::remove_cvref_t {" + ); + ctx.indentation += 1; + ctx.write("\n"); + ctx.write( + "auto result = " + "std::remove_cvref_t{};\n" + ); + } + + global_initializer_printer(global_initializer_printer&& other) + : ctx(other.ctx) { + disposed = other.disposed; + other.disposed = true; + } + + ~global_initializer_printer() { + if(disposed) { + return; + } + disposed = true; + ctx.write("return result;"); + ctx.indentation -= 1; + ctx.write("\n}();\n\n"); + } +}; + +template +inline auto decl_cpp_ident(DeclId id) -> std::string { + using ecsact::cc_lang_support::cpp_identifier; + using ecsact::meta::decl_full_name; + return "::" + cpp_identifier(decl_full_name(id)); +} + +inline auto init_global( // + ecsact::codegen_plugin_context& ctx, + auto&& global_name +) -> void { + // globals can only be initialized at the top + assert(ctx.indentation == 0); + + ctx.write( + "decltype(ecsact::entt::detail::globals::", + global_name, + ") ecsact::entt::detail::globals::", + global_name, + " = {};\n" + ); +} + +inline auto init_global( // + ecsact::codegen_plugin_context& ctx, + auto&& global_name, + auto&& body_fn +) -> void { + auto printer = global_initializer_printer{ctx, global_name}; + body_fn(); +} + +inline auto inc_header( // + ecsact::codegen_plugin_context& ctx, + auto&& header_path +) -> void { + ctx.write("#include \"", header_path, "\"\n"); +} + +inline auto inc_package_header( // + ecsact::codegen_plugin_context& ctx, + ecsact_package_id pkg_id +) -> void { + namespace fs = std::filesystem; + + auto main_ecsact_file_path = ecsact::meta::package_file_path(ctx.package_id); + if(ctx.package_id == pkg_id) { + main_ecsact_file_path.replace_extension( + main_ecsact_file_path.extension().string() + ".hh" + ); + + inc_header(ctx, main_ecsact_file_path.filename().string()); + } else { + auto cpp_header_path = ecsact::meta::package_file_path(pkg_id); + cpp_header_path.replace_extension( + cpp_header_path.extension().string() + ".hh" + ); + if(main_ecsact_file_path.has_parent_path()) { + cpp_header_path = + fs::relative(cpp_header_path, main_ecsact_file_path.parent_path()); + } + inc_header(ctx, cpp_header_path.filename().string()); + } +} + +inline auto is_transient_component( + ecsact_package_id package_id, + ecsact_component_like_id comp_id +) -> bool { + auto transient_ids = ecsact::meta::get_transient_ids(package_id); + for(auto transient_id : transient_ids) { + auto transient_component_like_id = + ecsact_id_cast(transient_id); + if(transient_component_like_id == comp_id) { + return true; + } + } + return false; +} + +class method_printer { + using parameters_list_t = std::vector>; + + bool disposed = false; + std::optional parameters; + ecsact::codegen_plugin_context& ctx; + + auto _parameter(std::string param_type, std::string param_name) -> void { + assert(!disposed); + if(disposed) { + return; + } + + assert( + parameters.has_value() && + "Cannot set parametrs after return type has been set" + ); + parameters->push_back({param_type, param_name}); + } + + auto _return_type(std::string type) { + assert(!disposed); + if(disposed) { + return; + } + + assert(parameters.has_value()); + if(!parameters.has_value()) { + return; + } + + if(!parameters->empty()) { + ctx.write("\n"); + } + + for(auto i = 0; parameters->size() > i; ++i) { + auto&& [param_type, param_name] = parameters->at(i); + ctx.write("\t", param_type, " ", param_name); + if(i + 1 < parameters->size()) { + ctx.write(","); + } + ctx.write("\n"); + } + + parameters = std::nullopt; + + ctx.write(") -> ", type, " {"); + ctx.indentation += 1; + ctx.write("\n"); + } + +public: + method_printer( // + ecsact::codegen_plugin_context& ctx, + std::string method_name + ) + : ctx(ctx) { + parameters.emplace(); + ctx.write("auto ", method_name, "("); + } + + method_printer(method_printer&& other) : ctx(other.ctx) { + disposed = other.disposed; + + if(!disposed) { + parameters = std::move(other.parameters); + } + + other.disposed = true; + } + + auto parameter( + std::string param_type, + std::string param_name + ) & -> method_printer& { + _parameter(param_type, param_name); + return *this; + } + + auto parameter( + std::string param_type, + std::string param_name + ) && -> method_printer { + _parameter(param_type, param_name); + return std::move(*this); + } + + auto return_type(std::string type) & -> method_printer& { + _return_type(type); + return *this; + } + + auto return_type(std::string type) && -> method_printer { + _return_type(type); + return std::move(*this); + } + + ~method_printer() { + if(disposed) { + return; + } + disposed = true; + ctx.indentation -= 1; + ctx.write("\n}\n\n"); + } +}; + +} // namespace ecsact::rt_entt_codegen::util diff --git a/runtime/BUILD.bazel b/runtime/BUILD.bazel index d1668df..3fab278 100644 --- a/runtime/BUILD.bazel +++ b/runtime/BUILD.bazel @@ -2,10 +2,8 @@ package(default_visibility = ["//visibility:public"]) # keep sorted _srcs = [ - "common.template.cc", - "common.template.hh", - "core.template.cc", - "dynamic.template.cc", + "ecsact_rt_entt_core.cc", + "ecsact_rt_entt_dynamic.cc", ] exports_files(_srcs) diff --git a/runtime/common.template.cc b/runtime/common.template.cc deleted file mode 100644 index c77f422..0000000 --- a/runtime/common.template.cc +++ /dev/null @@ -1,11 +0,0 @@ -#include "ecsact/entt/runtime.hh" - -#ifndef ECSACT_ENTT_RUNTIME_USER_HEADER -# error ECSACT_ENTT_RUNTIME_USER_HEADER must be defined -#else -# include ECSACT_ENTT_RUNTIME_USER_HEADER -#endif - -namespace ecsact_entt_rt { -ecsact::entt::runtime runtime; -} diff --git a/runtime/common.template.hh b/runtime/common.template.hh deleted file mode 100644 index 33fe610..0000000 --- a/runtime/common.template.hh +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -#ifndef ECSACT_ENTT_RUNTIME_USER_HEADER -# error ECSACT_ENTT_RUNTIME_USER_HEADER must be defined -#else -# include ECSACT_ENTT_RUNTIME_USER_HEADER -#endif - -#include "ecsact/entt/runtime.hh" - -#ifndef ECSACT_ENTT_RUNTIME_PACKAGE -# error ECSACT_ENTT_RUNTIME_PACKAGE Must be defined with the fully qualified \ - meta package struct. -#endif - -namespace ecsact_entt_rt { -extern ecsact::entt::runtime runtime; -} diff --git a/runtime/core.template.cc b/runtime/core.template.cc deleted file mode 100644 index 5076237..0000000 --- a/runtime/core.template.cc +++ /dev/null @@ -1,155 +0,0 @@ -#include "ecsact/runtime/core.h" - -#include "common.template.hh" - -using namespace ecsact_entt_rt; - -ecsact_registry_id ecsact_create_registry(const char* registry_name) { - return runtime.create_registry(registry_name); -} - -void ecsact_destroy_registry(ecsact_registry_id reg_id) { - runtime.destroy_registry(reg_id); -} - -void ecsact_clear_registry(ecsact_registry_id reg_id) { - runtime.clear_registry(reg_id); -} - -ecsact_entity_id ecsact_create_entity(ecsact_registry_id reg_id) { - return runtime.create_entity(reg_id); -} - -void ecsact_ensure_entity( - ecsact_registry_id reg_id, - ecsact_entity_id entity_id -) { - runtime.ensure_entity(reg_id, entity_id); -} - -bool ecsact_entity_exists( - ecsact_registry_id reg_id, - ecsact_entity_id entity_id -) { - return runtime.entity_exists(reg_id, entity_id); -} - -void ecsact_destroy_entity( - ecsact_registry_id reg_id, - ecsact_entity_id entity_id -) { - runtime.destroy_entity(reg_id, entity_id); -} - -int ecsact_count_entities(ecsact_registry_id reg_id) { - return runtime.count_entities(reg_id); -} - -void ecsact_get_entities( - ecsact_registry_id reg_id, - int max_entities_count, - ecsact_entity_id* out_entities, - int* out_entities_count -) { - runtime - .get_entities(reg_id, max_entities_count, out_entities, out_entities_count); -} - -ecsact_add_error ecsact_add_component( - ecsact_registry_id reg_id, - ecsact_entity_id entity_id, - ecsact_component_id component_id, - const void* component_data -) { - return runtime.add_component(reg_id, entity_id, component_id, component_data); -} - -bool ecsact_has_component( - ecsact_registry_id reg_id, - ecsact_entity_id entity_id, - ecsact_component_id component_id -) { - return runtime.has_component(reg_id, entity_id, component_id); -} - -const void* ecsact_get_component( - ecsact_registry_id reg_id, - ecsact_entity_id entity_id, - ecsact_component_id component_id -) { - return runtime.get_component(reg_id, entity_id, component_id); -} - -int ecsact_count_components( - ecsact_registry_id registry_id, - ecsact_entity_id entity_id -) { - return runtime.count_components(registry_id, entity_id); -} - -void ecsact_each_component( - ecsact_registry_id registry_id, - ecsact_entity_id entity_id, - ecsact_each_component_callback callback, - void* callback_user_data -) { - runtime.each_component(registry_id, entity_id, callback, callback_user_data); -} - -void ecsact_get_components( - ecsact_registry_id registry_id, - ecsact_entity_id entity_id, - int max_components_count, - ecsact_component_id* out_component_ids, - const void** out_components_data, - int* out_components_count -) { - runtime.get_components( - registry_id, - entity_id, - max_components_count, - out_component_ids, - out_components_data, - out_components_count - ); -} - -ecsact_update_error ecsact_update_component( - ecsact_registry_id reg_id, - ecsact_entity_id entity_id, - ecsact_component_id component_id, - const void* component_data -) { - return runtime - .update_component(reg_id, entity_id, component_id, component_data); -} - -void ecsact_remove_component( - ecsact_registry_id reg_id, - ecsact_entity_id entity_id, - ecsact_component_id component_id -) { - runtime.remove_component(reg_id, entity_id, component_id); -} - -ecsact_execute_systems_error ecsact_execute_systems( - ecsact_registry_id registry_id, - int execution_count, - const ecsact_execution_options* execution_options_list, - const ecsact_execution_events_collector* c_events_collector -) { - using ecsact_entt_rt::execution_events_collector; - - std::optional events_collector_opt = {}; - if(c_events_collector != nullptr) { - auto& events_collector = events_collector_opt.emplace(); - events_collector.target = c_events_collector; - } - - return runtime.execute_systems( - registry_id, - execution_count, - execution_options_list, - events_collector_opt - ); -} diff --git a/runtime/dynamic.template.cc b/runtime/dynamic.template.cc deleted file mode 100644 index 12758ee..0000000 --- a/runtime/dynamic.template.cc +++ /dev/null @@ -1,576 +0,0 @@ -#include -#include -#include "ecsact/runtime/dynamic.h" -#include "ecsact/entt/detail/system_execution_context.hh" -#include "ecsact/entt/detail/meta_util.hh" - -#include "common.template.hh" - -using namespace ecsact_entt_rt; - -namespace { -using package = typename decltype(ecsact_entt_rt::runtime)::package; -} - -template -using max_associations = std::integral_constant; // TODO - -/** - * Array of arrays containing function pointer for each system in list - * - * @example - * ``` - * auto fns = context_fns_t{}; - * - * auto fn = fns[MySystem::id][0]; - * fn(...); - * ``` - */ -template -using context_fns_t = std::unordered_map< - IdType, - std::array::value + 1>>; - -template -static inline void _action_fn( - ecsact_system_execution_context* context, - void* out_action_data -) { - auto& typed_context = *static_cast(context->impl); - Action& out_action = *reinterpret_cast(out_action_data); - out_action = *reinterpret_cast(typed_context.action); -} - -static auto _action_fns = [] { - using boost::mp11::mp_for_each; - using boost::mp11::mp_size; - using actions = ecsact::entt::detail::mp_all_actions_t; - - auto result = context_fns_t< - ecsact_action_id, - decltype(&ecsact_system_execution_context_action), - actions>{}; - - result.reserve(mp_size::value); - - mp_for_each([&](A) { - using boost::mp11::mp_size; - using boost::mp11::mp_iota_c; - using boost::mp11::mp_for_each; - - using caps_info = ecsact::system_capabilities_info; - using associations = typename caps_info::associations; - - result[A::id][0] = - &_action_fn>; - if constexpr(mp_size::value > 0) { - mp_for_each::value>>([&](auto I) { - using boost::mp11::mp_at; - using boost::mp11::mp_size_t; - using assoc = mp_at>; - result[A::id][I + 1] = - &_action_fn>; - }); - } - }); - - return std::as_const(result); -}(); - -void ecsact_system_execution_context_action( - ecsact_system_execution_context* context, - void* out_action_data -) { - auto action_id = static_cast(context->system_id); - - assert(_action_fns.contains(action_id)); - assert(_action_fns[action_id].size() > context->association_index); - assert(_action_fns[action_id][context->association_index] != nullptr); - - _action_fns[action_id][context->association_index](context, out_action_data); -} - -template -static inline void _add_fn( - ecsact_system_execution_context* context, - ecsact_component_like_id component_id, - const void* component_data -) { - auto& typed_context = *static_cast(context->impl); - assert( - ecsact_id_cast(Component::id) == component_id - ); - - if constexpr(std::is_empty_v) { - typed_context.template add({}); - } else { - typed_context.template add( - *static_cast(component_data) - ); - } -} - -static auto _add_fns = [] { - using boost::mp11::mp_for_each; - using boost::mp11::mp_size; - using boost::mp11::mp_append; - using system_likes = mp_append< - ecsact::entt::detail::mp_all_actions_t, - ecsact::entt::detail::mp_all_systems_t>; - - auto result = std::unordered_map< - ecsact_system_like_id, - std::array< - std::unordered_map< - ecsact_component_like_id, - decltype(&ecsact_system_execution_context_add)>, - max_associations::value>>{}; - - result.reserve(mp_size::value); - - mp_for_each([&](S) { - using boost::mp11::mp_size; - using boost::mp11::mp_iota_c; - using boost::mp11::mp_for_each; - - using caps_info = ecsact::system_capabilities_info; - using associations = typename caps_info::associations; - using context_type = system_execution_context; - - mp_for_each([&](C) { - result[ecsact_id_cast(S::id)][0] - [ecsact_id_cast(C::id)] = - &_add_fn; - }); - - if constexpr(mp_size::value > 0) { - mp_for_each::value>>([&](auto I) { - using boost::mp11::mp_at; - using boost::mp11::mp_size_t; - using assoc = mp_at>; - using context_type = system_execution_context; - mp_for_each([&](C) { - result[ecsact_id_cast(S::id)][I + 1] - [ecsact_id_cast(C::id)] = - &_add_fn; - }); - }); - } - }); - - return std::as_const(result); -}(); - -void ecsact_system_execution_context_add( - ecsact_system_execution_context* context, - ecsact_component_like_id comp_id, - const void* component_data -) { - auto sys_like_id = ecsact_id_cast(context->system_id); - - assert(_add_fns.contains(sys_like_id)); - auto& _sys_add_fns = _add_fns[sys_like_id]; - - assert(_sys_add_fns.size() > context->association_index); - auto& _sys_ctx_add_fns = _sys_add_fns[context->association_index]; - - assert(_sys_ctx_add_fns.contains(comp_id)); - auto& _sys_ctx_add_comp_fn = _sys_ctx_add_fns[comp_id]; - - assert(_sys_ctx_add_comp_fn != nullptr); - _sys_ctx_add_comp_fn(context, comp_id, component_data); -} - -template -static inline void _remove_fn( - ecsact_system_execution_context* context, - ecsact_component_like_id component_id -) { - auto& typed_context = *static_cast(context->impl); - assert( - ecsact_id_cast(Component::id) == component_id - ); - - typed_context.template remove(); -} - -static auto _remove_fns = [] { - using boost::mp11::mp_for_each; - using boost::mp11::mp_size; - using boost::mp11::mp_append; - using system_likes = mp_append< - ecsact::entt::detail::mp_all_actions_t, - ecsact::entt::detail::mp_all_systems_t>; - - auto result = std::unordered_map< - ecsact_system_like_id, - std::array< - std::unordered_map< - ecsact_component_like_id, - decltype(&ecsact_system_execution_context_remove)>, - max_associations::value>>{}; - - result.reserve(mp_size::value); - - mp_for_each([&](S) { - using boost::mp11::mp_size; - using boost::mp11::mp_iota_c; - using boost::mp11::mp_for_each; - - using caps_info = ecsact::system_capabilities_info; - using associations = typename caps_info::associations; - using context_type = system_execution_context; - - mp_for_each([&](C) { - result[ecsact_id_cast(S::id)][0] - [ecsact_id_cast(C::id)] = - &_remove_fn; - }); - - if constexpr(mp_size::value > 0) { - mp_for_each::value>>([&](auto I) { - using boost::mp11::mp_at; - using boost::mp11::mp_size_t; - using assoc = mp_at>; - using context_type = system_execution_context; - mp_for_each([&](C - ) { - result[ecsact_id_cast(S::id)][I + 1] - [ecsact_id_cast(C::id)] = - &_remove_fn; - }); - }); - } - }); - - return std::as_const(result); -}(); - -void ecsact_system_execution_context_remove( - ecsact_system_execution_context* context, - ecsact_component_like_id comp_id -) { - auto sys_like_id = ecsact_id_cast(context->system_id); - - assert(_remove_fns.contains(sys_like_id)); - auto& _sys_remove_fns = _remove_fns[sys_like_id]; - - assert(_sys_remove_fns.size() > context->association_index); - auto& _sys_ctx_remove_fns = _sys_remove_fns[context->association_index]; - - assert(_sys_ctx_remove_fns.contains(comp_id)); - auto& _sys_ctx_remove_comp_fn = _sys_ctx_remove_fns[comp_id]; - - assert(_sys_ctx_remove_comp_fn != nullptr); - _sys_ctx_remove_comp_fn(context, comp_id); -} - -template -static inline void _get_fn( - ecsact_system_execution_context* context, - ecsact_component_like_id component_id, - void* out_component_data -) { - auto& typed_context = *static_cast(context->impl); - assert( - ecsact_id_cast(Component::id) == component_id - ); - - Component& out_component = *reinterpret_cast(out_component_data); - out_component = typed_context.template get(); -} - -static auto _get_fns = [] { - using boost::mp11::mp_for_each; - using boost::mp11::mp_size; - using boost::mp11::mp_append; - using system_likes = mp_append< - ecsact::entt::detail::mp_all_actions_t, - ecsact::entt::detail::mp_all_systems_t>; - - auto result = std::unordered_map< - ecsact_system_like_id, - std::array< - std::unordered_map< - ecsact_component_like_id, - decltype(&ecsact_system_execution_context_get)>, - max_associations::value>>{}; - - result.reserve(mp_size::value); - - mp_for_each([&](S) { - using boost::mp11::mp_size; - using boost::mp11::mp_iota_c; - using boost::mp11::mp_for_each; - - using caps_info = ecsact::system_capabilities_info; - using associations = typename caps_info::associations; - using context_type = system_execution_context; - - mp_for_each([&](C) { - result[ecsact_id_cast(S::id)][0] - [ecsact_id_cast(C::id)] = - &_get_fn; - }); - - if constexpr(mp_size::value > 0) { - mp_for_each::value>>([&](auto I) { - using boost::mp11::mp_at; - using boost::mp11::mp_size_t; - using assoc = mp_at>; - using context_type = system_execution_context; - mp_for_each( - [&](C) { - result[ecsact_id_cast(S::id)][I + 1] - [ecsact_id_cast(C::id)] = - &_get_fn; - } - ); - }); - } - }); - - return std::as_const(result); -}(); - -void ecsact_system_execution_context_get( - ecsact_system_execution_context* context, - ecsact_component_like_id comp_id, - void* out_component_data -) { - auto sys_like_id = ecsact_id_cast(context->system_id); - - assert(_get_fns.contains(sys_like_id)); - auto& _sys_get_fns = _get_fns[sys_like_id]; - - assert(_sys_get_fns.size() > context->association_index); - auto& _sys_ctx_get_fns = _sys_get_fns[context->association_index]; - - assert(_sys_ctx_get_fns.contains(comp_id)); - auto& _sys_ctx_get_comp_fn = _sys_ctx_get_fns[comp_id]; - - assert(_sys_ctx_get_comp_fn != nullptr); - _sys_ctx_get_comp_fn(context, comp_id, out_component_data); -} - -template -static inline void _update_fn( - ecsact_system_execution_context* context, - ecsact_component_like_id comp_id, - const void* component_data -) { - auto& typed_context = *static_cast(context->impl); - assert(ecsact_id_cast(Component::id) == comp_id); - - typed_context.template update( - *reinterpret_cast(component_data) - ); -} - -static auto _update_fns = [] { - using boost::mp11::mp_for_each; - using boost::mp11::mp_size; - using boost::mp11::mp_append; - using system_likes = mp_append< - ecsact::entt::detail::mp_all_actions_t, - ecsact::entt::detail::mp_all_systems_t>; - - auto result = std::unordered_map< - ecsact_system_like_id, - std::array< - std::unordered_map< - ecsact_component_like_id, - decltype(&ecsact_system_execution_context_update)>, - max_associations::value>>{}; - - result.reserve(mp_size::value); - - mp_for_each([&](S) { - using boost::mp11::mp_size; - using boost::mp11::mp_iota_c; - using boost::mp11::mp_for_each; - - using caps_info = ecsact::system_capabilities_info; - using associations = typename caps_info::associations; - using context_type = system_execution_context; - - mp_for_each([&](C - ) { - result[ecsact_id_cast(S::id)][0] - [ecsact_id_cast(C::id)] = - &_update_fn; - }); - - if constexpr(mp_size::value > 0) { - mp_for_each::value>>([&](auto I) { - using boost::mp11::mp_at; - using boost::mp11::mp_size_t; - using assoc = mp_at>; - using context_type = system_execution_context; - mp_for_each( - [&](C) { - result[ecsact_id_cast(S::id)][I + 1] - [ecsact_id_cast(C::id)] = - &_update_fn; - } - ); - }); - } - }); - - return std::as_const(result); -}(); - -void ecsact_system_execution_context_update( - ecsact_system_execution_context* context, - ecsact_component_like_id comp_id, - const void* component_data -) { - auto sys_like_id = ecsact_id_cast(context->system_id); - - assert(_update_fns.contains(sys_like_id)); - auto& _sys_update_fns = _update_fns[sys_like_id]; - - assert(_sys_update_fns.size() > context->association_index); - auto& _sys_ctx_update_fns = _sys_update_fns[context->association_index]; - - assert(_sys_ctx_update_fns.contains(comp_id)); - auto& _sys_ctx_update_comp_fn = _sys_ctx_update_fns[comp_id]; - - assert(_sys_ctx_update_comp_fn != nullptr); - _sys_ctx_update_comp_fn(context, comp_id, component_data); -} - -template -static inline auto _has_fn( - ecsact_system_execution_context* context, - ecsact_component_like_id comp_id -) -> bool { - auto& typed_context = *static_cast(context->impl); - assert(ecsact_id_cast(Component::id) == comp_id); - return typed_context.template has(); -} - -static auto _has_fns = [] { - using boost::mp11::mp_for_each; - using boost::mp11::mp_size; - using boost::mp11::mp_append; - using system_likes = mp_append< - ecsact::entt::detail::mp_all_actions_t, - ecsact::entt::detail::mp_all_systems_t>; - - auto result = std::unordered_map< - ecsact_system_like_id, - std::array< - std::unordered_map< - ecsact_component_like_id, - decltype(&ecsact_system_execution_context_has)>, - max_associations::value>>{}; - - result.reserve(mp_size::value); - - mp_for_each([&](S) { - using boost::mp11::mp_size; - using boost::mp11::mp_iota_c; - using boost::mp11::mp_for_each; - - using caps_info = ecsact::system_capabilities_info; - using associations = typename caps_info::associations; - using context_type = system_execution_context; - - mp_for_each([&](C - ) { - result[ecsact_id_cast(S::id)][0] - [ecsact_id_cast(C::id)] = - &_has_fn; - }); - - if constexpr(mp_size::value > 0) { - mp_for_each::value>>([&](auto I) { - using boost::mp11::mp_at; - using boost::mp11::mp_size_t; - using assoc = mp_at>; - using context_type = system_execution_context; - mp_for_each( - [&](C) { - result[ecsact_id_cast(S::id)][I + 1] - [ecsact_id_cast(C::id)] = - &_has_fn; - } - ); - }); - } - }); - - return std::as_const(result); -}(); - -bool ecsact_system_execution_context_has( - ecsact_system_execution_context* context, - ecsact_component_like_id comp_id -) { - auto sys_like_id = ecsact_id_cast(context->system_id); - - assert(_has_fns.contains(sys_like_id)); - auto& _sys_has_fns = _has_fns[sys_like_id]; - - assert(_sys_has_fns.size() > context->association_index); - auto& _sys_ctx_has_fns = _sys_has_fns[context->association_index]; - - assert(_sys_ctx_has_fns.contains(comp_id)); - auto& _sys_ctx_has_comp_fn = _sys_ctx_has_fns[comp_id]; - - assert(_sys_ctx_has_comp_fn != nullptr); - return _sys_ctx_has_comp_fn(context, comp_id); -} - -const ecsact_system_execution_context* ecsact_system_execution_context_parent( - ecsact_system_execution_context* context -) { - assert(context->impl->parent && "parent context is NULL"); - return context->impl->parent; -} - -bool ecsact_system_execution_context_same( - const ecsact_system_execution_context* a, - const ecsact_system_execution_context* b -) { - return a->impl->entity == b->impl->entity; -} - -ecsact_entity_id ecsact_system_execution_context_entity( - const ecsact_system_execution_context* context -) { - return context->impl->entity; -} - -void ecsact_system_execution_context_generate( - ecsact_system_execution_context* context, - int component_count, - ecsact_component_id* component_ids, - const void** components_data -) { - context->impl->generate(component_count, component_ids, components_data); -} - -#ifdef ECSACT_ENTT_RUNTIME_DYNAMIC_SYSTEM_IMPLS -bool ecsact_set_system_execution_impl( - ecsact_system_like_id system_id, - ecsact_system_execution_impl system_exec_impl -) { - return runtime.set_system_execution_impl(system_id, system_exec_impl); -} -#endif - -ecsact_system_like_id ecsact_system_execution_context_id( - ecsact_system_execution_context* context -) { - return context->system_id; -} - -ecsact_system_execution_context* ecsact_system_execution_context_other( - ecsact_system_execution_context* context, - ecsact_entity_id entity_id -) { - return context->impl->other(entity_id); -} diff --git a/runtime/ecsact_rt_entt_core.cc b/runtime/ecsact_rt_entt_core.cc new file mode 100644 index 0000000..75d51d0 --- /dev/null +++ b/runtime/ecsact_rt_entt_core.cc @@ -0,0 +1,215 @@ +/** + * This file contains _some_ of the Ecsact core module implementations. Other + * implementations are generated through the ecsact_rt_entt_codegen plugin. + * + * Generally speaking if the implementation requires any type information + * derived from the input Ecsact files they will not be defined here. + */ + +#include "ecsact/runtime/core.h" +#include "ecsact/entt/detail/globals.hh" +#include "ecsact/entt/registry_util.hh" +#include "ecsact/entt/entity.hh" + +void ecsact_destroy_registry(ecsact_registry_id reg_id) { + auto& reg = ecsact::entt::get_registry(reg_id); + reg = {}; + assert(reg.template storage().in_use() == 0); +} + +void ecsact_clear_registry(ecsact_registry_id reg_id) { + auto& reg = ecsact::entt::get_registry(reg_id); + reg = {}; + assert(reg.template storage().in_use() == 0); +} + +ecsact_entity_id ecsact_create_entity(ecsact_registry_id reg_id) { + auto& reg = ecsact::entt::get_registry(reg_id); + return ecsact::entt::entity_id{reg.create()}; +} + +void ecsact_ensure_entity( + ecsact_registry_id reg_id, + ecsact_entity_id entity_id +) { + auto entity = ecsact::entt::entity_id{entity_id}; + auto& reg = ecsact::entt::get_registry(reg_id); + if(!reg.valid(entity)) { + auto new_entity_id = ecsact::entt::entity_id{reg.create(entity)}; + assert(entity == new_entity_id); + } +} + +bool ecsact_entity_exists( + ecsact_registry_id reg_id, + ecsact_entity_id entity_id +) { + auto& reg = ecsact::entt::get_registry(reg_id); + return reg.valid(ecsact::entt::entity_id{entity_id}); +} + +void ecsact_destroy_entity( + ecsact_registry_id reg_id, + ecsact_entity_id entity_id +) { + auto& reg = ecsact::entt::get_registry(reg_id); + reg.destroy(ecsact::entt::entity_id{entity_id}); +} + +int ecsact_count_entities(ecsact_registry_id reg_id) { + auto& reg = ecsact::entt::get_registry(reg_id); + return static_cast(reg.template storage().in_use()); +} + +void ecsact_get_entities( + ecsact_registry_id reg_id, + int max_entities_count, + ecsact_entity_id* out_entities, + int* out_entities_count +) { + auto& reg = ecsact::entt::get_registry(reg_id); + + int entities_count = + static_cast(reg.template storage().in_use()); + max_entities_count = std::min(entities_count, max_entities_count); + + { + // TODO(zaucy): Using `info.registry.each` is poor when max entities + // count is less than the amount of entities in the registry. + // Replace with a different fn such `as info.registry.data` + int i = 0; + + for(auto&& [entity_id] : reg.template storage().each()) { + if(i >= max_entities_count) { + return; + } + + out_entities[i] = ecsact::entt::entity_id{entity_id}; + ++i; + } + } + + if(out_entities_count != nullptr) { + *out_entities_count = entities_count; + } +} + +ecsact_add_error ecsact_add_component( + ecsact_registry_id reg_id, + ecsact_entity_id entity_id, + ecsact_component_id component_id, + const void* component_data +) { + using ecsact::entt::detail::globals::add_component_fns; + auto fn_itr = add_component_fns.find(component_id); + assert(fn_itr != add_component_fns.end()); + return fn_itr->second(reg_id, entity_id, component_id, component_data); +} + +bool ecsact_has_component( + ecsact_registry_id reg_id, + ecsact_entity_id entity_id, + ecsact_component_id component_id +) { + using ecsact::entt::detail::globals::has_component_fns; + auto fn_itr = has_component_fns.find(component_id); + assert(fn_itr != has_component_fns.end()); + return fn_itr->second(reg_id, entity_id, component_id); +} + +const void* ecsact_get_component( + ecsact_registry_id reg_id, + ecsact_entity_id entity_id, + ecsact_component_id component_id +) { + using ecsact::entt::detail::globals::get_component_fns; + auto fn_itr = get_component_fns.find(component_id); + assert(fn_itr != get_component_fns.end()); + return fn_itr->second(reg_id, entity_id, component_id); +} + +int ecsact_count_components( + ecsact_registry_id registry_id, + ecsact_entity_id entity_id +) { + using ecsact::entt::detail::globals::all_component_ids; + + int component_count = 0; + for(auto comp_id : all_component_ids) { + if(ecsact_has_component(registry_id, entity_id, comp_id)) { + component_count += 1; + } + } + return component_count; +} + +void ecsact_each_component( + ecsact_registry_id registry_id, + ecsact_entity_id entity_id, + ecsact_each_component_callback callback, + void* callback_user_data +) { + using ecsact::entt::detail::globals::all_component_ids; + + for(auto comp_id : all_component_ids) { + if(ecsact_has_component(registry_id, entity_id, comp_id)) { + callback( + comp_id, + ecsact_get_component(registry_id, entity_id, comp_id), + callback_user_data + ); + } + } +} + +void ecsact_get_components( + ecsact_registry_id registry_id, + ecsact_entity_id entity_id, + int max_components_count, + ecsact_component_id* out_component_ids, + const void** out_components_data, + int* out_components_count +) { + using ecsact::entt::detail::globals::all_component_ids; + + auto index = 0; + for(auto comp_id : all_component_ids) { + if(index >= max_components_count) { + break; + } + + if(ecsact_has_component(registry_id, entity_id, comp_id)) { + out_component_ids[index] = comp_id; + out_components_data[index] = + ecsact_get_component(registry_id, entity_id, comp_id); + index += 1; + } + } + + if(out_components_count != nullptr) { + *out_components_count = index; + } +} + +ecsact_update_error ecsact_update_component( + ecsact_registry_id reg_id, + ecsact_entity_id entity_id, + ecsact_component_id component_id, + const void* component_data +) { + using ecsact::entt::detail::globals::update_component_fns; + auto fn_itr = update_component_fns.find(component_id); + assert(fn_itr != update_component_fns.end()); + return fn_itr->second(reg_id, entity_id, component_id, component_data); +} + +void ecsact_remove_component( + ecsact_registry_id reg_id, + ecsact_entity_id entity_id, + ecsact_component_id component_id +) { + using ecsact::entt::detail::globals::remove_component_fns; + auto fn_itr = remove_component_fns.find(component_id); + assert(fn_itr != remove_component_fns.end()); + return fn_itr->second(reg_id, entity_id, component_id); +} diff --git a/runtime/ecsact_rt_entt_dynamic.cc b/runtime/ecsact_rt_entt_dynamic.cc new file mode 100644 index 0000000..f3bc5d7 --- /dev/null +++ b/runtime/ecsact_rt_entt_dynamic.cc @@ -0,0 +1,115 @@ +/** + * This file contains _some_ of the Ecsact dynamic module implementations. Other + * implementations are generated through the ecsact_rt_entt_codegen plugin. + * + * Generally speaking if the implementation requires any type information + * derived from the input Ecsact files they will not be defined here. + */ + +#include "ecsact/runtime/core.h" +#include "ecsact/entt/detail/globals.hh" +#include "ecsact/entt/registry_util.hh" +#include "ecsact/entt/entity.hh" +#include "ecsact/entt/detail/system_execution_context.hh" + +bool ecsact_system_execution_context_same( + const ecsact_system_execution_context* a, + const ecsact_system_execution_context* b +) { + assert(a != nullptr); + assert(b != nullptr); + return a->entity == b->entity; +} + +ecsact_entity_id ecsact_system_execution_context_entity( + const ecsact_system_execution_context* context +) { + assert(context != nullptr); + return context->entity; +} + +#ifdef ECSACT_ENTT_RUNTIME_DYNAMIC_SYSTEM_IMPLS +bool ecsact_set_system_execution_impl( + ecsact_system_like_id system_id, + ecsact_system_execution_impl system_exec_impl +) { + using ecsact::entt::detail::globals::system_impls; + system_impls[system_id] = system_exec_impl; + return true; +} +#endif + +void ecsact_system_execution_context_generate( + ecsact_system_execution_context* context, + int component_count, + ecsact_component_id* component_ids, + const void** components_data +) { + assert(context != nullptr); + return context->generate(component_count, component_ids, components_data); +} + +ecsact_system_like_id ecsact_system_execution_context_id( + ecsact_system_execution_context* context +) { + return context->id; +} + +ecsact_system_execution_context* ecsact_system_execution_context_other( + ecsact_system_execution_context* context, + ecsact_entity_id entity_id +) { + assert(context != nullptr); + return context->other(entity_id); +} + +void ecsact_system_execution_context_add( + ecsact_system_execution_context* context, + ecsact_component_like_id comp_id, + const void* component_data +) { + assert(context != nullptr); + return context->add(comp_id, component_data); +} + +void ecsact_system_execution_context_remove( + ecsact_system_execution_context* context, + ecsact_component_like_id comp_id +) { + assert(context != nullptr); + return context->remove(comp_id); +} + +void ecsact_system_execution_context_get( + ecsact_system_execution_context* context, + ecsact_component_like_id comp_id, + void* out_component_data +) { + assert(context != nullptr); + return context->get(comp_id, out_component_data); +} + +void ecsact_system_execution_context_update( + ecsact_system_execution_context* context, + ecsact_component_like_id comp_id, + const void* component_data +) { + assert(context != nullptr); + return context->update(comp_id, component_data); +} + +bool ecsact_system_execution_context_has( + ecsact_system_execution_context* context, + ecsact_component_like_id comp_id +) { + assert(context != nullptr); + return context->has(comp_id); +} + +void ecsact_system_execution_context_action( + ecsact_system_execution_context* context, + void* out_action_data +) { + assert(context != nullptr); + return context->action(out_action_data); +} diff --git a/runtime/index.bzl b/runtime/index.bzl index adc7300..c8675aa 100644 --- a/runtime/index.bzl +++ b/runtime/index.bzl @@ -1,14 +1,25 @@ """ """ -load("@rules_ecsact//ecsact:defs.bzl", "ecsact_codegen") -load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") load("@ecsact_rt_entt//bazel:copts.bzl", "copts") +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") +load("@rules_ecsact//ecsact:defs.bzl", "ecsact_codegen") def ecsact_entt_runtime(name, srcs = [], deps = [], system_impls = [], tags = [], ECSACT_ENTT_RUNTIME_USER_HEADER = None, ECSACT_ENTT_RUNTIME_PACKAGE = None, **kwargs): """ """ + ecsact_codegen( + name = "%s__cc_srcs" % name, + srcs = srcs, + tags = tags, + plugins = [ + "@ecsact_rt_entt//rt_entt_codegen", + ], + output_directory = "_%s__cc_srcs" % name, + **kwargs + ) + ecsact_codegen( name = "%s__public_hdrs" % name, srcs = srcs, @@ -19,6 +30,7 @@ def ecsact_entt_runtime(name, srcs = [], deps = [], system_impls = [], tags = [] "@ecsact_lang_cpp//systems_header_codegen", "@ecsact_lang_cpp//cpp_meta_header_codegen", ], + output_directory = "_%s__public_hdrs" % name, **kwargs ) @@ -27,7 +39,7 @@ def ecsact_entt_runtime(name, srcs = [], deps = [], system_impls = [], tags = [] hdrs = [":%s__public_hdrs" % name], tags = tags, copts = copts, - strip_include_prefix = "%s__public_hdrs" % name, + strip_include_prefix = "_%s__public_hdrs" % name, deps = [ "@ecsact_lang_cpp//:execution_context", "@ecsact_lang_cpp//:type_info", @@ -60,6 +72,7 @@ def ecsact_entt_runtime(name, srcs = [], deps = [], system_impls = [], tags = [] _cc_srcs = [ "@ecsact_rt_entt//runtime:sources", + "%s__cc_srcs" % name, ] # keep sorted diff --git a/test/BUILD.bazel b/test/BUILD.bazel index 25b1c01..b5ba7cb 100644 --- a/test/BUILD.bazel +++ b/test/BUILD.bazel @@ -1,14 +1,15 @@ -load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_test") load("@ecsact_rt_entt//bazel:copts.bzl", "copts") load("@ecsact_rt_entt//runtime:index.bzl", "ecsact_entt_runtime") +load("@rules_cc//cc:defs.bzl", "cc_test") load("@rules_ecsact//ecsact:defs.bzl", "ecsact_codegen") ecsact_codegen( name = "ecsact_cc_system_impl_srcs", srcs = [ - "runtime_test.ecsact", "imported_pkg.ecsact", + "runtime_test.ecsact", ], + output_directory = "_ecsact_cc_system_impl_srcs", plugins = [ "@ecsact_lang_cpp//cpp_systems_source_codegen", ], @@ -17,8 +18,8 @@ ecsact_codegen( ecsact_entt_runtime( name = "runtime", srcs = [ - "runtime_test.ecsact", "imported_pkg.ecsact", + "runtime_test.ecsact", ], ECSACT_ENTT_RUNTIME_PACKAGE = "::runtime_test::package", ECSACT_ENTT_RUNTIME_USER_HEADER = "runtime_test.ecsact.meta.hh", @@ -34,23 +35,11 @@ cc_test( "runtime_test.cc", ":ecsact_cc_system_impl_srcs", ], - copts = copts, args = ["--gtest_catch_exceptions=0"], + copts = copts, deps = [ ":runtime", "@googletest//:gtest", "@googletest//:gtest_main", ], ) - -cc_binary( - name = "debug_print_entt_views", - srcs = ["debug_print_entt_views.cc"], - copts = copts, - deps = [ - ":runtime__public_cc", - "@ecsact_rt_entt//:lib", - "@boost.mp11", - "@entt", - ], -) diff --git a/test/MODULE.bazel b/test/MODULE.bazel index e766caf..5ab3e4d 100644 --- a/test/MODULE.bazel +++ b/test/MODULE.bazel @@ -14,7 +14,7 @@ bazel_dep(name = "boost.mp11", version = "1.83.0.bzl.1") bazel_dep(name = "boost.dll", version = "1.83.0.bzl.2") bazel_dep(name = "entt", version = "3.12.2") bazel_dep(name = "ecsact_cli", version = "0.2.1") -bazel_dep(name = "toolchains_llvm", version = "0.10.3") +bazel_dep(name = "toolchains_llvm", version = "1.0.0", dev_dependency = True) bazel_dep(name = "hedron_compile_commands", dev_dependency = True) git_override( @@ -23,13 +23,13 @@ git_override( commit = "204aa593e002cbd177d30f11f54cff3559110bb9", ) -llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm") -llvm.toolchain(llvm_version = "16.0.4") - -use_repo(llvm, "llvm_toolchain") -register_toolchains("@llvm_toolchain//:all") - bazel_dep(name = "ecsact_rt_entt") local_path_override(module_name = "ecsact_rt_entt", path = "..") register_toolchains("@ecsact_cli//:all") + +llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm", dev_dependency = True) +llvm.toolchain(llvm_version = "17.0.6") + +use_repo(llvm, "llvm_toolchain") +register_toolchains("@llvm_toolchain//:all", dev_dependency = True) diff --git a/test/MODULE.bazel.lock b/test/MODULE.bazel.lock index d3f765d..4697d66 100644 --- a/test/MODULE.bazel.lock +++ b/test/MODULE.bazel.lock @@ -1,6 +1,6 @@ { - "lockFileVersion": 6, - "moduleFileHash": "2a0a4eb2b051343d8f92247f204bc7b9af8cfeeaa2b283a7d0fd8d35e9ab2b03", + "lockFileVersion": 3, + "moduleFileHash": "9177f0baaf3ca1cfd8f1d56ea40a083c6608afb944e410ea0328ed5f9f987e26", "flags": { "cmdRegistries": [ "https://raw.githubusercontent.com/ecsact-dev/bazel_registry/main", @@ -15,8 +15,8 @@ "compatibilityMode": "ERROR" }, "localOverrideHashes": { - "bazel_tools": "1ae69322ac3823527337acf02016e8ee95813d8d356f47060255b8956fa642f0", - "ecsact_rt_entt": "215fece1498754dd62c503a5262cf332d5ba82fea1bee121874a594da9efba14" + "bazel_tools": "922ea6752dc9105de5af957f7a99a6933c0a6a712d23df6aad16a9c399f7e787", + "ecsact_rt_entt": "8839f045a24a2d93bb42a4afadb8652605bc234851923898725996d55e386cf1" }, "moduleDepGraph": { "": { @@ -26,8 +26,8 @@ "repoName": "ecsact_rt_entt_test", "executionPlatformsToRegister": [], "toolchainsToRegister": [ - "@llvm_toolchain//:all", - "@ecsact_cli//:all" + "@ecsact_cli//:all", + "@llvm_toolchain//:all" ], "extensionUsages": [ { @@ -36,43 +36,45 @@ "usingModule": "", "location": { "file": "@@//:MODULE.bazel", - "line": 26, + "line": 31, "column": 21 }, "imports": { "llvm_toolchain": "llvm_toolchain" }, - "devImports": [], + "devImports": [ + "llvm_toolchain" + ], "tags": [ { "tagName": "toolchain", "attributeValues": { - "llvm_version": "16.0.4" + "llvm_version": "17.0.6" }, - "devDependency": false, + "devDependency": true, "location": { "file": "@@//:MODULE.bazel", - "line": 27, + "line": 32, "column": 15 } } ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true + "hasDevUseExtension": true, + "hasNonDevUseExtension": false } ], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "googletest": "googletest@1.14.0", - "rules_ecsact": "rules_ecsact@0.4.7", - "ecsact_lang_cpp": "ecsact_lang_cpp@0.3.0", + "rules_ecsact": "rules_ecsact@0.4.9", + "ecsact_lang_cpp": "ecsact_lang_cpp@0.3.3", "ecsact_runtime": "ecsact_runtime@0.5.1", "boost.mp11": "boost.mp11@1.83.0.bzl.1", "boost.dll": "boost.dll@1.83.0.bzl.2", "entt": "entt@3.12.2", "ecsact_cli": "ecsact_cli@0.2.1", - "toolchains_llvm": "toolchains_llvm@0.10.3", + "toolchains_llvm": "toolchains_llvm@1.0.0", "hedron_compile_commands": "hedron_compile_commands@_", "ecsact_rt_entt": "ecsact_rt_entt@_", "bazel_tools": "bazel_tools@_", @@ -108,14 +110,15 @@ } ], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_cc~0.0.9", "urls": [ "https://github.com/bazelbuild/rules_cc/releases/download/0.0.9/rules_cc-0.0.9.tar.gz" ], @@ -128,10 +131,10 @@ } } }, - "bazel_skylib@1.4.2": { + "bazel_skylib@1.5.0": { "name": "bazel_skylib", - "version": "1.4.2", - "key": "bazel_skylib@1.4.2", + "version": "1.5.0", + "key": "bazel_skylib@1.5.0", "repoName": "bazel_skylib", "executionPlatformsToRegister": [], "toolchainsToRegister": [ @@ -140,18 +143,19 @@ ], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "bazel_skylib~1.5.0", "urls": [ - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.2/bazel-skylib-1.4.2.tar.gz" + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" ], - "integrity": "sha256-Zv/ZMVZlv6r8lrUiePV8fi3Qn17eJ56m05sr5HHn46o=", + "integrity": "sha256-zVWgYudjuTSZIfD124w5MyiNyLpPdt2UFqrGis7jy5Q=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -168,15 +172,16 @@ "extensionUsages": [], "deps": { "com_google_absl": "abseil-cpp@20230802.0", - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "googletest~1.14.0", "urls": [ "https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz" ], @@ -189,60 +194,96 @@ } } }, - "rules_ecsact@0.4.7": { + "rules_ecsact@0.4.9": { "name": "rules_ecsact", - "version": "0.4.7", - "key": "rules_ecsact@0.4.7", + "version": "0.4.9", + "key": "rules_ecsact@0.4.9", "repoName": "rules_ecsact", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", - "platforms": "platforms@0.0.7", + "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_ecsact~0.4.9", "urls": [ - "https://github.com/ecsact-dev/rules_ecsact/releases/download/0.4.7/rules_ecsact-0.4.7.tar.gz" + "https://github.com/ecsact-dev/rules_ecsact/releases/download/0.4.9/rules_ecsact-0.4.9.tar.gz" ], - "integrity": "sha256-1zyWnPNZuDV0NF/jDgv9ijFD9gMgzZHz8nYbghnhmsM=", + "integrity": "sha256-o7Q4T9JMPy93vmP3g3rehIo+0TzaxbgsgS1PT52yNzE=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 } } }, - "ecsact_lang_cpp@0.3.0": { + "ecsact_lang_cpp@0.3.3": { "name": "ecsact_lang_cpp", - "version": "0.3.0", - "key": "ecsact_lang_cpp@0.3.0", + "version": "0.3.3", + "key": "ecsact_lang_cpp@0.3.3", "repoName": "ecsact_lang_cpp", "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], + "toolchainsToRegister": [ + "@ecsact_toolchains//:all" + ], + "extensionUsages": [ + { + "extensionBzlFile": "@rules_ecsact//ecsact:extensions.bzl", + "extensionName": "ecsact", + "usingModule": "ecsact_lang_cpp@0.3.3", + "location": { + "file": "https://raw.githubusercontent.com/ecsact-dev/bazel_registry/main/modules/ecsact_lang_cpp/0.3.3/MODULE.bazel", + "line": 21, + "column": 23 + }, + "imports": { + "ecsact_sdk": "ecsact_sdk", + "ecsact_toolchains": "ecsact_toolchains" + }, + "devImports": [], + "tags": [ + { + "tagName": "sdk_toolchain", + "attributeValues": { + "version": "0.6.2" + }, + "devDependency": false, + "location": { + "file": "https://raw.githubusercontent.com/ecsact-dev/bazel_registry/main/modules/ecsact_lang_cpp/0.3.3/MODULE.bazel", + "line": 22, + "column": 21 + } + } + ], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + } + ], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "ecsact_runtime": "ecsact_runtime@0.5.1", - "rules_ecsact": "rules_ecsact@0.4.7", - "ecsact_codegen": "ecsact_codegen@0.1.2", + "rules_ecsact": "rules_ecsact@0.4.9", + "ecsact_codegen": "ecsact_codegen@0.1.3", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "ecsact_lang_cpp~0.3.3", "urls": [ - "https://github.com/ecsact-dev/ecsact_lang_cpp/releases/download/0.3.0/ecsact_lang_cpp-0.3.0.tar.gz" + "https://github.com/ecsact-dev/ecsact_lang_cpp/releases/download/0.3.3/ecsact_lang_cpp-0.3.3.tar.gz" ], - "integrity": "sha256-sfxAfccKBK8l17mtbKlGefFzfGEx8kWdajiCglWg6Ao=", + "integrity": "sha256-6HiRCS7mXi5Zm00lHM6Us9Gchj95WhrzqdA3kV5LDt4=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -259,8 +300,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", + "platforms": "platforms@0.0.8", + "bazel_skylib": "bazel_skylib@1.5.0", "googletest": "googletest@1.14.0", "abseil-cpp": "abseil-cpp@20230802.0", "boost.dll": "boost.dll@1.83.0.bzl.2", @@ -269,9 +310,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "ecsact_runtime~0.5.1", "urls": [ "https://github.com/ecsact-dev/ecsact_runtime/releases/download/0.5.1/ecsact_runtime-0.5.1.tar.gz" ], @@ -296,9 +338,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.mp11~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/mp11/releases/download/bazelboost-1.83.0.bzl.1/mp11-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -319,7 +362,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "boost.assert": "boost.assert@1.83.0.bzl.1", "boost.config": "boost.config@1.83.0.bzl.6", "boost.core": "boost.core@1.83.0.bzl.1", @@ -339,9 +382,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.dll~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/dll/releases/download/bazelboost-1.83.0.bzl.2/dll-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -362,14 +406,15 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "entt~3.12.2", "urls": [ "https://github.com/ecsact-dev/entt/releases/download/bzlmod-entt-v3.12.2/bzlmod-entt-v3.12.2.tar.gz" ], @@ -391,24 +436,25 @@ "deps": { "nlohmann_json": "nlohmann_json@3.11.2", "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "rules_pkg": "rules_pkg@0.9.1", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "ecsact_parse": "ecsact_parse@0.3.0", "ecsact_runtime": "ecsact_runtime@0.5.1", "ecsact_interpret": "ecsact_interpret@0.5.0", - "ecsact_codegen": "ecsact_codegen@0.1.2", + "ecsact_codegen": "ecsact_codegen@0.1.3", "boost.dll": "boost.dll@1.83.0.bzl.2", "magic_enum": "magic_enum@0.9.3", "docopt.cpp": "docopt.cpp@0.6.2", - "rules_ecsact": "rules_ecsact@0.4.7", + "rules_ecsact": "rules_ecsact@0.4.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "ecsact_cli~0.2.1", "urls": [ "https://github.com/ecsact-dev/ecsact_cli/releases/download/0.2.1/ecsact_cli-0.2.1.tar.gz" ], @@ -419,30 +465,31 @@ } } }, - "toolchains_llvm@0.10.3": { + "toolchains_llvm@1.0.0": { "name": "toolchains_llvm", - "version": "0.10.3", - "key": "toolchains_llvm@0.10.3", + "version": "1.0.0", + "key": "toolchains_llvm@1.0.0", "repoName": "toolchains_llvm", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "toolchains_llvm~1.0.0", "urls": [ - "https://github.com/grailbio/bazel-toolchain/releases/download/0.10.3/toolchains_llvm-0.10.3.tar.gz" + "https://github.com/bazel-contrib/toolchains_llvm/releases/download/1.0.0/toolchains_llvm-1.0.0.tar.gz" ], - "integrity": "sha256-t80wHvew7OKNINPneGl6XjuBgoOTFQvtBIOMDFKWOgE=", - "strip_prefix": "toolchains_llvm-0.10.3", + "integrity": "sha256-6RxDYfmQEaVIFOGvvlxDbg0ymHEUajzVjCOitK+1Bzc=", + "strip_prefix": "toolchains_llvm-1.0.0", "remote_patches": {}, "remote_patch_strip": 0 } @@ -461,7 +508,7 @@ "extensionName": "hedron_compile_commands_extension", "usingModule": "hedron_compile_commands@_", "location": { - "file": "@@hedron_compile_commands~//:MODULE.bazel", + "file": "@@hedron_compile_commands~override//:MODULE.bazel", "line": 3, "column": 18 }, @@ -476,7 +523,7 @@ "extensionName": "hedron_compile_commands_extension", "usingModule": "hedron_compile_commands@_", "location": { - "file": "@@hedron_compile_commands~//:MODULE.bazel", + "file": "@@hedron_compile_commands~override//:MODULE.bazel", "line": 4, "column": 19 }, @@ -491,7 +538,7 @@ "extensionName": "hedron_compile_commands_extension", "usingModule": "hedron_compile_commands@_", "location": { - "file": "@@hedron_compile_commands~//:MODULE.bazel", + "file": "@@hedron_compile_commands~override//:MODULE.bazel", "line": 5, "column": 20 }, @@ -506,7 +553,7 @@ "extensionName": "hedron_compile_commands_extension", "usingModule": "hedron_compile_commands@_", "location": { - "file": "@@hedron_compile_commands~//:MODULE.bazel", + "file": "@@hedron_compile_commands~override//:MODULE.bazel", "line": 6, "column": 21 }, @@ -532,12 +579,13 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_ecsact": "rules_ecsact@0.4.7", + "bazel_skylib": "bazel_skylib@1.5.0", + "rules_ecsact": "rules_ecsact@0.4.9", "ecsact_runtime": "ecsact_runtime@0.5.1", - "ecsact_lang_cpp": "ecsact_lang_cpp@0.3.0", + "ecsact_lang_cpp": "ecsact_lang_cpp@0.3.3", "boost.mp11": "boost.mp11@1.83.0.bzl.1", "entt": "entt@3.12.2", + "ecsact_codegen": "ecsact_codegen@0.1.3", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" } @@ -559,7 +607,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 18, + "line": 17, "column": 29 }, "imports": { @@ -577,7 +625,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 22, + "line": 21, "column": 32 }, "imports": { @@ -594,7 +642,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 25, + "line": 24, "column": 32 }, "imports": { @@ -616,7 +664,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 36, + "line": 35, "column": 39 }, "imports": { @@ -633,7 +681,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 40, + "line": 39, "column": 48 }, "imports": { @@ -650,7 +698,7 @@ "usingModule": "bazel_tools@_", "location": { "file": "@@bazel_tools//:MODULE.bazel", - "line": 43, + "line": 42, "column": 42 }, "imports": { @@ -661,34 +709,16 @@ "tags": [], "hasDevUseExtension": false, "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@buildozer//:buildozer_binary.bzl", - "extensionName": "buildozer_binary", - "usingModule": "bazel_tools@_", - "location": { - "file": "@@bazel_tools//:MODULE.bazel", - "line": 47, - "column": 33 - }, - "imports": { - "buildozer_binary": "buildozer_binary" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true } ], "deps": { "rules_cc": "rules_cc@0.0.9", - "rules_java": "rules_java@7.4.0", + "rules_java": "rules_java@7.1.0", "rules_license": "rules_license@0.0.7", - "rules_proto": "rules_proto@5.3.0-21.7", - "rules_python": "rules_python@0.22.1", - "buildozer": "buildozer@6.4.0.2", - "platforms": "platforms@0.0.7", - "com_google_protobuf": "protobuf@21.7", + "rules_proto": "rules_proto@4.0.0", + "rules_python": "rules_python@0.10.2", + "platforms": "platforms@0.0.8", + "com_google_protobuf": "protobuf@3.19.6", "zlib": "zlib@1.3", "build_bazel_apple_support": "apple_support@1.5.0", "local_config_platform": "local_config_platform@_" @@ -703,14 +733,14 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_" } }, - "platforms@0.0.7": { + "platforms@0.0.8": { "name": "platforms", - "version": "0.0.7", - "key": "platforms@0.0.7", + "version": "0.0.8", + "key": "platforms@0.0.8", "repoName": "platforms", "executionPlatformsToRegister": [], "toolchainsToRegister": [], @@ -721,13 +751,14 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "platforms", "urls": [ - "https://github.com/bazelbuild/platforms/releases/download/0.0.7/platforms-0.0.7.tar.gz" + "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz" ], - "integrity": "sha256-OlYcmee9vpFzqmU/1Xn+hJ8djWc5V4CrR3Cx84FDHVE=", + "integrity": "sha256-gVBAZgU4ns7LbaB8vLUJ1WN6OrmiS8abEQFTE2fYnXQ=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -744,17 +775,18 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", + "platforms": "platforms@0.0.8", + "bazel_skylib": "bazel_skylib@1.5.0", "com_google_googletest": "googletest@1.14.0", "com_github_google_benchmark": "google_benchmark@1.8.2", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "abseil-cpp~20230802.0", "urls": [ "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.0.tar.gz" ], @@ -767,30 +799,31 @@ } } }, - "ecsact_codegen@0.1.2": { + "ecsact_codegen@0.1.3": { "name": "ecsact_codegen", - "version": "0.1.2", - "key": "ecsact_codegen@0.1.2", + "version": "0.1.3", + "key": "ecsact_codegen@0.1.3", "repoName": "ecsact_codegen", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "boost.dll": "boost.dll@1.83.0.bzl.2", "ecsact_runtime": "ecsact_runtime@0.5.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "ecsact_codegen~0.1.3", "urls": [ - "https://github.com/ecsact-dev/ecsact_codegen/releases/download/0.1.2/ecsact_codegen-0.1.2.tar.gz" + "https://github.com/ecsact-dev/ecsact_codegen/releases/download/0.1.3/ecsact_codegen-0.1.3.tar.gz" ], - "integrity": "sha256-ue36AxXNSRK2GNsxUM4ggOaIzU0PIbfnnw5hGz0gk7E=", + "integrity": "sha256-TvzdtIS1RdZtc6SVkp4m15zUjy6dWrvkdjnZLiBI9gs=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -807,8 +840,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", + "platforms": "platforms@0.0.8", + "bazel_skylib": "bazel_skylib@1.5.0", "boost.algorithm": "boost.algorithm@1.83.0.bzl.1", "boost.asio": "boost.asio@1.83.0.bzl.2", "boost.config": "boost.config@1.83.0.bzl.6", @@ -830,9 +863,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.process~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/process/releases/download/bazelboost-1.83.0.bzl.2/process-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -858,9 +892,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.assert~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/assert/releases/download/bazelboost-1.83.0.bzl.1/assert-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -885,9 +920,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.config~1.83.0.bzl.6", "urls": [ "https://github.com/bazelboost/config/releases/download/bazelboost-1.83.0.bzl.6/config-bazelboost-1.83.0.bzl.6.tar.gz" ], @@ -916,9 +952,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.core~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/core/releases/download/bazelboost-1.83.0.bzl.1/core-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -957,9 +994,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.filesystem~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/filesystem/releases/download/bazelboost-1.83.0.bzl.2/filesystem-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -992,9 +1030,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.function~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/function/releases/download/bazelboost-1.83.0.bzl.1/function-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1020,9 +1059,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.move~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/move/releases/download/bazelboost-1.83.0.bzl.1/move-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1047,9 +1087,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.predef~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/predef/releases/download/bazelboost-1.83.0.bzl.1/predef-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1081,9 +1122,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.smart_ptr~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/smart_ptr/releases/download/bazelboost-1.83.0.bzl.1/smart_ptr-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1137,9 +1179,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.spirit~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/spirit/releases/download/bazelboost-1.83.0.bzl.1/spirit-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1165,9 +1208,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.static_assert~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/static_assert/releases/download/bazelboost-1.83.0.bzl.1/static_assert-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1197,9 +1241,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.system~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/system/releases/download/bazelboost-1.83.0.bzl.1/system-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1226,9 +1271,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.throw_exception~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/throw_exception/releases/download/bazelboost-1.83.0.bzl.1/throw_exception-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1260,9 +1306,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.type_index~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/type_index/releases/download/bazelboost-1.83.0.bzl.1/type_index-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1289,9 +1336,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.type_traits~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/type_traits/releases/download/bazelboost-1.83.0.bzl.1/type_traits-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1318,9 +1366,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.winapi~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/winapi/releases/download/bazelboost-1.83.0.bzl.1/winapi-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -1344,9 +1393,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "nlohmann_json~3.11.2", "urls": [ "https://github.com/nlohmann/json/releases/download/v3.11.2/include.zip" ], @@ -1370,15 +1420,16 @@ "extensionUsages": [], "deps": { "rules_license": "rules_license@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_python": "rules_python@0.22.1", + "bazel_skylib": "bazel_skylib@1.5.0", + "rules_python": "rules_python@0.10.2", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_pkg~0.9.1", "urls": [ "https://github.com/bazelbuild/rules_pkg/releases/download/0.9.1/rules_pkg-0.9.1.tar.gz" ], @@ -1399,7 +1450,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "ecsact_runtime": "ecsact_runtime@0.5.1", "lexy": "lexy@2022.05.1", "magic_enum": "magic_enum@0.9.3", @@ -1407,9 +1458,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "ecsact_parse~0.3.0", "urls": [ "https://github.com/ecsact-dev/ecsact_parse/releases/download/0.3.0/ecsact_parse-0.3.0.tar.gz" ], @@ -1430,7 +1482,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "magic_enum": "magic_enum@0.9.3", "ecsact_runtime": "ecsact_runtime@0.5.1", "ecsact_parse": "ecsact_parse@0.3.0", @@ -1438,9 +1490,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "ecsact_interpret~0.5.0", "urls": [ "https://github.com/ecsact-dev/ecsact_interpret/releases/download/0.5.0/ecsact_interpret-0.5.0.tar.gz" ], @@ -1461,14 +1514,15 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "magic_enum~0.9.3", "urls": [ "https://github.com/Neargye/magic_enum/archive/d705e50884d9647ddff3fc1b08d96c9cd4ce530a.tar.gz" ], @@ -1489,15 +1543,16 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "boost.regex": "boost.regex@1.83.0.bzl.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "docopt.cpp~0.6.2", "urls": [ "https://github.com/ecsact-dev/docopt.cpp/releases/download/ecsact-bzlmod-0.6.2/docopt.cpp-ecsact-bzlmod-0.6.2.tar.gz" ], @@ -1508,10 +1563,10 @@ } } }, - "rules_java@7.4.0": { + "rules_java@7.1.0": { "name": "rules_java", - "version": "7.4.0", - "key": "rules_java@7.4.0", + "version": "7.1.0", + "key": "rules_java@7.1.0", "repoName": "rules_java", "executionPlatformsToRegister": [], "toolchainsToRegister": [ @@ -1544,9 +1599,9 @@ { "extensionBzlFile": "@rules_java//java:extensions.bzl", "extensionName": "toolchains", - "usingModule": "rules_java@7.4.0", + "usingModule": "rules_java@7.1.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel", + "file": "https://bcr.bazel.build/modules/rules_java/7.1.0/MODULE.bazel", "line": 19, "column": 27 }, @@ -1586,22 +1641,23 @@ } ], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_proto": "rules_proto@5.3.0-21.7", + "bazel_skylib": "bazel_skylib@1.5.0", + "rules_proto": "rules_proto@4.0.0", "rules_license": "rules_license@0.0.7", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0", "urls": [ - "https://github.com/bazelbuild/rules_java/releases/download/7.4.0/rules_java-7.4.0.tar.gz" + "https://github.com/bazelbuild/rules_java/releases/download/7.1.0/rules_java-7.1.0.tar.gz" ], - "integrity": "sha256-l27wi0nJKXQfIBeQ5Z44B8cq2B9CjIvJU82+/1/tFes=", + "integrity": "sha256-o3pOX2OrgnFuXdau75iO2EYcegC46TYnImKJn1h81OE=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -1621,9 +1677,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_license~0.0.7", "urls": [ "https://github.com/bazelbuild/rules_license/releases/download/0.0.7/rules_license-0.0.7.tar.gz" ], @@ -1634,39 +1691,41 @@ } } }, - "rules_proto@5.3.0-21.7": { + "rules_proto@4.0.0": { "name": "rules_proto", - "version": "5.3.0-21.7", - "key": "rules_proto@5.3.0-21.7", + "version": "4.0.0", + "key": "rules_proto@4.0.0", "repoName": "rules_proto", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "com_google_protobuf": "protobuf@21.7", + "bazel_skylib": "bazel_skylib@1.5.0", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_proto~4.0.0", "urls": [ - "https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.7.tar.gz" + "https://github.com/bazelbuild/rules_proto/archive/refs/tags/4.0.0.zip" ], - "integrity": "sha256-3D+yBqLLNEG0heseQjFlsjEjWh6psDG0Qzz3vB+kYN0=", - "strip_prefix": "rules_proto-5.3.0-21.7", - "remote_patches": {}, + "integrity": "sha256-Lr5z6xyuRA19pNtRYMGjKaynwQpck4H/lwYyVjyhoq4=", + "strip_prefix": "rules_proto-4.0.0", + "remote_patches": { + "https://bcr.bazel.build/modules/rules_proto/4.0.0/patches/module_dot_bazel.patch": "sha256-MclJO7tIAM2ElDAmscNId9pKTpOuDGHgVlW/9VBOIp0=" + }, "remote_patch_strip": 0 } } }, - "rules_python@0.22.1": { + "rules_python@0.10.2": { "name": "rules_python", - "version": "0.22.1", - "key": "rules_python@0.22.1", + "version": "0.10.2", + "key": "rules_python@0.10.2", "repoName": "rules_python", "executionPlatformsToRegister": [], "toolchainsToRegister": [ @@ -1674,72 +1733,24 @@ ], "extensionUsages": [ { - "extensionBzlFile": "@rules_python//python/extensions/private:internal_deps.bzl", - "extensionName": "internal_deps", - "usingModule": "rules_python@0.22.1", + "extensionBzlFile": "@rules_python//python:extensions.bzl", + "extensionName": "pip_install", + "usingModule": "rules_python@0.10.2", "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel", - "line": 14, - "column": 30 + "file": "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel", + "line": 7, + "column": 28 }, "imports": { - "pypi__build": "pypi__build", "pypi__click": "pypi__click", "pypi__colorama": "pypi__colorama", - "pypi__importlib_metadata": "pypi__importlib_metadata", "pypi__installer": "pypi__installer", - "pypi__more_itertools": "pypi__more_itertools", - "pypi__packaging": "pypi__packaging", "pypi__pep517": "pypi__pep517", "pypi__pip": "pypi__pip", "pypi__pip_tools": "pypi__pip_tools", "pypi__setuptools": "pypi__setuptools", "pypi__tomli": "pypi__tomli", - "pypi__wheel": "pypi__wheel", - "pypi__zipp": "pypi__zipp", - "pypi__coverage_cp310_aarch64-apple-darwin": "pypi__coverage_cp310_aarch64-apple-darwin", - "pypi__coverage_cp310_aarch64-unknown-linux-gnu": "pypi__coverage_cp310_aarch64-unknown-linux-gnu", - "pypi__coverage_cp310_x86_64-apple-darwin": "pypi__coverage_cp310_x86_64-apple-darwin", - "pypi__coverage_cp310_x86_64-unknown-linux-gnu": "pypi__coverage_cp310_x86_64-unknown-linux-gnu", - "pypi__coverage_cp311_aarch64-unknown-linux-gnu": "pypi__coverage_cp311_aarch64-unknown-linux-gnu", - "pypi__coverage_cp311_x86_64-apple-darwin": "pypi__coverage_cp311_x86_64-apple-darwin", - "pypi__coverage_cp311_x86_64-unknown-linux-gnu": "pypi__coverage_cp311_x86_64-unknown-linux-gnu", - "pypi__coverage_cp38_aarch64-apple-darwin": "pypi__coverage_cp38_aarch64-apple-darwin", - "pypi__coverage_cp38_aarch64-unknown-linux-gnu": "pypi__coverage_cp38_aarch64-unknown-linux-gnu", - "pypi__coverage_cp38_x86_64-apple-darwin": "pypi__coverage_cp38_x86_64-apple-darwin", - "pypi__coverage_cp38_x86_64-unknown-linux-gnu": "pypi__coverage_cp38_x86_64-unknown-linux-gnu", - "pypi__coverage_cp39_aarch64-apple-darwin": "pypi__coverage_cp39_aarch64-apple-darwin", - "pypi__coverage_cp39_aarch64-unknown-linux-gnu": "pypi__coverage_cp39_aarch64-unknown-linux-gnu", - "pypi__coverage_cp39_x86_64-apple-darwin": "pypi__coverage_cp39_x86_64-apple-darwin", - "pypi__coverage_cp39_x86_64-unknown-linux-gnu": "pypi__coverage_cp39_x86_64-unknown-linux-gnu" - }, - "devImports": [], - "tags": [ - { - "tagName": "install", - "attributeValues": {}, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel", - "line": 15, - "column": 22 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@rules_python//python/extensions:python.bzl", - "extensionName": "python", - "usingModule": "rules_python@0.22.1", - "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel", - "line": 50, - "column": 23 - }, - "imports": { - "pythons_hub": "pythons_hub" + "pypi__wheel": "pypi__wheel" }, "devImports": [], "tags": [], @@ -1747,175 +1758,60 @@ "hasNonDevUseExtension": true } ], - "deps": { - "platforms": "platforms@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_proto": "rules_proto@5.3.0-21.7", - "com_google_protobuf": "protobuf@21.7", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_python/releases/download/0.22.1/rules_python-0.22.1.tar.gz" - ], - "integrity": "sha256-pWQP3dS+sD6MH95e1xYMC6a9R359BIZhwwwGk2om/WM=", - "strip_prefix": "rules_python-0.22.1", - "remote_patches": { - "https://bcr.bazel.build/modules/rules_python/0.22.1/patches/module_dot_bazel_version.patch": "sha256-3+VLDH9gYDzNI4eOW7mABC/LKxh1xqF6NhacLbNTucs=" - }, - "remote_patch_strip": 1 - } - } - }, - "buildozer@6.4.0.2": { - "name": "buildozer", - "version": "6.4.0.2", - "key": "buildozer@6.4.0.2", - "repoName": "buildozer", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@buildozer//:buildozer_binary.bzl", - "extensionName": "buildozer_binary", - "usingModule": "buildozer@6.4.0.2", - "location": { - "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel", - "line": 7, - "column": 33 - }, - "imports": { - "buildozer_binary": "buildozer_binary" - }, - "devImports": [], - "tags": [ - { - "tagName": "buildozer", - "attributeValues": { - "sha256": { - "darwin-amd64": "d29e347ecd6b5673d72cb1a8de05bf1b06178dd229ff5eb67fad5100c840cc8e", - "darwin-arm64": "9b9e71bdbec5e7223871e913b65d12f6d8fa026684daf991f00e52ed36a6978d", - "linux-amd64": "8dfd6345da4e9042daa738d7fdf34f699c5dfce4632f7207956fceedd8494119", - "linux-arm64": "6559558fded658c8fa7432a9d011f7c4dcbac6b738feae73d2d5c352e5f605fa", - "windows-amd64": "e7f05bf847f7c3689dd28926460ce6e1097ae97380ac8e6ae7147b7b706ba19b" - }, - "version": "6.4.0" - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel", - "line": 8, - "column": 27 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], "deps": { "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_python~0.10.2", "urls": [ - "https://github.com/fmeum/buildozer/releases/download/v6.4.0.2/buildozer-v6.4.0.2.tar.gz" + "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.10.2.tar.gz" ], - "integrity": "sha256-k7tFKQMR2AygxpmZfH0yEPnQmF3efFgD9rBPkj+Yz/8=", - "strip_prefix": "buildozer-6.4.0.2", + "integrity": "sha256-o6bpn0l74In4HsCCiC5AJGv9Q19S9OgvN+iUSbBFc/Y=", + "strip_prefix": "rules_python-0.10.2", "remote_patches": { - "https://bcr.bazel.build/modules/buildozer/6.4.0.2/patches/module_dot_bazel_version.patch": "sha256-gKANF2HMilj7bWmuXs4lbBIAAansuWC4IhWGB/CerjU=" + "https://bcr.bazel.build/modules/rules_python/0.10.2/patches/module_dot_bazel.patch": "sha256-TScILAmXmmMtjJIwhLrgNZgqGPs6G3OAzXaLXLDNFrA=" }, - "remote_patch_strip": 1 + "remote_patch_strip": 0 } } }, - "protobuf@21.7": { + "protobuf@3.19.6": { "name": "protobuf", - "version": "21.7", - "key": "protobuf@21.7", + "version": "3.19.6", + "key": "protobuf@3.19.6", "repoName": "protobuf", "executionPlatformsToRegister": [], "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@rules_jvm_external//:extensions.bzl", - "extensionName": "maven", - "usingModule": "protobuf@21.7", - "location": { - "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", - "line": 22, - "column": 22 - }, - "imports": { - "maven": "maven" - }, - "devImports": [], - "tags": [ - { - "tagName": "install", - "attributeValues": { - "name": "maven", - "artifacts": [ - "com.google.code.findbugs:jsr305:3.0.2", - "com.google.code.gson:gson:2.8.9", - "com.google.errorprone:error_prone_annotations:2.3.2", - "com.google.j2objc:j2objc-annotations:1.3", - "com.google.guava:guava:31.1-jre", - "com.google.guava:guava-testlib:31.1-jre", - "com.google.truth:truth:1.1.2", - "junit:junit:4.13.2", - "org.mockito:mockito-core:4.3.1" - ] - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", - "line": 24, - "column": 14 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], + "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_python": "rules_python@0.22.1", - "rules_cc": "rules_cc@0.0.9", - "rules_proto": "rules_proto@5.3.0-21.7", - "rules_java": "rules_java@7.4.0", - "rules_pkg": "rules_pkg@0.9.1", - "com_google_abseil": "abseil-cpp@20230802.0", + "bazel_skylib": "bazel_skylib@1.5.0", "zlib": "zlib@1.3", - "upb": "upb@0.0.0-20220923-a547704", - "rules_jvm_external": "rules_jvm_external@4.4.2", - "com_google_googletest": "googletest@1.14.0", + "rules_python": "rules_python@0.10.2", + "rules_cc": "rules_cc@0.0.9", + "rules_proto": "rules_proto@4.0.0", + "rules_java": "rules_java@7.1.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "protobuf~3.19.6", "urls": [ - "https://github.com/protocolbuffers/protobuf/releases/download/v21.7/protobuf-all-21.7.zip" + "https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip" ], - "integrity": "sha256-VJOiH17T/FAuZv7GuUScBqVRztYwAvpIkDxA36jeeko=", - "strip_prefix": "protobuf-21.7", + "integrity": "sha256-OH4sVZuyx8G8N5jE5s/wFTgaebJ1hpavy/johzC0c4k=", + "strip_prefix": "protobuf-3.19.6", "remote_patches": { - "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel.patch": "sha256-q3V2+eq0v2XF0z8z+V+QF4cynD6JvHI1y3kI/+rzl5s=", - "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel_for_examples.patch": "sha256-O7YP6s3lo/1opUiO0jqXYORNHdZ/2q3hjz1QGy8QdIU=", - "https://bcr.bazel.build/modules/protobuf/21.7/patches/relative_repo_names.patch": "sha256-RK9RjW8T5UJNG7flIrnFiNE9vKwWB+8uWWtJqXYT0w4=", - "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_missing_files.patch": "sha256-Hyne4DG2u5bXcWHNxNMirA2QFAe/2Cl8oMm1XJdkQIY=" + "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/relative_repo_names.patch": "sha256-w/5gw/zGv8NFId+669hcdw1Uus2lxgYpulATHIwIByI=", + "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/remove_dependency_on_rules_jvm_external.patch": "sha256-THUTnVgEBmjA0W7fKzIyZOVG58DnW9HQTkr4D2zKUUc=", + "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/add_module_dot_bazel_for_examples.patch": "sha256-s/b1gi3baK3LsXefI2rQilhmkb2R5jVJdnT6zEcdfHY=", + "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/module_dot_bazel.patch": "sha256-S0DEni8zgx7rHscW3z/rCEubQnYec0XhNet640cw0h4=" }, "remote_patch_strip": 1 } @@ -1930,15 +1826,16 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "zlib~1.3", "urls": [ "https://github.com/madler/zlib/releases/download/v1.3/zlib-1.3.tar.gz" ], @@ -1982,15 +1879,16 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "platforms": "platforms@0.0.7", + "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "apple_support~1.5.0", "urls": [ "https://github.com/bazelbuild/apple_support/releases/download/1.5.0/apple_support.1.5.0.tar.gz" ], @@ -2010,8 +1908,8 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "platforms": "platforms@0.0.7", + "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.8", "rules_foreign_cc": "rules_foreign_cc@0.9.0", "rules_cc": "rules_cc@0.0.9", "libpfm": "libpfm@4.11.0", @@ -2019,9 +1917,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "google_benchmark~1.8.2", "urls": [ "https://github.com/google/benchmark/archive/refs/tags/v1.8.2.tar.gz" ], @@ -2065,9 +1964,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.algorithm~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/algorithm/releases/download/bazelboost-1.83.0.bzl.1/algorithm-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2088,8 +1988,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", - "bazel_skylib": "bazel_skylib@1.4.2", + "platforms": "platforms@0.0.8", + "bazel_skylib": "bazel_skylib@1.5.0", "boringssl": "boringssl@0.0.0-20230215-5c22014", "boost.align": "boost.align@1.83.0.bzl.1", "boost.array": "boost.array@1.83.0.bzl.1", @@ -2113,9 +2013,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.asio~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/asio/releases/download/bazelboost-1.83.0.bzl.2/asio-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -2152,9 +2053,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.fusion~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/fusion/releases/download/bazelboost-1.83.0.bzl.1/fusion-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2180,9 +2082,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.io~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/io/releases/download/bazelboost-1.83.0.bzl.1/io-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2221,9 +2124,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.iterator~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/iterator/releases/download/bazelboost-1.83.0.bzl.1/iterator-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2258,9 +2162,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.optional~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/optional/releases/download/bazelboost-1.83.0.bzl.1/optional-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2290,9 +2195,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.tokenizer~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/tokenizer/releases/download/bazelboost-1.83.0.bzl.1/tokenizer-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2324,9 +2230,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.utility~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/utility/releases/download/bazelboost-1.83.0.bzl.1/utility-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2359,9 +2266,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.atomic~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/atomic/releases/download/bazelboost-1.83.0.bzl.1/atomic-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2390,9 +2298,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.container_hash~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/container_hash/releases/download/bazelboost-1.83.0.bzl.1/container_hash-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2422,9 +2331,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.detail~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/detail/releases/download/bazelboost-1.83.0.bzl.2/detail-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -2451,9 +2361,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.bind~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/bind/releases/download/bazelboost-1.83.0.bzl.1/bind-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2478,9 +2389,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.preprocessor~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/preprocessor/releases/download/bazelboost-1.83.0.bzl.1/preprocessor-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2508,9 +2420,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.typeof~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/typeof/releases/download/bazelboost-1.83.0.bzl.1/typeof-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2540,9 +2453,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.array~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/array/releases/download/bazelboost-1.83.0.bzl.1/array-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2571,9 +2485,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.endian~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/endian/releases/download/bazelboost-1.83.0.bzl.1/endian-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2604,9 +2519,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.function_types~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/function_types/releases/download/bazelboost-1.83.0.bzl.1/function_types-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2637,9 +2553,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.integer~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/integer/releases/download/bazelboost-1.83.0.bzl.1/integer-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2671,9 +2588,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.mpl~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/mpl/releases/download/bazelboost-1.83.0.bzl.1/mpl-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2712,9 +2630,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.phoenix~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/phoenix/releases/download/bazelboost-1.83.0.bzl.1/phoenix-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2745,9 +2664,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.pool~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/pool/releases/download/bazelboost-1.83.0.bzl.1/pool-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2782,9 +2702,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.proto~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/proto/releases/download/bazelboost-1.83.0.bzl.1/proto-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2826,9 +2747,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.range~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/range/releases/download/bazelboost-1.83.0.bzl.1/range-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2865,9 +2787,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.regex~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/regex/releases/download/bazelboost-1.83.0.bzl.1/regex-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2921,9 +2844,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.thread~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/thread/releases/download/bazelboost-1.83.0.bzl.1/thread-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -2960,9 +2884,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.unordered~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/unordered/releases/download/bazelboost-1.83.0.bzl.1/unordered-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3002,9 +2927,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.variant~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/variant/releases/download/bazelboost-1.83.0.bzl.1/variant-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3032,9 +2958,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.variant2~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/variant2/releases/download/bazelboost-1.83.0.bzl.1/variant2-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3055,14 +2982,15 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.2", + "bazel_skylib": "bazel_skylib@1.5.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "lexy~2022.05.1", "urls": [ "https://github.com/zaucy/lexy/releases/download/bzlmod-v2022.05.1/bzlmod-lexy-v2022.05.1.tar.gz" ], @@ -3073,123 +3001,6 @@ } } }, - "upb@0.0.0-20220923-a547704": { - "name": "upb", - "version": "0.0.0-20220923-a547704", - "key": "upb@0.0.0-20220923-a547704", - "repoName": "upb", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_proto": "rules_proto@5.3.0-21.7", - "com_google_protobuf": "protobuf@21.7", - "com_google_absl": "abseil-cpp@20230802.0", - "platforms": "platforms@0.0.7", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz" - ], - "integrity": "sha256-z39x6v+QskwaKLSWRan/A6mmwecTQpHOcJActj5zZLU=", - "strip_prefix": "upb-a5477045acaa34586420942098f5fecd3570f577", - "remote_patches": { - "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/patches/module_dot_bazel.patch": "sha256-wH4mNS6ZYy+8uC0HoAft/c7SDsq2Kxf+J8dUakXhaB0=" - }, - "remote_patch_strip": 0 - } - } - }, - "rules_jvm_external@4.4.2": { - "name": "rules_jvm_external", - "version": "4.4.2", - "key": "rules_jvm_external@4.4.2", - "repoName": "rules_jvm_external", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@rules_jvm_external//:non-module-deps.bzl", - "extensionName": "non_module_deps", - "usingModule": "rules_jvm_external@4.4.2", - "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", - "line": 9, - "column": 32 - }, - "imports": { - "io_bazel_rules_kotlin": "io_bazel_rules_kotlin" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@rules_jvm_external//:extensions.bzl", - "extensionName": "maven", - "usingModule": "rules_jvm_external@4.4.2", - "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", - "line": 16, - "column": 22 - }, - "imports": { - "rules_jvm_external_deps": "rules_jvm_external_deps" - }, - "devImports": [], - "tags": [ - { - "tagName": "install", - "attributeValues": { - "name": "rules_jvm_external_deps", - "artifacts": [ - "com.google.cloud:google-cloud-core:1.93.10", - "com.google.cloud:google-cloud-storage:1.113.4", - "com.google.code.gson:gson:2.9.0", - "org.apache.maven:maven-artifact:3.8.6", - "software.amazon.awssdk:s3:2.17.183" - ], - "lock_file": "@rules_jvm_external//:rules_jvm_external_deps_install.json" - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", - "line": 18, - "column": 14 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "io_bazel_stardoc": "stardoc@0.5.1", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_jvm_external/archive/refs/tags/4.4.2.zip" - ], - "integrity": "sha256-c1YC9QgT6y6pPKP15DsZWb2AshO4NqB6YqKddXZwt3s=", - "strip_prefix": "rules_jvm_external-4.4.2", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, "rules_foreign_cc@0.9.0": { "name": "rules_foreign_cc", "version": "0.9.0", @@ -3237,15 +3048,16 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "platforms": "platforms@0.0.7", + "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0", "urls": [ "https://github.com/bazelbuild/rules_foreign_cc/archive/refs/tags/0.9.0.tar.gz" ], @@ -3268,15 +3080,16 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "rules_foreign_cc": "rules_foreign_cc@0.9.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "libpfm~4.11.0", "urls": [ "https://sourceforge.net/projects/perfmon2/files/libpfm4/libpfm-4.11.0.tar.gz" ], @@ -3308,9 +3121,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.concept_check~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/concept_check/releases/download/bazelboost-1.83.0.bzl.1/concept_check-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3342,9 +3156,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.exception~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/exception/releases/download/bazelboost-1.83.0.bzl.1/exception-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3373,9 +3188,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.tuple~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/tuple/releases/download/bazelboost-1.83.0.bzl.1/tuple-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3396,14 +3212,15 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.7", + "platforms": "platforms@0.0.8", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boringssl~0.0.0-20230215-5c22014", "urls": [ "https://github.com/google/boringssl/archive/5c22014ca513807ed03c657e8ede076164663979.zip" ], @@ -3434,9 +3251,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.align~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/align/releases/download/bazelboost-1.83.0.bzl.1/align-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3476,9 +3294,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.chrono~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/chrono/releases/download/bazelboost-1.83.0.bzl.1/chrono-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3510,9 +3329,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.context~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/context/releases/download/bazelboost-1.83.0.bzl.1/context-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3547,9 +3367,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.coroutine~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/coroutine/releases/download/bazelboost-1.83.0.bzl.1/coroutine-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3589,9 +3410,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.date_time~1.83.0.bzl.2", "urls": [ "https://github.com/bazelboost/date_time/releases/download/bazelboost-1.83.0.bzl.2/date_time-bazelboost-1.83.0.bzl.2.tar.gz" ], @@ -3625,9 +3447,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.functional~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/functional/releases/download/bazelboost-1.83.0.bzl.1/functional-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3659,9 +3482,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.conversion~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/conversion/releases/download/bazelboost-1.83.0.bzl.1/conversion-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3687,9 +3511,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.describe~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/describe/releases/download/bazelboost-1.83.0.bzl.1/describe-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3719,9 +3544,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.container~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/container/releases/download/bazelboost-1.83.0.bzl.1/container-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3751,9 +3577,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.intrusive~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/intrusive/releases/download/bazelboost-1.83.0.bzl.1/intrusive-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3789,9 +3616,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.lexical_cast~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/lexical_cast/releases/download/bazelboost-1.83.0.bzl.1/lexical_cast-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3802,36 +3630,6 @@ } } }, - "stardoc@0.5.1": { - "name": "stardoc", - "version": "0.5.1", - "key": "stardoc@0.5.1", - "repoName": "stardoc", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.2", - "rules_java": "rules_java@7.4.0", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/stardoc/releases/download/0.5.1/stardoc-0.5.1.tar.gz" - ], - "integrity": "sha256-qoFNrgrEALurLoiB+ZFcb0fElmS/CHxAmhX5BDjSwj4=", - "strip_prefix": "", - "remote_patches": { - "https://bcr.bazel.build/modules/stardoc/0.5.1/patches/module_dot_bazel.patch": "sha256-UAULCuTpJE7SG0YrR9XLjMfxMRmbP+za3uW9ONZ5rjI=" - }, - "remote_patch_strip": 0 - } - } - }, "boost.ratio@1.83.0.bzl.1": { "name": "boost.ratio", "version": "1.83.0.bzl.1", @@ -3853,9 +3651,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.ratio~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/ratio/releases/download/bazelboost-1.83.0.bzl.1/ratio-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3887,9 +3686,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.numeric_conversion~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/numeric_conversion/releases/download/bazelboost-1.83.0.bzl.1/numeric_conversion-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3922,9 +3722,10 @@ "local_config_platform": "local_config_platform@_" }, "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "boost.rational~1.83.0.bzl.1", "urls": [ "https://github.com/bazelboost/rational/releases/download/bazelboost-1.83.0.bzl.1/rational-bazelboost-1.83.0.bzl.1.tar.gz" ], @@ -3937,27 +3738,30 @@ } }, "moduleExtensions": { - "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": { + "@@apple_support~1.5.0//crosstool:setup.bzl%apple_cc_configure_extension": { "general": { "bzlTransitiveDigest": "pMLFCYaRPkgXPQ8vtuNkMfiHfPmRBy6QJfnid4sWfv0=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "local_config_apple_cc": { - "bzlFile": "@@apple_support~//crosstool:setup.bzl", + "bzlFile": "@@apple_support~1.5.0//crosstool:setup.bzl", "ruleClassName": "_apple_cc_autoconf", - "attributes": {} + "attributes": { + "name": "apple_support~1.5.0~apple_cc_configure_extension~local_config_apple_cc" + } }, "local_config_apple_cc_toolchains": { - "bzlFile": "@@apple_support~//crosstool:setup.bzl", + "bzlFile": "@@apple_support~1.5.0//crosstool:setup.bzl", "ruleClassName": "_apple_cc_autoconf_toolchains", - "attributes": {} + "attributes": { + "name": "apple_support~1.5.0~apple_cc_configure_extension~local_config_apple_cc_toolchains" + } } }, "recordedRepoMappingEntries": [ [ - "apple_support~", + "apple_support~1.5.0", "bazel_tools", "bazel_tools" ] @@ -3966,20 +3770,23 @@ }, "@@bazel_tools//tools/cpp:cc_configure.bzl%cc_configure_extension": { "general": { - "bzlTransitiveDigest": "PHpT2yqMGms2U4L3E/aZ+WcQalmZWm+ILdP3yiLsDhA=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "bzlTransitiveDigest": "mcsWHq3xORJexV5/4eCvNOLxFOQKV6eli3fkr+tEaqE=", + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "local_config_cc": { "bzlFile": "@@bazel_tools//tools/cpp:cc_configure.bzl", "ruleClassName": "cc_autoconf", - "attributes": {} + "attributes": { + "name": "bazel_tools~cc_configure_extension~local_config_cc" + } }, "local_config_cc_toolchains": { "bzlFile": "@@bazel_tools//tools/cpp:cc_configure.bzl", "ruleClassName": "cc_autoconf_toolchains", - "attributes": {} + "attributes": { + "name": "bazel_tools~cc_configure_extension~local_config_cc_toolchains" + } } }, "recordedRepoMappingEntries": [ @@ -3994,30 +3801,62 @@ "@@bazel_tools//tools/sh:sh_configure.bzl%sh_configure_extension": { "general": { "bzlTransitiveDigest": "hp4NgmNjEg5+xgvzfh6L83bt9/aiiWETuNpwNuF1MSU=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "local_config_sh": { "bzlFile": "@@bazel_tools//tools/sh:sh_configure.bzl", "ruleClassName": "sh_config", - "attributes": {} + "attributes": { + "name": "bazel_tools~sh_configure_extension~local_config_sh" + } } }, "recordedRepoMappingEntries": [] } }, - "@@rules_foreign_cc~//foreign_cc:extensions.bzl%ext": { + "@@rules_ecsact~0.4.9//ecsact:extensions.bzl%ecsact": { + "general": { + "bzlTransitiveDigest": "jvG4+kuuCYuIqgh6xUigt/VC2/ZYpiWpFwuG/BR78Wo=", + "accumulatedFileDigests": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "ecsact_toolchains": { + "bzlFile": "@@rules_ecsact~0.4.9//ecsact:extensions.bzl", + "ruleClassName": "_ecsact_toolchains_repository", + "attributes": { + "name": "rules_ecsact~0.4.9~ecsact~ecsact_toolchains", + "ecsact_exe": "C:/Users/Austin/AppData/Local/Microsoft/WindowsApps/ecsact.exe" + } + }, + "ecsact_sdk": { + "bzlFile": "@@rules_ecsact~0.4.9//ecsact:extensions.bzl", + "ruleClassName": "_ecsact_sdk_repository", + "attributes": { + "name": "rules_ecsact~0.4.9~ecsact~ecsact_sdk" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_ecsact~0.4.9", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_foreign_cc~0.9.0//foreign_cc:extensions.bzl%ext": { "general": { - "bzlTransitiveDigest": "QbxK92//k6c63fpMer2Lkk6224s9gwYoVFFS6mdkucI=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "bzlTransitiveDigest": "0RRlv8104I+0UofcyVmXkQH2vyzRFgZJ6Tz8I0oC0ZY=", + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "cmake-3.23.2-linux-aarch64": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake-3.23.2-linux-aarch64", "urls": [ "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-linux-aarch64.tar.gz" ], @@ -4027,9 +3866,10 @@ } }, "rules_foreign_cc_framework_toolchain_macos": { - "bzlFile": "@@rules_foreign_cc~//foreign_cc/private/framework:toolchain.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//foreign_cc/private/framework:toolchain.bzl", "ruleClassName": "framework_toolchain_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~rules_foreign_cc_framework_toolchain_macos", "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:macos_commands.bzl", "exec_compatible_with": [ "@platforms//os:macos" @@ -4041,6 +3881,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~ninja_1.11.0_linux", "urls": [ "https://github.com/ninja-build/ninja/releases/download/v1.11.0/ninja-linux.zip" ], @@ -4053,9 +3894,10 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~gnumake_src", "build_file_content": "filegroup(\n name = \"all_srcs\",\n srcs = glob([\"**\"]),\n visibility = [\"//visibility:public\"],\n)\n", "patches": [ - "@@rules_foreign_cc~//toolchains:make-reproducible-bootstrap.patch" + "@@rules_foreign_cc~0.9.0//toolchains:make-reproducible-bootstrap.patch" ], "sha256": "e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19", "strip_prefix": "make-4.3", @@ -4069,6 +3911,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~ninja_1.11.0_win", "urls": [ "https://github.com/ninja-build/ninja/releases/download/v1.11.0/ninja-win.zip" ], @@ -4078,9 +3921,10 @@ } }, "cmake_3.23.2_toolchains": { - "bzlFile": "@@rules_foreign_cc~//toolchains:prebuilt_toolchains_repository.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//toolchains:prebuilt_toolchains_repository.bzl", "ruleClassName": "prebuilt_toolchains_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake_3.23.2_toolchains", "repos": { "cmake-3.23.2-linux-aarch64": [ "@platforms//cpu:aarch64", @@ -4109,6 +3953,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake_src", "build_file_content": "filegroup(\n name = \"all_srcs\",\n srcs = glob([\"**\"]),\n visibility = [\"//visibility:public\"],\n)\n", "sha256": "f316b40053466f9a416adf981efda41b160ca859e97f6a484b447ea299ff26aa", "strip_prefix": "cmake-3.23.2", @@ -4121,6 +3966,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~bazel_skylib", "urls": [ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz", "https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz" @@ -4132,6 +3978,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake-3.23.2-macos-universal", "urls": [ "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-macos-universal.tar.gz" ], @@ -4141,9 +3988,10 @@ } }, "rules_foreign_cc_framework_toolchain_freebsd": { - "bzlFile": "@@rules_foreign_cc~//foreign_cc/private/framework:toolchain.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//foreign_cc/private/framework:toolchain.bzl", "ruleClassName": "framework_toolchain_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~rules_foreign_cc_framework_toolchain_freebsd", "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:freebsd_commands.bzl", "exec_compatible_with": [ "@platforms//os:freebsd" @@ -4152,9 +4000,10 @@ } }, "rules_foreign_cc_framework_toolchain_linux": { - "bzlFile": "@@rules_foreign_cc~//foreign_cc/private/framework:toolchain.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//foreign_cc/private/framework:toolchain.bzl", "ruleClassName": "framework_toolchain_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~rules_foreign_cc_framework_toolchain_linux", "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:linux_commands.bzl", "exec_compatible_with": [ "@platforms//os:linux" @@ -4166,6 +4015,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~rules_python", "sha256": "5fa3c738d33acca3b97622a13a741129f67ef43f5fdfcec63b29374cc0574c29", "strip_prefix": "rules_python-0.9.0", "url": "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.9.0.tar.gz" @@ -4175,6 +4025,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~ninja_1.11.0_mac", "urls": [ "https://github.com/ninja-build/ninja/releases/download/v1.11.0/ninja-mac.zip" ], @@ -4187,6 +4038,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~ninja_build_src", "build_file_content": "filegroup(\n name = \"all_srcs\",\n srcs = glob([\"**\"]),\n visibility = [\"//visibility:public\"],\n)\n", "sha256": "3c6ba2e66400fe3f1ae83deb4b235faf3137ec20bd5b08c29bfc368db143e4c6", "strip_prefix": "ninja-1.11.0", @@ -4199,6 +4051,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake-3.23.2-windows-i386", "urls": [ "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-windows-i386.zip" ], @@ -4211,6 +4064,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake-3.23.2-linux-x86_64", "urls": [ "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-linux-x86_64.tar.gz" ], @@ -4223,6 +4077,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~cmake-3.23.2-windows-x86_64", "urls": [ "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-windows-x86_64.zip" ], @@ -4232,9 +4087,10 @@ } }, "rules_foreign_cc_framework_toolchain_windows": { - "bzlFile": "@@rules_foreign_cc~//foreign_cc/private/framework:toolchain.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//foreign_cc/private/framework:toolchain.bzl", "ruleClassName": "framework_toolchain_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~rules_foreign_cc_framework_toolchain_windows", "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:windows_commands.bzl", "exec_compatible_with": [ "@platforms//os:windows" @@ -4243,9 +4099,10 @@ } }, "ninja_1.11.0_toolchains": { - "bzlFile": "@@rules_foreign_cc~//toolchains:prebuilt_toolchains_repository.bzl", + "bzlFile": "@@rules_foreign_cc~0.9.0//toolchains:prebuilt_toolchains_repository.bzl", "ruleClassName": "prebuilt_toolchains_repository", "attributes": { + "name": "rules_foreign_cc~0.9.0~ext~ninja_1.11.0_toolchains", "repos": { "ninja_1.11.0_linux": [ "@platforms//cpu:x86_64", @@ -4266,57 +4123,61 @@ }, "recordedRepoMappingEntries": [ [ - "rules_foreign_cc~", + "rules_foreign_cc~0.9.0", "bazel_tools", "bazel_tools" ], [ - "rules_foreign_cc~", + "rules_foreign_cc~0.9.0", "rules_foreign_cc", - "rules_foreign_cc~" + "rules_foreign_cc~0.9.0" ] ] } }, - "@@rules_java~//java:extensions.bzl%toolchains": { + "@@rules_java~7.1.0//java:extensions.bzl%toolchains": { "general": { - "bzlTransitiveDigest": "tJHbmWnq7m+9eUBnUdv7jZziQ26FmcGL9C5/hU3Q9UQ=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "bzlTransitiveDigest": "D02GmifxnV/IhYgspsJMDZ/aE8HxAjXgek5gi6FSto4=", + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "remotejdk21_linux_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_linux_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux//:jdk\",\n)\n" } }, "remotejdk17_linux_s390x_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_s390x_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_s390x//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_s390x//:jdk\",\n)\n" } }, "remotejdk17_macos_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_macos_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos//:jdk\",\n)\n" } }, "remotejdk21_macos_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_macos_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos_aarch64//:jdk\",\n)\n" } }, "remotejdk17_linux_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_aarch64//:jdk\",\n)\n" } }, @@ -4324,19 +4185,21 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_macos_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "e8260516de8b60661422a725f1df2c36ef888f6fb35393566b00e7325db3d04e", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-macosx_aarch64", + "sha256": "2a7a99a3ea263dbd8d32a67d1e6e363ba8b25c645c826f5e167a02bbafaff1fa", + "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-macosx_aarch64", "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_aarch64.tar.gz" + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_aarch64.tar.gz" ] } }, "remotejdk17_linux_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux//:jdk\",\n)\n" } }, @@ -4344,6 +4207,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_macos_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "314b04568ec0ae9b36ba03c9cbd42adc9e1265f74678923b19297d66eb84dcca", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-macosx_aarch64", @@ -4357,10 +4221,11 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "sha256": "fe2f88169696d6c6fc6e90ba61bb46be7d0ae3693cbafdf336041bf56679e8d1", + "name": "rules_java~7.1.0~toolchains~remote_java_tools_windows", + "sha256": "c5c70c214a350f12cbf52da8270fa43ba629b795f3dd328028a38f8f0d39c2a1", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_windows-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_windows-v13.4.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_windows-v13.1.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_windows-v13.1.zip" ] } }, @@ -4368,6 +4233,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_win", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "43408193ce2fa0862819495b5ae8541085b95660153f2adcf91a52d3a1710e83", "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-win_x64", @@ -4378,9 +4244,10 @@ } }, "remotejdk11_win_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_win_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win//:jdk\",\n)\n" } }, @@ -4388,6 +4255,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "54174439f2b3fddd11f1048c397fe7bb45d4c9d66d452d6889b013d04d21c4de", "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-linux_aarch64", @@ -4401,6 +4269,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "b9482f2304a1a68a614dfacddcf29569a72f0fac32e6c74f83dc1b9a157b8340", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-linux_x64", @@ -4411,16 +4280,18 @@ } }, "remotejdk11_linux_s390x_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_s390x_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_s390x//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_s390x//:jdk\",\n)\n" } }, "remotejdk11_linux_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux//:jdk\",\n)\n" } }, @@ -4428,6 +4299,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_macos", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "bcaab11cfe586fae7583c6d9d311c64384354fb2638eb9a012eca4c3f1a1d9fd", "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-macosx_x64", @@ -4441,6 +4313,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_win_arm64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2", "strip_prefix": "jdk-11.0.13+8", @@ -4453,6 +4326,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_macos", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "640453e8afe8ffe0fb4dceb4535fb50db9c283c64665eebb0ba68b19e65f4b1f", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-macosx_x64", @@ -4466,26 +4340,29 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_macos", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "3ad8fe288eb57d975c2786ae453a036aa46e47ab2ac3d81538ebae2a54d3c025", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-macosx_x64", + "sha256": "9639b87db586d0c89f7a9892ae47f421e442c64b97baebdff31788fbe23265bd", + "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-macosx_x64", "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_x64.tar.gz" + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_x64.tar.gz" ] } }, "remotejdk21_macos_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_macos_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos//:jdk\",\n)\n" } }, "remotejdk17_macos_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_macos_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos_aarch64//:jdk\",\n)\n" } }, @@ -4493,6 +4370,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_win", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "192f2afca57701de6ec496234f7e45d971bf623ff66b8ee4a5c81582054e5637", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-win_x64", @@ -4503,16 +4381,18 @@ } }, "remotejdk11_macos_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_macos_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos_aarch64//:jdk\",\n)\n" } }, "remotejdk11_linux_ppc64le_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_ppc64le_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_ppc64le//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_ppc64le//:jdk\",\n)\n" } }, @@ -4520,12 +4400,13 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_linux", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "5ad730fbee6bb49bfff10bf39e84392e728d89103d3474a7e5def0fd134b300a", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-linux_x64", + "sha256": "0c0eadfbdc47a7ca64aeab51b9c061f71b6e4d25d2d87674512e9b6387e9e3a6", + "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-linux_x64", "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_x64.tar.gz" + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_x64.tar.gz" ] } }, @@ -4533,10 +4414,11 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "sha256": "ba10f09a138cf185d04cbc807d67a3da42ab13d618c5d1ce20d776e199c33a39", + "name": "rules_java~7.1.0~toolchains~remote_java_tools_linux", + "sha256": "d134da9b04c9023fb6e56a5d4bffccee73f7bc9572ddc4e747778dacccd7a5a7", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_linux-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_linux-v13.4.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_linux-v13.1.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_linux-v13.1.zip" ] } }, @@ -4544,12 +4426,13 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_win", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "f7cc15ca17295e69c907402dfe8db240db446e75d3b150da7bf67243cded93de", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-win_x64", + "sha256": "e9959d500a0d9a7694ac243baf657761479da132f0f94720cbffd092150bd802", + "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-win_x64", "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-win_x64.zip", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-win_x64.zip" + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-win_x64.zip" ] } }, @@ -4557,19 +4440,21 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_linux_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "ce7df1af5d44a9f455617c4b8891443fbe3e4b269c777d8b82ed66f77167cfe0", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-linux_aarch64", + "sha256": "1fb64b8036c5d463d8ab59af06bf5b6b006811e6012e3b0eb6bccf57f1c55835", + "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-linux_aarch64", "urls": [ - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_aarch64.tar.gz", - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_aarch64.tar.gz" + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_aarch64.tar.gz" ] } }, "remotejdk11_linux_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_aarch64//:jdk\",\n)\n" } }, @@ -4577,6 +4462,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_s390x", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "a58fc0361966af0a5d5a31a2d8a208e3c9bb0f54f345596fd80b99ea9a39788b", "strip_prefix": "jdk-11.0.15+10", @@ -4590,6 +4476,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "6531cef61e416d5a7b691555c8cf2bdff689201b8a001ff45ab6740062b44313", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-linux_aarch64", @@ -4600,9 +4487,10 @@ } }, "remotejdk17_win_arm64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_win_arm64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win_arm64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win_arm64//:jdk\",\n)\n" } }, @@ -4610,6 +4498,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "a34b404f87a08a61148b38e1416d837189e1df7a040d949e743633daf4695a3c", "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-linux_x64", @@ -4620,16 +4509,18 @@ } }, "remotejdk11_macos_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_macos_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos//:jdk\",\n)\n" } }, "remotejdk17_linux_ppc64le_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_ppc64le_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_ppc64le//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_ppc64le//:jdk\",\n)\n" } }, @@ -4637,6 +4528,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_win_arm64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "6802c99eae0d788e21f52d03cab2e2b3bf42bc334ca03cbf19f71eb70ee19f85", "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-win_aarch64", @@ -4650,10 +4542,11 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "sha256": "076a7e198ad077f8c7d997986ef5102427fae6bbfce7a7852d2e080ed8767528", + "name": "rules_java~7.1.0~toolchains~remote_java_tools_darwin_arm64", + "sha256": "dab5bb87ec43e980faea6e1cec14bafb217b8e2f5346f53aa784fd715929a930", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_darwin_arm64-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_darwin_arm64-v13.4.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_darwin_arm64-v13.1.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_darwin_arm64-v13.1.zip" ] } }, @@ -4661,6 +4554,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_ppc64le", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "00a4c07603d0218cd678461b5b3b7e25b3253102da4022d31fc35907f21a2efd", "strip_prefix": "jdk-17.0.8.1+1", @@ -4671,23 +4565,26 @@ } }, "remotejdk21_linux_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_linux_aarch64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux_aarch64//:jdk\",\n)\n" } }, "remotejdk11_win_arm64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_win_arm64_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win_arm64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win_arm64//:jdk\",\n)\n" } }, "local_jdk": { - "bzlFile": "@@rules_java~//toolchains:local_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:local_java_repository.bzl", "ruleClassName": "_local_java_repository_rule", "attributes": { + "name": "rules_java~7.1.0~toolchains~local_jdk", "java_home": "", "version": "", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = {RUNTIME_VERSION},\n)\n" @@ -4697,10 +4594,11 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "sha256": "4523aec4d09c587091a2dae6f5c9bc6922c220f3b6030e5aba9c8f015913cc65", + "name": "rules_java~7.1.0~toolchains~remote_java_tools_darwin_x86_64", + "sha256": "0db40d8505a2b65ef0ed46e4256757807db8162f7acff16225be57c1d5726dbc", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_darwin_x86_64-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_darwin_x86_64-v13.4.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_darwin_x86_64-v13.1.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_darwin_x86_64-v13.1.zip" ] } }, @@ -4708,10 +4606,11 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "sha256": "e025fd260ac39b47c111f5212d64ec0d00d85dec16e49368aae82fc626a940cf", + "name": "rules_java~7.1.0~toolchains~remote_java_tools", + "sha256": "286bdbbd66e616fc4ed3f90101418729a73baa7e8c23a98ffbef558f74c0ad14", "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools-v13.4.zip" + "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools-v13.1.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools-v13.1.zip" ] } }, @@ -4719,6 +4618,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_s390x", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", "sha256": "ffacba69c6843d7ca70d572489d6cc7ab7ae52c60f0852cedf4cf0d248b6fc37", "strip_prefix": "jdk-17.0.8.1+1", @@ -4729,9 +4629,10 @@ } }, "remotejdk17_win_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk17_win_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win//:jdk\",\n)\n" } }, @@ -4739,6 +4640,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_ppc64le", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "a8fba686f6eb8ae1d1a9566821dbd5a85a1108b96ad857fdbac5c1e4649fc56f", "strip_prefix": "jdk-11.0.15+10", @@ -4752,6 +4654,7 @@ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk11_macos_aarch64", "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", "sha256": "7632bc29f8a4b7d492b93f3bc75a7b61630894db85d136456035ab2a24d38885", "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-macosx_aarch64", @@ -4762,39 +4665,41 @@ } }, "remotejdk21_win_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", + "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl", "ruleClassName": "_toolchain_config", "attributes": { + "name": "rules_java~7.1.0~toolchains~remotejdk21_win_toolchain_config_repo", "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_win//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_win//:jdk\",\n)\n" } } }, "recordedRepoMappingEntries": [ [ - "rules_java~", + "rules_java~7.1.0", "bazel_tools", "bazel_tools" ], [ - "rules_java~", + "rules_java~7.1.0", "remote_java_tools", - "rules_java~~toolchains~remote_java_tools" + "rules_java~7.1.0~toolchains~remote_java_tools" ] ] } }, - "@@toolchains_llvm~//toolchain/extensions:llvm.bzl%llvm": { + "@@toolchains_llvm~1.0.0//toolchain/extensions:llvm.bzl%llvm": { "general": { - "bzlTransitiveDigest": "3nNfnSeAMDHL89V+Fx0CSyRM5AVYpQ/ucZSH4JQW6no=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, + "bzlTransitiveDigest": "TDQeZ8W4/yRTNKZS7ZodQPztqcEssr6T69gEHR1xQDc=", + "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { "llvm_toolchain": { - "bzlFile": "@@toolchains_llvm~//toolchain:rules.bzl", + "bzlFile": "@@toolchains_llvm~1.0.0//toolchain:rules.bzl", "ruleClassName": "toolchain", "attributes": { + "name": "toolchains_llvm~1.0.0~llvm~llvm_toolchain", "absolute_paths": false, + "archive_flags": {}, "compile_flags": {}, "coverage_compile_flags": {}, "coverage_link_flags": {}, @@ -4802,29 +4707,34 @@ "cxx_flags": {}, "cxx_standard": {}, "dbg_compile_flags": {}, + "exec_arch": "", + "exec_os": "", "link_flags": {}, "link_libs": {}, "llvm_versions": { - "": "16.0.4" + "": "17.0.6" }, "opt_compile_flags": {}, "opt_link_flags": {}, "stdlib": {}, - "sysroot": {}, "target_settings": {}, + "unfiltered_compile_flags": {}, "toolchain_roots": {}, - "unfiltered_compile_flags": {} + "sysroot": {} } }, "llvm_toolchain_llvm": { - "bzlFile": "@@toolchains_llvm~//toolchain:rules.bzl", + "bzlFile": "@@toolchains_llvm~1.0.0//toolchain:rules.bzl", "ruleClassName": "llvm", "attributes": { + "name": "toolchains_llvm~1.0.0~llvm~llvm_toolchain_llvm", "alternative_llvm_sources": [], "auth_patterns": {}, "distribution": "auto", + "exec_arch": "", + "exec_os": "", "llvm_mirror": "", - "llvm_version": "16.0.4", + "llvm_version": "17.0.6", "llvm_versions": {}, "netrc": "", "sha256": {}, @@ -4835,14 +4745,14 @@ }, "recordedRepoMappingEntries": [ [ - "toolchains_llvm~", + "toolchains_llvm~1.0.0", "bazel_tools", "bazel_tools" ], [ - "toolchains_llvm~", + "toolchains_llvm~1.0.0", "toolchains_llvm", - "toolchains_llvm~" + "toolchains_llvm~1.0.0" ] ] } diff --git a/test/debug_print_entt_views.cc b/test/debug_print_entt_views.cc deleted file mode 100644 index c2be6ae..0000000 --- a/test/debug_print_entt_views.cc +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include -#include "ecsact/entt/system_view.hh" -#include "runtime_test.ecsact.meta.hh" - -auto replace_all( - std::string& str, - std::string_view find, - std::string_view replace -) { - auto idx = str.find(find); - while(idx != std::string::npos) { - str.replace(idx, find.size(), replace); - idx = str.find(find, idx + replace.size()); - } -} - -template -auto pretty_type_string() { - std::string pretty_type = typeid(T).name(); - - replace_all(pretty_type, "class ", ""); - replace_all(pretty_type, "struct ", ""); - replace_all(pretty_type, "enum ", ""); - replace_all(pretty_type, "ecsact::entt::detail::", ""); - replace_all(pretty_type, "entt::basic_view", "view"); - replace_all(pretty_type, "runtime_test::", ""); - replace_all(pretty_type, ",", ", "); - replace_all(pretty_type, "> >", ">>"); - - return pretty_type; -} - -template -auto print_system_views() { - using boost::mp11::mp_for_each; - using ecsact::entt::system_association_views_type; - using ecsact::entt::system_view_type; - - std::cout // - << " " << pretty_type_string() << "\n" - << " | " << pretty_type_string>() << "\n"; - - mp_for_each>([](V) { - std::cout // - << " | " << pretty_type_string() << " (association view)\n"; - }); - - std::cout << "\n"; -} - -auto main() -> int { - using boost::mp11::mp_for_each; - using runtime_test::package; - - std::cout << " ==== [ System Views ] ==== \n"; - mp_for_each([](S) { - print_system_views(); - }); - - std::cout << " ==== [ Action Views ] ==== \n"; - mp_for_each([](S) { - print_system_views(); - }); - - return 0; -} diff --git a/test/runtime_test.cc b/test/runtime_test.cc index a775293..c34bb18 100644 --- a/test/runtime_test.cc +++ b/test/runtime_test.cc @@ -105,6 +105,7 @@ void runtime_test::AddAssocTest::impl(context& ctx) { // Get Target other context from OtherEntityComponent auto target_ctx = ctx._ctx.other(other_entity.target); + assert(target_ctx._ctx != nullptr); target_ctx.add(AddAssocTestComponent{.num = 10}); } @@ -119,6 +120,21 @@ void runtime_test::RemoveAssocTest::impl(context& ctx) { target_ctx.remove(); } +void runtime_test::TestTwoAdds::impl(context& ctx) { +} + +void runtime_test::TestOneAdd::impl(context& ctx) { +} + +void runtime_test::TestTwoRemoves::impl(context& ctx) { +} + +void runtime_test::ParentSystem::impl(context& ctx) { +} + +void runtime_test::ParentSystem::NestedSystem::impl(context& ctx) { +} + TEST(Core, CreateRegistry) { auto reg_id = ecsact_create_registry("CreateRegistry"); EXPECT_NE(reg_id, ecsact_invalid_registry_id); @@ -444,8 +460,8 @@ TEST(Core, AddAssocOk) { AddAssocTest_ran = false; AssocTestAction_ran = false; auto exec_err = reg.execute_systems(std::array{options}); - EXPECT_TRUE(AddAssocTest_ran) << "AddAssocTest Impl Didn't Executed"; - EXPECT_TRUE(AssocTestAction_ran) << "AssocTestAction Impl Didn't Executed"; + EXPECT_TRUE(AddAssocTest_ran) << "AddAssocTest Impl Didn't Execute"; + EXPECT_TRUE(AssocTestAction_ran) << "AssocTestAction Impl Didn't Execute"; EXPECT_EQ(exec_err, ECSACT_EXEC_SYS_OK); exec_err = ecsact_execute_systems(reg.id(), 1, nullptr, nullptr); diff --git a/test/runtime_test.ecsact b/test/runtime_test.ecsact index 046861b..a2acf3f 100644 --- a/test/runtime_test.ecsact +++ b/test/runtime_test.ecsact @@ -120,3 +120,39 @@ system AddsAutoRemovedTag { adds AutoRemovedTag; } +component AddA; +component AddB; + +system TestTwoAdds { + readonly Health; + adds AddA; + adds AddB; +} + +system TestOneAdd { + readonly Health; + adds AddA; +} + +component RemoveA; +component RemoveB; + +system TestTwoRemoves { + removes RemoveA; + removes RemoveB; +} + +component ParentComponent { + i32 a; +} + +component NestedComponent { + f32 b; +}; + +system ParentSystem { + readwrite ParentComponent; + system NestedSystem { + readwrite NestedComponent; + } +}