From df63169412f387944b73d681951e003c4f2b4c26 Mon Sep 17 00:00:00 2001 From: Kelwan Date: Thu, 9 May 2024 16:30:56 -0700 Subject: [PATCH] feat: Add build recipe and tests --- BUILD.bazel | 2 + MODULE.bazel | 9 +- MODULE.bazel.lock | 509 +++++++++++++++------- bazel/common.bazelrc | 1 + test/test_recipe.yml => build_recipe.yml | 74 ++-- rt_entt_codegen/rt_entt_codegen.cc | 1 + rt_entt_codegen/shared/comps_with_caps.hh | 1 - rt_entt_codegen/shared/util.hh | 4 +- test/BUILD.bazel | 66 ++- test/MODULE.bazel | 11 +- test/MODULE.bazel.lock | 483 +++++++++++++------- test/ecsact_rt_entt_codegen.dll | Bin 865547 -> 0 bytes test/spawn.cc | 20 + test/spawn.hh | 8 + test/test_build_recipe.cc | 26 +- 15 files changed, 839 insertions(+), 376 deletions(-) rename test/test_recipe.yml => build_recipe.yml (88%) delete mode 100644 test/ecsact_rt_entt_codegen.dll create mode 100644 test/spawn.cc create mode 100644 test/spawn.hh diff --git a/BUILD.bazel b/BUILD.bazel index 7ba6a884..1597d930 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -13,3 +13,5 @@ cc_library( hdrs = glob(["ecsact/**/*.hh"]), copts = copts, ) + +exports_files(["build_recipe.yml"]) diff --git a/MODULE.bazel b/MODULE.bazel index b17800ec..68511d9b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -12,7 +12,7 @@ bazel_dep(name = "ecsact_lang_cpp", version = "0.4.1") bazel_dep(name = "boost.mp11", version = "1.83.0.bzl.1") bazel_dep(name = "entt", version = "3.12.2") bazel_dep(name = "ecsact_codegen", version = "0.2.0") -bazel_dep(name = "ecsact_cli", version = "0.3.4") +bazel_dep(name = "ecsact_cli", version = "0.3.6") bazel_dep(name = "xxhash", version = "0.8.2") bazel_dep(name = "googletest", version = "1.14.0") @@ -24,6 +24,13 @@ git_override( remote = "https://github.com/hedronvision/bazel-compile-commands-extractor.git", ) +# TODO: https://github.com/bazelbuild/bazel-central-registry/pull/1916 +git_override( + module_name = "libarchive", + commit = "7c331f92acea5243c195cdc6fb46ecfa11ce1ce2", + remote = "https://github.com/zaucy/libarchive.git", +) + 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") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 5129ebb6..f40fb935 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -1,9 +1,10 @@ { "lockFileVersion": 6, - "moduleFileHash": "51f0a1261e0714a54dcca45b393ee4424fde46f4cb27a79cf40cad885b80de22", + "moduleFileHash": "3ef366d54334a5e2b6da5f075911b05c271f7ff50aa7586d54cf416cbd37220d", "flags": { "cmdRegistries": [ "https://raw.githubusercontent.com/ecsact-dev/bazel_registry/main", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2", "https://raw.githubusercontent.com/bazelboost/registry/main", "https://bcr.bazel.build" ], @@ -34,7 +35,7 @@ "usingModule": "", "location": { "file": "@@//:MODULE.bazel", - "line": 26, + "line": 34, "column": 21 }, "imports": { @@ -52,7 +53,7 @@ "devDependency": true, "location": { "file": "@@//:MODULE.bazel", - "line": 27, + "line": 35, "column": 15 } } @@ -63,15 +64,16 @@ ], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_ecsact": "rules_ecsact@0.5.0", "ecsact_runtime": "ecsact_runtime@0.6.1", "ecsact_lang_cpp": "ecsact_lang_cpp@0.4.1", "boost.mp11": "boost.mp11@1.83.0.bzl.1", "entt": "entt@3.12.2", "ecsact_codegen": "ecsact_codegen@0.2.0", - "ecsact_cli": "ecsact_cli@0.3.4", + "ecsact_cli": "ecsact_cli@0.3.6", "xxhash": "xxhash@0.8.2", + "googletest": "googletest@1.14.0", "toolchains_llvm": "toolchains_llvm@1.0.0", "hedron_compile_commands": "hedron_compile_commands@_", "bazel_tools": "bazel_tools@_", @@ -93,7 +95,7 @@ "extensionName": "cc_configure_extension", "usingModule": "rules_cc@0.0.9", "location": { - "file": "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_cc/0.0.9/MODULE.bazel", "line": 9, "column": 29 }, @@ -107,7 +109,7 @@ } ], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -121,16 +123,16 @@ "integrity": "sha256-IDeHW5pEVtzkp50RKorohbvEqtlo5lh9ym5k86CQDN8=", "strip_prefix": "rules_cc-0.0.9", "remote_patches": { - "https://bcr.bazel.build/modules/rules_cc/0.0.9/patches/module_dot_bazel_version.patch": "sha256-mM+qzOI0SgAdaJBlWOSMwMPKpaA9b7R37Hj/tp5bb4g=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_cc/0.0.9/patches/module_dot_bazel_version.patch": "sha256-mM+qzOI0SgAdaJBlWOSMwMPKpaA9b7R37Hj/tp5bb4g=" }, "remote_patch_strip": 0 } } }, - "bazel_skylib@1.5.0": { + "bazel_skylib@1.6.1": { "name": "bazel_skylib", - "version": "1.5.0", - "key": "bazel_skylib@1.5.0", + "version": "1.6.1", + "key": "bazel_skylib@1.6.1", "repoName": "bazel_skylib", "executionPlatformsToRegister": [], "toolchainsToRegister": [ @@ -139,7 +141,7 @@ ], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -148,9 +150,9 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.6.1/bazel-skylib-1.6.1.tar.gz" ], - "integrity": "sha256-zVWgYudjuTSZIfD124w5MyiNyLpPdt2UFqrGis7jy5Q=", + "integrity": "sha256-nziIakBUjG6WwQa3UvJCEw7hGqoGila6flb0UR8z5PI=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -167,9 +169,9 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", - "platforms": "platforms@0.0.9", - "ecsact_cli": "ecsact_cli@0.3.4", + "bazel_skylib": "bazel_skylib@1.6.1", + "platforms": "platforms@0.0.10", + "ecsact_cli": "ecsact_cli@0.3.6", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -197,8 +199,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.1", "googletest": "googletest@1.14.0", "abseil-cpp": "abseil-cpp@20230802.0", "boost.dll": "boost.dll@1.83.0.bzl.2", @@ -230,7 +232,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "ecsact_runtime": "ecsact_runtime@0.6.1", "rules_ecsact": "rules_ecsact@0.5.0", "ecsact_codegen": "ecsact_codegen@0.2.0", @@ -288,7 +290,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -316,7 +318,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "boost.dll": "boost.dll@1.83.0.bzl.2", "ecsact_runtime": "ecsact_runtime@0.6.1", "bazel_tools": "bazel_tools@_", @@ -336,10 +338,10 @@ } } }, - "ecsact_cli@0.3.4": { + "ecsact_cli@0.3.6": { "name": "ecsact_cli", - "version": "0.3.4", - "key": "ecsact_cli@0.3.4", + "version": "0.3.6", + "key": "ecsact_cli@0.3.6", "repoName": "ecsact_cli", "executionPlatformsToRegister": [], "toolchainsToRegister": [], @@ -347,21 +349,23 @@ "deps": { "rules_cc": "rules_cc@0.0.9", "nlohmann_json": "nlohmann_json@3.11.3", - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_pkg": "rules_pkg@0.10.1", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "ecsact_parse": "ecsact_parse@0.4.0", "ecsact_runtime": "ecsact_runtime@0.6.1", - "ecsact_interpret": "ecsact_interpret@0.6.0", + "ecsact_interpret": "ecsact_interpret@0.6.1", "ecsact_codegen": "ecsact_codegen@0.2.0", "boost.dll": "boost.dll@1.83.0.bzl.2", "magic_enum": "magic_enum@0.9.3", - "curl": "curl@8.4.0", + "curl": "curl@8.7.1.bcr.1", "docopt.cpp": "docopt.cpp@0.6.2", "boost.process": "boost.process@1.83.0.bzl.2", "boost.algorithm": "boost.algorithm@1.83.0.bzl.1", "boost.url": "boost.url@1.83.0.bzl.2", "yaml-cpp": "yaml-cpp@0.8.0", + "libarchive": "libarchive@_", + "xxhash": "xxhash@0.8.2", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -370,9 +374,9 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/ecsact-dev/ecsact_cli/releases/download/0.3.4/ecsact_cli-0.3.4.tar.gz" + "https://github.com/ecsact-dev/ecsact_cli/releases/download/0.3.6/ecsact_cli-0.3.6.tar.gz" ], - "integrity": "sha256-o/uv0o+zrxPoSgTo88232q3TWfM4raPxnB95qlIQWaw=", + "integrity": "sha256-l9Bz4nRl7kywbphkH9ghdAJirBZypAJoWqw+90bbs6Y=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -401,8 +405,39 @@ "integrity": "sha256-uu4Mav1PAxZd56TmeYjRbw8rJXtR0OPLkZCTAqJqecQ=", "strip_prefix": "xxHash-0.8.2", "remote_patches": { - "https://bcr.bazel.build/modules/xxhash/0.8.2/patches/add_build_file.patch": "sha256-WQDdUpYas3Sbezqz0dJ5kMdr/c729ki+QLZv4iwEOj8=", - "https://bcr.bazel.build/modules/xxhash/0.8.2/patches/module_dot_bazel.patch": "sha256-ZLVQs0CBa7/fVGDx0804Hg7ORsWd92G06m2z1N5PeMg=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/xxhash/0.8.2/patches/add_build_file.patch": "sha256-WQDdUpYas3Sbezqz0dJ5kMdr/c729ki+QLZv4iwEOj8=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/xxhash/0.8.2/patches/module_dot_bazel.patch": "sha256-ZLVQs0CBa7/fVGDx0804Hg7ORsWd92G06m2z1N5PeMg=" + }, + "remote_patch_strip": 0 + } + } + }, + "googletest@1.14.0": { + "name": "googletest", + "version": "1.14.0", + "key": "googletest@1.14.0", + "repoName": "googletest", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "com_google_absl": "abseil-cpp@20230802.0", + "platforms": "platforms@0.0.10", + "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", + "ruleClassName": "http_archive", + "attributes": { + "urls": [ + "https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz" + ], + "integrity": "sha256-itWYxzrXluDYKAsILOvYKmMNc+c808cAV5OKZQG7pdc=", + "strip_prefix": "googletest-1.14.0", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/googletest/1.14.0/patches/module_dot_bazel.patch": "sha256-CSomzvti38LCuURDG5EEoa3O1tQF3cKKt/mknnP1qcc=" }, "remote_patch_strip": 0 } @@ -417,9 +452,9 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -656,9 +691,9 @@ "rules_proto": "rules_proto@5.3.0-21.7", "rules_python": "rules_python@0.24.0", "buildozer": "buildozer@6.4.0.2", - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "com_google_protobuf": "protobuf@21.7", - "zlib": "zlib@1.3", + "zlib": "zlib@1.3.1.bcr.1", "build_bazel_apple_support": "apple_support@1.5.0", "local_config_platform": "local_config_platform@_" } @@ -672,14 +707,14 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_" } }, - "platforms@0.0.9": { + "platforms@0.0.10": { "name": "platforms", - "version": "0.0.9", - "key": "platforms@0.0.9", + "version": "0.0.10", + "key": "platforms@0.0.10", "repoName": "platforms", "executionPlatformsToRegister": [], "toolchainsToRegister": [], @@ -687,9 +722,9 @@ { "extensionBzlFile": "@platforms//host:extension.bzl", "extensionName": "host_platform", - "usingModule": "platforms@0.0.9", + "usingModule": "platforms@0.0.10", "location": { - "file": "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/platforms/0.0.10/MODULE.bazel", "line": 9, "column": 30 }, @@ -712,46 +747,15 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/bazelbuild/platforms/releases/download/0.0.9/platforms-0.0.9.tar.gz" + "https://github.com/bazelbuild/platforms/releases/download/0.0.10/platforms-0.0.10.tar.gz" ], - "integrity": "sha256-XtpTnIQSZQMcL4LYrno6ZJC9YhduDAOPxGnqv5H2FJs=", + "integrity": "sha256-IY7+juc20mo1cmY7N0olPAErcW2K8MB+hC6C8jigp+4=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 } } }, - "googletest@1.14.0": { - "name": "googletest", - "version": "1.14.0", - "key": "googletest@1.14.0", - "repoName": "googletest", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "com_google_absl": "abseil-cpp@20230802.0", - "platforms": "platforms@0.0.9", - "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", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz" - ], - "integrity": "sha256-itWYxzrXluDYKAsILOvYKmMNc+c808cAV5OKZQG7pdc=", - "strip_prefix": "googletest-1.14.0", - "remote_patches": { - "https://bcr.bazel.build/modules/googletest/1.14.0/patches/module_dot_bazel.patch": "sha256-CSomzvti38LCuURDG5EEoa3O1tQF3cKKt/mknnP1qcc=" - }, - "remote_patch_strip": 0 - } - } - }, "abseil-cpp@20230802.0": { "name": "abseil-cpp", "version": "20230802.0", @@ -762,8 +766,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.1", "com_google_googletest": "googletest@1.14.0", "com_github_google_benchmark": "google_benchmark@1.8.2", "bazel_tools": "bazel_tools@_", @@ -779,7 +783,7 @@ "integrity": "sha256-WdKXavnW7PABqBo1dJpuVRozW5SdNJGM+t4Hc3udk8U=", "strip_prefix": "abseil-cpp-20230802.0", "remote_patches": { - "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/patches/module_dot_bazel.patch": "sha256-tppa7eDWtr2QUqOhIzKmHL5DEqUqfMFQIH7tkhFDY8E=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/abseil-cpp/20230802.0/patches/module_dot_bazel.patch": "sha256-tppa7eDWtr2QUqOhIzKmHL5DEqUqfMFQIH7tkhFDY8E=" }, "remote_patch_strip": 0 } @@ -795,7 +799,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "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", @@ -838,8 +842,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.1", "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", @@ -896,7 +900,7 @@ "integrity": "sha256-oiRh0TEZrFx48gXT3x2xNAPljOG7F5TtyTE2dzE/Sp0=", "strip_prefix": "", "remote_patches": { - "https://bcr.bazel.build/modules/nlohmann_json/3.11.3/patches/module_dot_bazel.patch": "sha256-OmeSCp1IqWbHGPJs0v5taUiPLEsI9KEJPLsnPpKB/B8=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/nlohmann_json/3.11.3/patches/module_dot_bazel.patch": "sha256-OmeSCp1IqWbHGPJs0v5taUiPLEsI9KEJPLsnPpKB/B8=" }, "remote_patch_strip": 0 } @@ -913,7 +917,7 @@ "deps": { "rules_license": "rules_license@0.0.7", "rules_python": "rules_python@0.24.0", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -941,7 +945,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "ecsact_runtime": "ecsact_runtime@0.6.1", "lexy": "lexy@2022.05.1", "magic_enum": "magic_enum@0.9.3", @@ -962,17 +966,17 @@ } } }, - "ecsact_interpret@0.6.0": { + "ecsact_interpret@0.6.1": { "name": "ecsact_interpret", - "version": "0.6.0", - "key": "ecsact_interpret@0.6.0", + "version": "0.6.1", + "key": "ecsact_interpret@0.6.1", "repoName": "ecsact_interpret", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "magic_enum": "magic_enum@0.9.3", "ecsact_runtime": "ecsact_runtime@0.6.1", "ecsact_parse": "ecsact_parse@0.4.0", @@ -984,9 +988,9 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/ecsact-dev/ecsact_interpret/releases/download/0.6.0/ecsact_interpret-0.6.0.tar.gz" + "https://github.com/ecsact-dev/ecsact_interpret/releases/download/0.6.1/ecsact_interpret-0.6.1.tar.gz" ], - "integrity": "sha256-YDtn32eLL0JDIGBSelHroEiIBaS2tBjnXsVyn3Cuf18=", + "integrity": "sha256-1aW5PB3CmxlhNCtu9Q4pXk+Udh3eoyPF8mkY6fwS1Zk=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -1003,7 +1007,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -1021,16 +1025,18 @@ } } }, - "curl@8.4.0": { + "curl@8.7.1.bcr.1": { "name": "curl", - "version": "8.4.0", - "key": "curl@8.4.0", + "version": "8.7.1.bcr.1", + "key": "curl@8.7.1.bcr.1", "repoName": "curl", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "bazel_skylib": "bazel_skylib@1.6.1", + "mbedtls": "mbedtls@3.6.0", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -1039,15 +1045,16 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/curl/curl/releases/download/curl-8_4_0/curl-8.4.0.tar.gz" + "https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz" ], - "integrity": "sha256-gW5BgJwEP/KF6MDwanWh+iUCEbv7LcCgN+7vOfGp5Cc=", - "strip_prefix": "curl-8.4.0", + "integrity": "sha256-+RJJyH9o6gDPJ8RP36WnhCPkHnG31AjlkBqYltkFxJU=", + "strip_prefix": "curl-8.7.1", "remote_patches": { - "https://bcr.bazel.build/modules/curl/8.4.0/patches/add_build_file.patch": "sha256-Vcb973u9Diuzp+nG0XzkID+LvaTdbJ6M6tZxH1Vtyo0=", - "https://bcr.bazel.build/modules/curl/8.4.0/patches/module_dot_bazel.patch": "sha256-EEYIkUUDdDiyntAtQHOhsgwqJgs/EvZP6pjuxPUeWIo=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/curl/8.7.1.bcr.1/patches/add_build_file.patch": "sha256-v72CABzBMc2lrA1Oy/QLsxd8x0bv/zkPjxTPGfArI8I=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/curl/8.7.1.bcr.1/patches/module_dot_bazel.patch": "sha256-CmB4PaZ8lHufyVHpS4z/rUPT3aPWg/I29b0ulErrYlY=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/curl/8.7.1.bcr.1/patches/add_curl_config.patch": "sha256-vdS5XRiVn5iKvJcdr0FilwCrJpQnWhEqStalazJ1Dy8=" }, - "remote_patch_strip": 0 + "remote_patch_strip": 1 } } }, @@ -1061,7 +1068,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "boost.regex": "boost.regex@1.83.0.bzl.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -1171,7 +1178,7 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -1186,12 +1193,34 @@ "integrity": "sha256-++dLvc7iHWVnFWiHBto8i+z9lG2SzURwXMYJi7I7OhY=", "strip_prefix": "yaml-cpp-0.8.0", "remote_patches": { - "https://bcr.bazel.build/modules/yaml-cpp/0.8.0/patches/module_dot_bazel.patch": "sha256-YM6xq0Mtu51Okntj5lRQ3V04DyZNm4hZdrSDMio1KeU=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/yaml-cpp/0.8.0/patches/module_dot_bazel.patch": "sha256-YM6xq0Mtu51Okntj5lRQ3V04DyZNm4hZdrSDMio1KeU=" }, "remote_patch_strip": 1 } } }, + "libarchive@_": { + "name": "libarchive", + "version": "3.7.3", + "key": "libarchive@_", + "repoName": "libarchive", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "bzip2": "bzip2@1.0.8.bcr.1", + "lz4": "lz4@1.9.4", + "xz": "xz@5.4.5.bcr.2", + "zlib": "zlib@1.3.1.bcr.1", + "zstd": "zstd@1.5.6", + "platforms": "platforms@0.0.10", + "rules_cc": "rules_cc@0.0.9", + "bazel_skylib": "bazel_skylib@1.6.1", + "mbedtls": "mbedtls@3.6.0", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + } + }, "rules_java@7.4.0": { "name": "rules_java", "version": "7.4.0", @@ -1230,7 +1259,7 @@ "extensionName": "toolchains", "usingModule": "rules_java@7.4.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_java/7.4.0/MODULE.bazel", "line": 19, "column": 27 }, @@ -1270,9 +1299,9 @@ } ], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_proto": "rules_proto@5.3.0-21.7", "rules_license": "rules_license@0.0.7", "bazel_tools": "bazel_tools@_", @@ -1327,7 +1356,7 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "com_google_protobuf": "protobuf@21.7", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", @@ -1362,7 +1391,7 @@ "extensionName": "internal_deps", "usingModule": "rules_python@0.24.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.24.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_python/0.24.0/MODULE.bazel", "line": 14, "column": 30 }, @@ -1389,7 +1418,7 @@ "attributeValues": {}, "devDependency": false, "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.24.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_python/0.24.0/MODULE.bazel", "line": 15, "column": 22 } @@ -1403,7 +1432,7 @@ "extensionName": "python", "usingModule": "rules_python@0.24.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.24.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_python/0.24.0/MODULE.bazel", "line": 36, "column": 23 }, @@ -1420,7 +1449,7 @@ }, "devDependency": false, "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.24.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_python/0.24.0/MODULE.bazel", "line": 42, "column": 17 } @@ -1431,8 +1460,8 @@ } ], "deps": { - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_proto": "rules_proto@5.3.0-21.7", "com_google_protobuf": "protobuf@21.7", "bazel_tools": "bazel_tools@_", @@ -1448,7 +1477,7 @@ "integrity": "sha256-CoADsEQpTXhArH2dc+7wXWzraC11FngaTsYu6zRwJXg=", "strip_prefix": "rules_python-0.24.0", "remote_patches": { - "https://bcr.bazel.build/modules/rules_python/0.24.0/patches/module_dot_bazel_version.patch": "sha256-cz8Rx8aNLvYvSpiVWk8umcsBy6jAAC0YwU42zj1cNlU=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_python/0.24.0/patches/module_dot_bazel_version.patch": "sha256-cz8Rx8aNLvYvSpiVWk8umcsBy6jAAC0YwU42zj1cNlU=" }, "remote_patch_strip": 0 } @@ -1467,7 +1496,7 @@ "extensionName": "buildozer_binary", "usingModule": "buildozer@6.4.0.2", "location": { - "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/buildozer/6.4.0.2/MODULE.bazel", "line": 7, "column": 33 }, @@ -1490,7 +1519,7 @@ }, "devDependency": false, "location": { - "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/buildozer/6.4.0.2/MODULE.bazel", "line": 8, "column": 27 } @@ -1514,7 +1543,7 @@ "integrity": "sha256-k7tFKQMR2AygxpmZfH0yEPnQmF3efFgD9rBPkj+Yz/8=", "strip_prefix": "buildozer-6.4.0.2", "remote_patches": { - "https://bcr.bazel.build/modules/buildozer/6.4.0.2/patches/module_dot_bazel_version.patch": "sha256-gKANF2HMilj7bWmuXs4lbBIAAansuWC4IhWGB/CerjU=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/buildozer/6.4.0.2/patches/module_dot_bazel_version.patch": "sha256-gKANF2HMilj7bWmuXs4lbBIAAansuWC4IhWGB/CerjU=" }, "remote_patch_strip": 1 } @@ -1533,7 +1562,7 @@ "extensionName": "maven", "usingModule": "protobuf@21.7", "location": { - "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/MODULE.bazel", "line": 22, "column": 22 }, @@ -1560,7 +1589,7 @@ }, "devDependency": false, "location": { - "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/MODULE.bazel", "line": 24, "column": 14 } @@ -1571,14 +1600,14 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_python": "rules_python@0.24.0", "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.10.1", "com_google_abseil": "abseil-cpp@20230802.0", - "zlib": "zlib@1.3", + "zlib": "zlib@1.3.1.bcr.1", "upb": "upb@0.0.0-20220923-a547704", "rules_jvm_external": "rules_jvm_external@4.4.2", "com_google_googletest": "googletest@1.14.0", @@ -1595,25 +1624,25 @@ "integrity": "sha256-VJOiH17T/FAuZv7GuUScBqVRztYwAvpIkDxA36jeeko=", "strip_prefix": "protobuf-21.7", "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://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/patches/add_module_dot_bazel.patch": "sha256-q3V2+eq0v2XF0z8z+V+QF4cynD6JvHI1y3kI/+rzl5s=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/patches/add_module_dot_bazel_for_examples.patch": "sha256-O7YP6s3lo/1opUiO0jqXYORNHdZ/2q3hjz1QGy8QdIU=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/patches/relative_repo_names.patch": "sha256-RK9RjW8T5UJNG7flIrnFiNE9vKwWB+8uWWtJqXYT0w4=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/patches/add_missing_files.patch": "sha256-Hyne4DG2u5bXcWHNxNMirA2QFAe/2Cl8oMm1XJdkQIY=" }, "remote_patch_strip": 1 } } }, - "zlib@1.3": { + "zlib@1.3.1.bcr.1": { "name": "zlib", - "version": "1.3", - "key": "zlib@1.3", + "version": "1.3.1.bcr.1", + "key": "zlib@1.3.1.bcr.1", "repoName": "zlib", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -1623,15 +1652,15 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/madler/zlib/releases/download/v1.3/zlib-1.3.tar.gz" + "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" ], - "integrity": "sha256-/wukwpIBPbwnUws6geH5qBPNOd4Byl4Pi/NVcC76WT4=", - "strip_prefix": "zlib-1.3", + "integrity": "sha256-mpOyt9/ax3zrpaVYpYDnRmfdb+3kWFuR7vtg8Dty3yM=", + "strip_prefix": "zlib-1.3.1", "remote_patches": { - "https://bcr.bazel.build/modules/zlib/1.3/patches/add_build_file.patch": "sha256-Ei+FYaaOo7A3jTKunMEodTI0Uw5NXQyZEcboMC8JskY=", - "https://bcr.bazel.build/modules/zlib/1.3/patches/module_dot_bazel.patch": "sha256-fPWLM+2xaF/kuy+kZc1YTfW6hNjrkG400Ho7gckuyJk=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/zlib/1.3.1.bcr.1/patches/add_build_file.patch": "sha256-0MCgNjvE1kGfdKTdDt4PEBHJMIwtDYHB7h69zhxDSNI=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/zlib/1.3.1.bcr.1/patches/add_module_file.patch": "sha256-euR5cSrSZnUKPOIJKRu3BY/Dphe1+ekPC6OWaAQfDjQ=" }, - "remote_patch_strip": 0 + "remote_patch_strip": 1 } } }, @@ -1650,7 +1679,7 @@ "extensionName": "apple_cc_configure_extension", "usingModule": "apple_support@1.5.0", "location": { - "file": "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/apple_support/1.5.0/MODULE.bazel", "line": 17, "column": 35 }, @@ -1665,8 +1694,8 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", - "platforms": "platforms@0.0.9", + "bazel_skylib": "bazel_skylib@1.6.1", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -1693,8 +1722,8 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", - "platforms": "platforms@0.0.9", + "bazel_skylib": "bazel_skylib@1.6.1", + "platforms": "platforms@0.0.10", "rules_foreign_cc": "rules_foreign_cc@0.9.0", "rules_cc": "rules_cc@0.0.9", "libpfm": "libpfm@4.11.0", @@ -1711,7 +1740,7 @@ "integrity": "sha256-KqspgNA3YTf5adkoSPu2gharsHYzA0U0/IxlzE56DpM=", "strip_prefix": "benchmark-1.8.2", "remote_patches": { - "https://bcr.bazel.build/modules/google_benchmark/1.8.2/patches/module_dot_bazel.patch": "sha256-703OrC3OH7pk9qrGkAMbvp/8yEoHiesDKHNVIKVJB/M=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/google_benchmark/1.8.2/patches/module_dot_bazel.patch": "sha256-703OrC3OH7pk9qrGkAMbvp/8yEoHiesDKHNVIKVJB/M=" }, "remote_patch_strip": 0 } @@ -2215,8 +2244,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.1", "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", @@ -2474,7 +2503,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -2492,6 +2521,36 @@ } } }, + "mbedtls@3.6.0": { + "name": "mbedtls", + "version": "3.6.0", + "key": "mbedtls@3.6.0", + "repoName": "mbedtls", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "platforms": "platforms@0.0.10", + "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/Mbed-TLS/mbedtls/releases/download/v3.6.0/mbedtls-3.6.0.tar.bz2" + ], + "integrity": "sha256-Ps+U/P2qyvt1d4agG3U4phdQ69hcSwJPVv+LoUkPzTg=", + "strip_prefix": "mbedtls-3.6.0", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/mbedtls/3.6.0/patches/add_build.patch": "sha256-+eevKk6D53jwSk1vngf7au/XMw/T++lxiQ/hlYb0fUA=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/mbedtls/3.6.0/patches/module_dot_bazel.patch": "sha256-zau8FpFxNUirkyEVgW50LwrrsB2Dt0Kp25zu0p55t0U=" + }, + "remote_patch_strip": 1 + } + } + }, "boost.regex@1.83.0.bzl.1": { "name": "boost.regex", "version": "1.83.0.bzl.1", @@ -2866,6 +2925,126 @@ } } }, + "bzip2@1.0.8.bcr.1": { + "name": "bzip2", + "version": "1.0.8.bcr.1", + "key": "bzip2@1.0.8.bcr.1", + "repoName": "bzip2", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "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://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" + ], + "integrity": "sha256-q1oDF27hBtPw+pDjgdpHjdrkBZGBU8yiSOaCzQxKImk=", + "strip_prefix": "bzip2-1.0.8", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/bzip2/1.0.8.bcr.1/patches/add_build_file.patch": "sha256-QPcAoslzyuAkL4VQgb18uhZaUu8A30/LUrD8wHaKZHY=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/bzip2/1.0.8.bcr.1/patches/module_dot_bazel.patch": "sha256-lfm8AQkGepyTCT/UQrNpojSPcuu9TnCpPEWykSew7r8=" + }, + "remote_patch_strip": 0 + } + } + }, + "lz4@1.9.4": { + "name": "lz4", + "version": "1.9.4", + "key": "lz4@1.9.4", + "repoName": "lz4", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "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", + "ruleClassName": "http_archive", + "attributes": { + "urls": [ + "https://github.com/lz4/lz4/releases/download/v1.9.4/lz4-1.9.4.tar.gz" + ], + "integrity": "sha256-Cw46oHyMBj3fQLCCvffjehVivaQKD/UnKVfz6Yfg5Us=", + "strip_prefix": "lz4-1.9.4", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/lz4/1.9.4/patches/add_build_file.patch": "sha256-v1zbuA4Ya6cX2rDv54qh/8kwM7dimnWuyg40vCik4FM=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/lz4/1.9.4/patches/module_dot_bazel.patch": "sha256-V8GT+T9/zjsD3c67mJ4qVJoOkR4VZlXnpXl6b/FKI/Y=" + }, + "remote_patch_strip": 0 + } + } + }, + "xz@5.4.5.bcr.2": { + "name": "xz", + "version": "5.4.5.bcr.2", + "key": "xz@5.4.5.bcr.2", + "repoName": "xz", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.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/tukaani-project/xz/releases/download/v5.4.5/xz-5.4.5.tar.gz" + ], + "integrity": "sha256-E1yQuTSu6PvA1Gfeh6Bctw1ifaNqvlGMNXqHNwnlt9Y=", + "strip_prefix": "xz-5.4.5", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/xz/5.4.5.bcr.2/patches/patch.diff": "sha256-/p4OtkABqNVS/ujgPMKK8iBMyF/N+CO4zc5Yt02t2+o=" + }, + "remote_patch_strip": 1 + } + } + }, + "zstd@1.5.6": { + "name": "zstd", + "version": "1.5.6", + "key": "zstd@1.5.6", + "repoName": "zstd", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "rules_cc": "rules_cc@0.0.9", + "platforms": "platforms@0.0.10", + "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/facebook/zstd/releases/download/v1.5.6/zstd-1.5.6.tar.gz" + ], + "integrity": "sha256-jCngbPQqrMHq/EB3ri7Gxvy5amJhV+BZPV6Co0/UA8E=", + "strip_prefix": "zstd-1.5.6", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/zstd/1.5.6/patches/add_build_file.patch": "sha256-eWyxLXFI3vRjvK572z4lHJdoia96jUfQxzAP+hYY9ck=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/zstd/1.5.6/patches/module_dot_bazel.patch": "sha256-xNLcQox8GjyYhgThGYV16+CcXYkumiPAVXRZlWUqWJM=" + }, + "remote_patch_strip": 0 + } + } + }, "upb@0.0.0-20220923-a547704": { "name": "upb", "version": "0.0.0-20220923-a547704", @@ -2875,11 +3054,11 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "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.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -2893,7 +3072,7 @@ "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=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/upb/0.0.0-20220923-a547704/patches/module_dot_bazel.patch": "sha256-wH4mNS6ZYy+8uC0HoAft/c7SDsq2Kxf+J8dUakXhaB0=" }, "remote_patch_strip": 0 } @@ -2912,7 +3091,7 @@ "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", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_jvm_external/4.4.2/MODULE.bazel", "line": 9, "column": 32 }, @@ -2929,7 +3108,7 @@ "extensionName": "maven", "usingModule": "rules_jvm_external@4.4.2", "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_jvm_external/4.4.2/MODULE.bazel", "line": 16, "column": 22 }, @@ -2953,7 +3132,7 @@ }, "devDependency": false, "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_jvm_external/4.4.2/MODULE.bazel", "line": 18, "column": 14 } @@ -2964,7 +3143,7 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "io_bazel_stardoc": "stardoc@0.5.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -3008,7 +3187,7 @@ "extensionName": "ext", "usingModule": "rules_foreign_cc@0.9.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_foreign_cc/0.9.0/MODULE.bazel", "line": 13, "column": 20 }, @@ -3030,8 +3209,8 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", - "platforms": "platforms@0.0.9", + "bazel_skylib": "bazel_skylib@1.6.1", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -3045,8 +3224,8 @@ "integrity": "sha256-Kk0HzWSwcZs5p8EiGKPlB2crgql7mMaonThWWJTPfFE=", "strip_prefix": "rules_foreign_cc-0.9.0", "remote_patches": { - "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/patches/examples.patch": "sha256-RxT7rVHxO30W350sYu7ybi4rStwoB8b8mr34ZU9ciIk=", - "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/patches/module_dot_bazel.patch": "sha256-VTNnq8ySdeo9pI4rrJ+EXa/9ZACgQQ4baUwoQpljzCM=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_foreign_cc/0.9.0/patches/examples.patch": "sha256-RxT7rVHxO30W350sYu7ybi4rStwoB8b8mr34ZU9ciIk=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_foreign_cc/0.9.0/patches/module_dot_bazel.patch": "sha256-VTNnq8ySdeo9pI4rrJ+EXa/9ZACgQQ4baUwoQpljzCM=" }, "remote_patch_strip": 1 } @@ -3061,7 +3240,7 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_foreign_cc": "rules_foreign_cc@0.9.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -3076,8 +3255,8 @@ "integrity": "sha256-XaX4hyveFLNjTJaI2YD2i9ootRAmhyPMEpc+7bq5/sw=", "strip_prefix": "libpfm-4.11.0", "remote_patches": { - "https://bcr.bazel.build/modules/libpfm/4.11.0/patches/module_dot_bazel.patch": "sha256-G0wQJ2mVEoW/L5LGzmbNfuZaxI2+9NDuWJtqvCpM1pc=", - "https://bcr.bazel.build/modules/libpfm/4.11.0/patches/add_build_file.patch": "sha256-E61d/qQgmeOcUliWaveHPp1EZoOjkvZJsqhGhHofqUg=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/libpfm/4.11.0/patches/module_dot_bazel.patch": "sha256-G0wQJ2mVEoW/L5LGzmbNfuZaxI2+9NDuWJtqvCpM1pc=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/libpfm/4.11.0/patches/add_build_file.patch": "sha256-E61d/qQgmeOcUliWaveHPp1EZoOjkvZJsqhGhHofqUg=" }, "remote_patch_strip": 0 } @@ -3554,7 +3733,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -3568,7 +3747,7 @@ "integrity": "sha256-hj/GcMRW8wkjdAwWOTBRMv37nRslujhaZ644Yu8SqK8=", "strip_prefix": "boringssl-5c22014ca513807ed03c657e8ede076164663979", "remote_patches": { - "https://bcr.bazel.build/modules/boringssl/0.0.0-20230215-5c22014/patches/module_dot_bazel.patch": "sha256-TbAx9h+pBkDT3JmKw1bRchtNcLK1dnvsW1IlCkl/yd0=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/boringssl/0.0.0-20230215-5c22014/patches/module_dot_bazel.patch": "sha256-TbAx9h+pBkDT3JmKw1bRchtNcLK1dnvsW1IlCkl/yd0=" }, "remote_patch_strip": 0 } @@ -3808,7 +3987,7 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_java": "rules_java@7.4.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -3823,7 +4002,7 @@ "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=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/stardoc/0.5.1/patches/module_dot_bazel.patch": "sha256-UAULCuTpJE7SG0YrR9XLjMfxMRmbP+za3uW9ONZ5rjI=" }, "remote_patch_strip": 0 } diff --git a/bazel/common.bazelrc b/bazel/common.bazelrc index 2de0b253..9c8eb869 100644 --- a/bazel/common.bazelrc +++ b/bazel/common.bazelrc @@ -1,6 +1,7 @@ startup --windows_enable_symlinks common --enable_bzlmod common --registry=https://raw.githubusercontent.com/ecsact-dev/bazel_registry/main +common --registry=https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2 # temporary common --registry=https://raw.githubusercontent.com/bazelboost/registry/main common --registry=https://bcr.bazel.build build --enable_platform_specific_config diff --git a/test/test_recipe.yml b/build_recipe.yml similarity index 88% rename from test/test_recipe.yml rename to build_recipe.yml index 1b727bec..fc1e5784 100644 --- a/test/test_recipe.yml +++ b/build_recipe.yml @@ -1,14 +1,14 @@ name: RT EnTT Recipe sources: - - ../test/bazel-bin/_runtime__public_hdrs/runtime_test.ecsact.hh - - ../test/bazel-bin/_runtime__public_hdrs/imported_pkg.ecsact.hh - - ../test/bazel-bin/_runtime__cc_srcs/runtime_test.ecsact.rt_entt.cc - - codegen: ./ecsact_rt_entt_codegen + - codegen: + - ../ecsact_lang_cpp~/cpp_header_codegen/ecsact_cpp_header_codegen + - ../ecsact_rt_entt~/rt_entt_codegen/ecsact_rt_entt_codegen outdir: _rt_entt_codegen_outdir # entt - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/entt.hpp outdir: include/entt + # entt/graph - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/graph/adjacency_matrix.hpp outdir: include/entt/graph - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/graph/flow.hpp @@ -17,23 +17,25 @@ sources: outdir: include/entt/graph - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/graph/fwd.hpp outdir: include/entt/graph + # entt/locator - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/locator/locator.hpp outdir: include/entt/locator + # entt/platform - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/platform/android-ndk-r17.hpp outdir: include/entt/platform - # poly + # entt/poly - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/poly/fwd.hpp outdir: include/entt/poly - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/poly/poly.hpp outdir: include/entt/poly - # process + # entt/process - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/process/fwd.hpp outdir: include/entt/process - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/process/process.hpp outdir: include/entt/process - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/process/scheduler.hpp outdir: include/entt/process - # resource + # entt/resource - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/resource/cache.hpp outdir: include/entt/resource - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/resource/fwd.hpp @@ -42,7 +44,7 @@ sources: outdir: include/entt/resource - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/resource/resource.hpp outdir: include/entt/resource - # entity + # entt/entity - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/entity/registry.hpp outdir: include/entt/entity - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/entity/storage.hpp @@ -77,7 +79,7 @@ sources: outdir: include/entt/entity - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/entity/snapshot.hpp outdir: include/entt/entity - # meta + # entt/meta - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/meta/adl_pointer.hpp outdir: include/entt/meta - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/meta/container.hpp @@ -106,7 +108,7 @@ sources: outdir: include/entt/meta - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/meta/utility.hpp outdir: include/entt/meta - # signal + # entt/signal - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/signal/sigh.hpp outdir: include/entt/signal - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/signal/delegate.hpp @@ -117,21 +119,21 @@ sources: outdir: include/entt/signal - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/signal/fwd.hpp outdir: include/entt/signal - # config + # entt/config - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/config/version.h outdir: include/entt/config - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/config/macro.h outdir: include/entt/config - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/config/config.h outdir: include/entt/config - # container + # entt/container - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/container/dense_map.hpp outdir: include/entt/container - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/container/fwd.hpp outdir: include/entt/container - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/container/dense_set.hpp outdir: include/entt/container - # core + # entt/core - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/core/compressed_pair.hpp outdir: include/entt/core - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/core/type_traits.hpp @@ -164,35 +166,49 @@ sources: outdir: include/entt/core - fetch: https://raw.githubusercontent.com/skypjack/entt/v3.12.2/src/entt/core/tuple.hpp outdir: include/entt/core - - path: ../ecsact/entt/detail/apply_pending.hh + # xxhash + - fetch: https://raw.githubusercontent.com/Cyan4973/xxHash/v0.8.2/xxhash.h + outdir: include/ + - fetch: https://raw.githubusercontent.com/Cyan4973/xxHash/v0.8.2/xxhash.c + outdir: src/ + + # ecsact/entt/detail + - path: ./ecsact/entt/detail/execution_events_collector.hh outdir: include/ecsact/entt/detail - - path: ../ecsact/entt/detail/execution_events_collector.hh + - path: ./ecsact/entt/detail/apply_pending.hh outdir: include/ecsact/entt/detail - - path: ../ecsact/entt/detail/globals.hh + - path: ./ecsact/entt/detail/globals.hh outdir: include/ecsact/entt/detail - - path: ../ecsact/entt/detail/internal_markers.hh + - path: ./ecsact/entt/detail/internal_markers.hh outdir: include/ecsact/entt/detail - - path: ../ecsact/entt/detail/system_execution_context.hh + - path: ./ecsact/entt/detail/system_execution_context.hh outdir: include/ecsact/entt/detail/ - - path: ../ecsact/entt/wrapper/core.hh + - path: ./ecsact/entt/detail/bytes.hh + outdir: include/ecsact/entt/detail + - path: ./ecsact/entt/detail/hash.hh + outdir: include/ecsact/entt/detail + # ecsact/entt/wrapper + - path: ./ecsact/entt/wrapper/core.hh outdir: include/ecsact/entt/wrapper - - path: ../ecsact/entt/wrapper/dynamic.hh + - path: ./ecsact/entt/wrapper/dynamic.hh outdir: include/ecsact/entt/wrapper - - path: ../ecsact/entt/entity.hh + # ecsact/entt + - path: ./ecsact/entt/entity.hh outdir: include/ecsact/entt - - path: ../ecsact/entt/error_check.hh + - path: ./ecsact/entt/error_check.hh outdir: include/ecsact/entt - - path: ../ecsact/entt/event_markers.hh + - path: ./ecsact/entt/event_markers.hh outdir: include/ecsact/entt - - path: ../ecsact/entt/execution.hh + - path: ./ecsact/entt/execution.hh outdir: include/ecsact/entt - - path: ../ecsact/entt/registry_util.hh + - path: ./ecsact/entt/registry_util.hh outdir: include/ecsact/entt - - ../runtime/ecsact_rt_entt_core.cc - - ../runtime/ecsact_rt_entt_dynamic.cc + - ./runtime/ecsact_rt_entt_core.cc + - ./runtime/ecsact_rt_entt_dynamic.cc + - ./runtime/hash.cc exports: - # Core + # core - ecsact_execute_systems - ecsact_destroy_registry - ecsact_clear_registry @@ -210,7 +226,7 @@ exports: - ecsact_get_components - ecsact_update_component - ecsact_remove_component - # Dynamic + # dynamic - ecsact_system_execution_context_same - ecsact_system_execution_context_entity - ecsact_system_execution_context_generate diff --git a/rt_entt_codegen/rt_entt_codegen.cc b/rt_entt_codegen/rt_entt_codegen.cc index a0a9c6d5..e983fc48 100644 --- a/rt_entt_codegen/rt_entt_codegen.cc +++ b/rt_entt_codegen/rt_entt_codegen.cc @@ -57,6 +57,7 @@ void ecsact_codegen_plugin( ctx.write("\n"); inc_package_header(ctx, package_id); for(auto dep : ecsact::meta::get_dependencies(package_id)) { + assert(package_id != dep); inc_package_header(ctx, dep); } ctx.write("\n"); diff --git a/rt_entt_codegen/shared/comps_with_caps.hh b/rt_entt_codegen/shared/comps_with_caps.hh index 98a578f2..087f9cb6 100644 --- a/rt_entt_codegen/shared/comps_with_caps.hh +++ b/rt_entt_codegen/shared/comps_with_caps.hh @@ -83,7 +83,6 @@ inline auto comps_with_caps( } 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)); diff --git a/rt_entt_codegen/shared/util.hh b/rt_entt_codegen/shared/util.hh index d423aacd..5b2deece 100644 --- a/rt_entt_codegen/shared/util.hh +++ b/rt_entt_codegen/shared/util.hh @@ -112,7 +112,9 @@ inline auto inc_package_header( // ) -> void { namespace fs = std::filesystem; - auto main_ecsact_file_path = ecsact::meta::package_file_path(ctx.package_id); + auto main_ecsact_file_path = + ecsact::meta::package_file_path(ctx.package_id).lexically_normal(); + if(ctx.package_id == pkg_id) { main_ecsact_file_path.replace_extension( main_ecsact_file_path.extension().string() + ".hh" diff --git a/test/BUILD.bazel b/test/BUILD.bazel index b3fb4a87..c1976ea3 100644 --- a/test/BUILD.bazel +++ b/test/BUILD.bazel @@ -1,6 +1,5 @@ load("@ecsact_rt_entt//bazel:copts.bzl", "copts") load("@ecsact_rt_entt//runtime:index.bzl", "ecsact_entt_runtime") -load("@hedron_compile_commands//:refresh_compile_commands.bzl", "refresh_compile_commands") load("@rules_cc//cc:defs.bzl", "cc_test") load("@rules_ecsact//ecsact:defs.bzl", "ecsact_codegen") @@ -9,33 +8,66 @@ cc_test( srcs = ["test_build_recipe.cc"], copts = copts, data = [ - "test_recipe.yml", "//:imported_pkg.ecsact", "//:runtime_test.ecsact", "@ecsact_cli", + "@ecsact_lang_cpp//cpp_header_codegen:ecsact_cpp_header_codegen", + "@ecsact_rt_entt//:build_recipe.yml", + "@ecsact_rt_entt//:headers", "@ecsact_rt_entt//rt_entt_codegen:ecsact_rt_entt_codegen", + "@ecsact_rt_entt//runtime:sources", + "@llvm_toolchain_llvm//:bin/clang", ], - env = { - "ECSACT_CLI": "$(rootpath @ecsact_cli)", - "ECSACT_RECIPE_PATH": "$(roothpath test_recipe.yml)", - "ECSACT_RUNTIME_FILE_PATH": "$(rootpath //:runtime_test.ecsact)", - "ECSACT_IMPORTED_FILE_PATH": "$rootpath //:imported_pkg.ecsact)", - "ECSACT_CODEGEN_PLUGIN_PATH": "$(rootpath @ecsact_rt_entt//rt_entt_codegen:ecsact_rt_entt_codegen", - }, + env = select({ + "@platforms//os:windows": { + "ECSACT_CLI": "$(rootpath @ecsact_cli)", + "ECSACT_RECIPE_PATH": "$(rootpath @ecsact_rt_entt//:build_recipe.yml)", + "ECSACT_RUNTIME_FILE_PATH": "$(rootpath //:runtime_test.ecsact)", + "ECSACT_IMPORTED_FILE_PATH": "$(rootpath //:imported_pkg.ecsact)", + "ECSACT_CODEGEN_PLUGIN_PATH": "$(rootpath @ecsact_rt_entt//rt_entt_codegen:ecsact_rt_entt_codegen)", + }, + "//conditions:default": { + "ECSACT_CLI": "$(rootpath @ecsact_cli)", + "ECSACT_RECIPE_PATH": "$(rootpath @ecsact_rt_entt//:build_recipe.yml)", + "ECSACT_RUNTIME_FILE_PATH": "$(rootpath //:runtime_test.ecsact)", + "ECSACT_IMPORTED_FILE_PATH": "$(rootpath //:imported_pkg.ecsact)", + "ECSACT_CODEGEN_PLUGIN_PATH": "$(rootpath @ecsact_rt_entt//rt_entt_codegen:ecsact_rt_entt_codegen)", + "CC": "$(rootpath @llvm_toolchain_llvm//:bin/clang)", + }, + }), + env_inherit = select({ + "@platforms//os:windows": [ + "PATH", + "PATHEXT", + "PWD", + "APPDATA", + "ProgramData", + "ProgramFiles", + "ProgramFiles(x86)", + "PROGRAMDATA", + "PROGRAMFILES", + "PROGRAMFILES(X86)", + "TEMP", + "OS", + "WINDIR", + ], + "//conditions:default": [], + }), deps = [ - "@boost.process", - "@ecsact_cli", + ":spawn", "@googletest//:gtest", "@googletest//:gtest_main", ], ) -refresh_compile_commands( - name = "refresh_compile_commands", - targets = { - # "//:test_build_recipe": "", - "//:test": "", - }, +cc_library( + name = "spawn", + srcs = ["spawn.cc"], + hdrs = ["spawn.hh"], + copts = copts, + deps = [ + "@boost.process", + ], ) ecsact_codegen( diff --git a/test/MODULE.bazel b/test/MODULE.bazel index 7a3ccb3a..a1d47f33 100644 --- a/test/MODULE.bazel +++ b/test/MODULE.bazel @@ -9,7 +9,7 @@ bazel_dep(name = "ecsact_runtime", version = "0.6.1") 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.3.4") +bazel_dep(name = "ecsact_cli", version = "0.3.6") bazel_dep(name = "boost.process", version = "1.83.0.bzl.2") bazel_dep(name = "toolchains_llvm", version = "1.0.0", dev_dependency = True) @@ -20,6 +20,13 @@ git_override( remote = "https://github.com/hedronvision/bazel-compile-commands-extractor.git", ) +# TODO: https://github.com/bazelbuild/bazel-central-registry/pull/1916 +git_override( + module_name = "libarchive", + commit = "7c331f92acea5243c195cdc6fb46ecfa11ce1ce2", + remote = "https://github.com/zaucy/libarchive.git", +) + bazel_dep(name = "ecsact_rt_entt") bazel_dep(name = "xxhash", version = "0.8.2") @@ -32,7 +39,7 @@ 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") +use_repo(llvm, "llvm_toolchain", "llvm_toolchain_llvm") ecsact = use_extension("@rules_ecsact//ecsact:extensions.bzl", "ecsact", dev_dependency = True) ecsact.toolchain(use_ecsact_cli = True) diff --git a/test/MODULE.bazel.lock b/test/MODULE.bazel.lock index c947fd19..472a10a4 100644 --- a/test/MODULE.bazel.lock +++ b/test/MODULE.bazel.lock @@ -1,9 +1,10 @@ { "lockFileVersion": 6, - "moduleFileHash": "ee6a795941f37fa15ef506225aae320cc0b8eea3d52b820e8c9b87801ce1c9c3", + "moduleFileHash": "259ece41e6358363a5cdec8e89456844bf0e48240cb08d4927f279f3fbf54d26", "flags": { "cmdRegistries": [ "https://raw.githubusercontent.com/ecsact-dev/bazel_registry/main", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2", "https://raw.githubusercontent.com/bazelboost/registry/main", "https://bcr.bazel.build" ], @@ -16,12 +17,12 @@ }, "localOverrideHashes": { "bazel_tools": "1ae69322ac3823527337acf02016e8ee95813d8d356f47060255b8956fa642f0", - "ecsact_rt_entt": "b6d552ea510c93ad6717f86924ea79e339a2dd30025c77765ad1b92f59d51355" + "ecsact_rt_entt": "f5cf43ac2778990cdf4fb17dc96654f443607097009d5bad337313eccf21091a" }, "moduleDepGraph": { "": { "name": "ecsact_rt_entt_test", - "version": "0.1.0", + "version": "", "key": "", "repoName": "ecsact_rt_entt_test", "executionPlatformsToRegister": [], @@ -37,14 +38,16 @@ "usingModule": "", "location": { "file": "@@//:MODULE.bazel", - "line": 37, + "line": 40, "column": 21 }, "imports": { - "llvm_toolchain": "llvm_toolchain" + "llvm_toolchain": "llvm_toolchain", + "llvm_toolchain_llvm": "llvm_toolchain_llvm" }, "devImports": [ - "llvm_toolchain" + "llvm_toolchain", + "llvm_toolchain_llvm" ], "tags": [ { @@ -55,7 +58,7 @@ "devDependency": true, "location": { "file": "@@//:MODULE.bazel", - "line": 38, + "line": 41, "column": 15 } } @@ -69,7 +72,7 @@ "usingModule": "", "location": { "file": "@@//:MODULE.bazel", - "line": 41, + "line": 44, "column": 23 }, "imports": { @@ -87,7 +90,7 @@ "devDependency": true, "location": { "file": "@@//:MODULE.bazel", - "line": 42, + "line": 45, "column": 17 } } @@ -98,7 +101,7 @@ ], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "googletest": "googletest@1.14.0", "rules_ecsact": "rules_ecsact@0.5.0", "ecsact_lang_cpp": "ecsact_lang_cpp@0.4.1", @@ -106,7 +109,7 @@ "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.3.4", + "ecsact_cli": "ecsact_cli@0.3.6", "boost.process": "boost.process@1.83.0.bzl.2", "toolchains_llvm": "toolchains_llvm@1.0.0", "hedron_compile_commands": "hedron_compile_commands@_", @@ -131,7 +134,7 @@ "extensionName": "cc_configure_extension", "usingModule": "rules_cc@0.0.9", "location": { - "file": "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_cc/0.0.9/MODULE.bazel", "line": 9, "column": 29 }, @@ -145,7 +148,7 @@ } ], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -159,16 +162,16 @@ "integrity": "sha256-IDeHW5pEVtzkp50RKorohbvEqtlo5lh9ym5k86CQDN8=", "strip_prefix": "rules_cc-0.0.9", "remote_patches": { - "https://bcr.bazel.build/modules/rules_cc/0.0.9/patches/module_dot_bazel_version.patch": "sha256-mM+qzOI0SgAdaJBlWOSMwMPKpaA9b7R37Hj/tp5bb4g=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_cc/0.0.9/patches/module_dot_bazel_version.patch": "sha256-mM+qzOI0SgAdaJBlWOSMwMPKpaA9b7R37Hj/tp5bb4g=" }, "remote_patch_strip": 0 } } }, - "bazel_skylib@1.5.0": { + "bazel_skylib@1.6.1": { "name": "bazel_skylib", - "version": "1.5.0", - "key": "bazel_skylib@1.5.0", + "version": "1.6.1", + "key": "bazel_skylib@1.6.1", "repoName": "bazel_skylib", "executionPlatformsToRegister": [], "toolchainsToRegister": [ @@ -177,7 +180,7 @@ ], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -186,9 +189,9 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.6.1/bazel-skylib-1.6.1.tar.gz" ], - "integrity": "sha256-zVWgYudjuTSZIfD124w5MyiNyLpPdt2UFqrGis7jy5Q=", + "integrity": "sha256-nziIakBUjG6WwQa3UvJCEw7hGqoGila6flb0UR8z5PI=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -205,7 +208,7 @@ "extensionUsages": [], "deps": { "com_google_absl": "abseil-cpp@20230802.0", - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -220,7 +223,7 @@ "integrity": "sha256-itWYxzrXluDYKAsILOvYKmMNc+c808cAV5OKZQG7pdc=", "strip_prefix": "googletest-1.14.0", "remote_patches": { - "https://bcr.bazel.build/modules/googletest/1.14.0/patches/module_dot_bazel.patch": "sha256-CSomzvti38LCuURDG5EEoa3O1tQF3cKKt/mknnP1qcc=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/googletest/1.14.0/patches/module_dot_bazel.patch": "sha256-CSomzvti38LCuURDG5EEoa3O1tQF3cKKt/mknnP1qcc=" }, "remote_patch_strip": 0 } @@ -236,9 +239,9 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", - "platforms": "platforms@0.0.9", - "ecsact_cli": "ecsact_cli@0.3.4", + "bazel_skylib": "bazel_skylib@1.6.1", + "platforms": "platforms@0.0.10", + "ecsact_cli": "ecsact_cli@0.3.6", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -266,7 +269,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "ecsact_runtime": "ecsact_runtime@0.6.1", "rules_ecsact": "rules_ecsact@0.5.0", "ecsact_codegen": "ecsact_codegen@0.2.0", @@ -297,8 +300,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.1", "googletest": "googletest@1.14.0", "abseil-cpp": "abseil-cpp@20230802.0", "boost.dll": "boost.dll@1.83.0.bzl.2", @@ -357,7 +360,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "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", @@ -400,7 +403,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -418,10 +421,10 @@ } } }, - "ecsact_cli@0.3.4": { + "ecsact_cli@0.3.6": { "name": "ecsact_cli", - "version": "0.3.4", - "key": "ecsact_cli@0.3.4", + "version": "0.3.6", + "key": "ecsact_cli@0.3.6", "repoName": "ecsact_cli", "executionPlatformsToRegister": [], "toolchainsToRegister": [], @@ -429,21 +432,23 @@ "deps": { "rules_cc": "rules_cc@0.0.9", "nlohmann_json": "nlohmann_json@3.11.3", - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_pkg": "rules_pkg@0.10.1", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "ecsact_parse": "ecsact_parse@0.4.0", "ecsact_runtime": "ecsact_runtime@0.6.1", - "ecsact_interpret": "ecsact_interpret@0.6.0", + "ecsact_interpret": "ecsact_interpret@0.6.1", "ecsact_codegen": "ecsact_codegen@0.2.0", "boost.dll": "boost.dll@1.83.0.bzl.2", "magic_enum": "magic_enum@0.9.3", - "curl": "curl@8.4.0", + "curl": "curl@8.7.1.bcr.1", "docopt.cpp": "docopt.cpp@0.6.2", "boost.process": "boost.process@1.83.0.bzl.2", "boost.algorithm": "boost.algorithm@1.83.0.bzl.1", "boost.url": "boost.url@1.83.0.bzl.2", "yaml-cpp": "yaml-cpp@0.8.0", + "libarchive": "libarchive@_", + "xxhash": "xxhash@0.8.2", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -452,9 +457,9 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/ecsact-dev/ecsact_cli/releases/download/0.3.4/ecsact_cli-0.3.4.tar.gz" + "https://github.com/ecsact-dev/ecsact_cli/releases/download/0.3.6/ecsact_cli-0.3.6.tar.gz" ], - "integrity": "sha256-o/uv0o+zrxPoSgTo88232q3TWfM4raPxnB95qlIQWaw=", + "integrity": "sha256-l9Bz4nRl7kywbphkH9ghdAJirBZypAJoWqw+90bbs6Y=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -471,8 +476,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.1", "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", @@ -516,9 +521,9 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -612,7 +617,7 @@ }, "ecsact_rt_entt@_": { "name": "ecsact_rt_entt", - "version": "0.3.0", + "version": "0.3.1", "key": "ecsact_rt_entt@_", "repoName": "ecsact_rt_entt", "executionPlatformsToRegister": [], @@ -620,15 +625,16 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_ecsact": "rules_ecsact@0.5.0", "ecsact_runtime": "ecsact_runtime@0.6.1", "ecsact_lang_cpp": "ecsact_lang_cpp@0.4.1", "boost.mp11": "boost.mp11@1.83.0.bzl.1", "entt": "entt@3.12.2", "ecsact_codegen": "ecsact_codegen@0.2.0", - "ecsact_cli": "ecsact_cli@0.3.4", + "ecsact_cli": "ecsact_cli@0.3.6", "xxhash": "xxhash@0.8.2", + "googletest": "googletest@1.14.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" } @@ -655,8 +661,8 @@ "integrity": "sha256-uu4Mav1PAxZd56TmeYjRbw8rJXtR0OPLkZCTAqJqecQ=", "strip_prefix": "xxHash-0.8.2", "remote_patches": { - "https://bcr.bazel.build/modules/xxhash/0.8.2/patches/add_build_file.patch": "sha256-WQDdUpYas3Sbezqz0dJ5kMdr/c729ki+QLZv4iwEOj8=", - "https://bcr.bazel.build/modules/xxhash/0.8.2/patches/module_dot_bazel.patch": "sha256-ZLVQs0CBa7/fVGDx0804Hg7ORsWd92G06m2z1N5PeMg=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/xxhash/0.8.2/patches/add_build_file.patch": "sha256-WQDdUpYas3Sbezqz0dJ5kMdr/c729ki+QLZv4iwEOj8=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/xxhash/0.8.2/patches/module_dot_bazel.patch": "sha256-ZLVQs0CBa7/fVGDx0804Hg7ORsWd92G06m2z1N5PeMg=" }, "remote_patch_strip": 0 } @@ -807,9 +813,9 @@ "rules_proto": "rules_proto@5.3.0-21.7", "rules_python": "rules_python@0.24.0", "buildozer": "buildozer@6.4.0.2", - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "com_google_protobuf": "protobuf@21.7", - "zlib": "zlib@1.3", + "zlib": "zlib@1.3.1.bcr.1", "build_bazel_apple_support": "apple_support@1.5.0", "local_config_platform": "local_config_platform@_" } @@ -823,14 +829,14 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_" } }, - "platforms@0.0.9": { + "platforms@0.0.10": { "name": "platforms", - "version": "0.0.9", - "key": "platforms@0.0.9", + "version": "0.0.10", + "key": "platforms@0.0.10", "repoName": "platforms", "executionPlatformsToRegister": [], "toolchainsToRegister": [], @@ -838,9 +844,9 @@ { "extensionBzlFile": "@platforms//host:extension.bzl", "extensionName": "host_platform", - "usingModule": "platforms@0.0.9", + "usingModule": "platforms@0.0.10", "location": { - "file": "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/platforms/0.0.10/MODULE.bazel", "line": 9, "column": 30 }, @@ -863,9 +869,9 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/bazelbuild/platforms/releases/download/0.0.9/platforms-0.0.9.tar.gz" + "https://github.com/bazelbuild/platforms/releases/download/0.0.10/platforms-0.0.10.tar.gz" ], - "integrity": "sha256-XtpTnIQSZQMcL4LYrno6ZJC9YhduDAOPxGnqv5H2FJs=", + "integrity": "sha256-IY7+juc20mo1cmY7N0olPAErcW2K8MB+hC6C8jigp+4=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -882,8 +888,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.1", "com_google_googletest": "googletest@1.14.0", "com_github_google_benchmark": "google_benchmark@1.8.2", "bazel_tools": "bazel_tools@_", @@ -899,7 +905,7 @@ "integrity": "sha256-WdKXavnW7PABqBo1dJpuVRozW5SdNJGM+t4Hc3udk8U=", "strip_prefix": "abseil-cpp-20230802.0", "remote_patches": { - "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/patches/module_dot_bazel.patch": "sha256-tppa7eDWtr2QUqOhIzKmHL5DEqUqfMFQIH7tkhFDY8E=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/abseil-cpp/20230802.0/patches/module_dot_bazel.patch": "sha256-tppa7eDWtr2QUqOhIzKmHL5DEqUqfMFQIH7tkhFDY8E=" }, "remote_patch_strip": 0 } @@ -915,7 +921,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "boost.dll": "boost.dll@1.83.0.bzl.2", "ecsact_runtime": "ecsact_runtime@0.6.1", "bazel_tools": "bazel_tools@_", @@ -1445,7 +1451,7 @@ "integrity": "sha256-oiRh0TEZrFx48gXT3x2xNAPljOG7F5TtyTE2dzE/Sp0=", "strip_prefix": "", "remote_patches": { - "https://bcr.bazel.build/modules/nlohmann_json/3.11.3/patches/module_dot_bazel.patch": "sha256-OmeSCp1IqWbHGPJs0v5taUiPLEsI9KEJPLsnPpKB/B8=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/nlohmann_json/3.11.3/patches/module_dot_bazel.patch": "sha256-OmeSCp1IqWbHGPJs0v5taUiPLEsI9KEJPLsnPpKB/B8=" }, "remote_patch_strip": 0 } @@ -1462,7 +1468,7 @@ "deps": { "rules_license": "rules_license@0.0.7", "rules_python": "rules_python@0.24.0", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -1490,7 +1496,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "ecsact_runtime": "ecsact_runtime@0.6.1", "lexy": "lexy@2022.05.1", "magic_enum": "magic_enum@0.9.3", @@ -1511,17 +1517,17 @@ } } }, - "ecsact_interpret@0.6.0": { + "ecsact_interpret@0.6.1": { "name": "ecsact_interpret", - "version": "0.6.0", - "key": "ecsact_interpret@0.6.0", + "version": "0.6.1", + "key": "ecsact_interpret@0.6.1", "repoName": "ecsact_interpret", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "magic_enum": "magic_enum@0.9.3", "ecsact_runtime": "ecsact_runtime@0.6.1", "ecsact_parse": "ecsact_parse@0.4.0", @@ -1533,9 +1539,9 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/ecsact-dev/ecsact_interpret/releases/download/0.6.0/ecsact_interpret-0.6.0.tar.gz" + "https://github.com/ecsact-dev/ecsact_interpret/releases/download/0.6.1/ecsact_interpret-0.6.1.tar.gz" ], - "integrity": "sha256-YDtn32eLL0JDIGBSelHroEiIBaS2tBjnXsVyn3Cuf18=", + "integrity": "sha256-1aW5PB3CmxlhNCtu9Q4pXk+Udh3eoyPF8mkY6fwS1Zk=", "strip_prefix": "", "remote_patches": {}, "remote_patch_strip": 0 @@ -1552,7 +1558,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -1570,16 +1576,18 @@ } } }, - "curl@8.4.0": { + "curl@8.7.1.bcr.1": { "name": "curl", - "version": "8.4.0", - "key": "curl@8.4.0", + "version": "8.7.1.bcr.1", + "key": "curl@8.7.1.bcr.1", "repoName": "curl", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "bazel_skylib": "bazel_skylib@1.6.1", + "mbedtls": "mbedtls@3.6.0", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -1588,15 +1596,16 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/curl/curl/releases/download/curl-8_4_0/curl-8.4.0.tar.gz" + "https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz" ], - "integrity": "sha256-gW5BgJwEP/KF6MDwanWh+iUCEbv7LcCgN+7vOfGp5Cc=", - "strip_prefix": "curl-8.4.0", + "integrity": "sha256-+RJJyH9o6gDPJ8RP36WnhCPkHnG31AjlkBqYltkFxJU=", + "strip_prefix": "curl-8.7.1", "remote_patches": { - "https://bcr.bazel.build/modules/curl/8.4.0/patches/add_build_file.patch": "sha256-Vcb973u9Diuzp+nG0XzkID+LvaTdbJ6M6tZxH1Vtyo0=", - "https://bcr.bazel.build/modules/curl/8.4.0/patches/module_dot_bazel.patch": "sha256-EEYIkUUDdDiyntAtQHOhsgwqJgs/EvZP6pjuxPUeWIo=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/curl/8.7.1.bcr.1/patches/add_build_file.patch": "sha256-v72CABzBMc2lrA1Oy/QLsxd8x0bv/zkPjxTPGfArI8I=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/curl/8.7.1.bcr.1/patches/module_dot_bazel.patch": "sha256-CmB4PaZ8lHufyVHpS4z/rUPT3aPWg/I29b0ulErrYlY=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/curl/8.7.1.bcr.1/patches/add_curl_config.patch": "sha256-vdS5XRiVn5iKvJcdr0FilwCrJpQnWhEqStalazJ1Dy8=" }, - "remote_patch_strip": 0 + "remote_patch_strip": 1 } } }, @@ -1610,7 +1619,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "boost.regex": "boost.regex@1.83.0.bzl.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -1720,7 +1729,7 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -1735,12 +1744,34 @@ "integrity": "sha256-++dLvc7iHWVnFWiHBto8i+z9lG2SzURwXMYJi7I7OhY=", "strip_prefix": "yaml-cpp-0.8.0", "remote_patches": { - "https://bcr.bazel.build/modules/yaml-cpp/0.8.0/patches/module_dot_bazel.patch": "sha256-YM6xq0Mtu51Okntj5lRQ3V04DyZNm4hZdrSDMio1KeU=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/yaml-cpp/0.8.0/patches/module_dot_bazel.patch": "sha256-YM6xq0Mtu51Okntj5lRQ3V04DyZNm4hZdrSDMio1KeU=" }, "remote_patch_strip": 1 } } }, + "libarchive@_": { + "name": "libarchive", + "version": "3.7.3", + "key": "libarchive@_", + "repoName": "libarchive", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "bzip2": "bzip2@1.0.8.bcr.1", + "lz4": "lz4@1.9.4", + "xz": "xz@5.4.5.bcr.2", + "zlib": "zlib@1.3.1.bcr.1", + "zstd": "zstd@1.5.6", + "platforms": "platforms@0.0.10", + "rules_cc": "rules_cc@0.0.9", + "bazel_skylib": "bazel_skylib@1.6.1", + "mbedtls": "mbedtls@3.6.0", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + } + }, "boost.asio@1.83.0.bzl.2": { "name": "boost.asio", "version": "1.83.0.bzl.2", @@ -1751,8 +1782,8 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.1", "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", @@ -2038,7 +2069,7 @@ "extensionName": "toolchains", "usingModule": "rules_java@7.4.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_java/7.4.0/MODULE.bazel", "line": 19, "column": 27 }, @@ -2078,9 +2109,9 @@ } ], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_proto": "rules_proto@5.3.0-21.7", "rules_license": "rules_license@0.0.7", "bazel_tools": "bazel_tools@_", @@ -2135,7 +2166,7 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "com_google_protobuf": "protobuf@21.7", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", @@ -2170,7 +2201,7 @@ "extensionName": "internal_deps", "usingModule": "rules_python@0.24.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.24.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_python/0.24.0/MODULE.bazel", "line": 14, "column": 30 }, @@ -2197,7 +2228,7 @@ "attributeValues": {}, "devDependency": false, "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.24.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_python/0.24.0/MODULE.bazel", "line": 15, "column": 22 } @@ -2211,7 +2242,7 @@ "extensionName": "python", "usingModule": "rules_python@0.24.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.24.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_python/0.24.0/MODULE.bazel", "line": 36, "column": 23 }, @@ -2228,7 +2259,7 @@ }, "devDependency": false, "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.24.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_python/0.24.0/MODULE.bazel", "line": 42, "column": 17 } @@ -2239,8 +2270,8 @@ } ], "deps": { - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_proto": "rules_proto@5.3.0-21.7", "com_google_protobuf": "protobuf@21.7", "bazel_tools": "bazel_tools@_", @@ -2256,7 +2287,7 @@ "integrity": "sha256-CoADsEQpTXhArH2dc+7wXWzraC11FngaTsYu6zRwJXg=", "strip_prefix": "rules_python-0.24.0", "remote_patches": { - "https://bcr.bazel.build/modules/rules_python/0.24.0/patches/module_dot_bazel_version.patch": "sha256-cz8Rx8aNLvYvSpiVWk8umcsBy6jAAC0YwU42zj1cNlU=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_python/0.24.0/patches/module_dot_bazel_version.patch": "sha256-cz8Rx8aNLvYvSpiVWk8umcsBy6jAAC0YwU42zj1cNlU=" }, "remote_patch_strip": 0 } @@ -2275,7 +2306,7 @@ "extensionName": "buildozer_binary", "usingModule": "buildozer@6.4.0.2", "location": { - "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/buildozer/6.4.0.2/MODULE.bazel", "line": 7, "column": 33 }, @@ -2298,7 +2329,7 @@ }, "devDependency": false, "location": { - "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/buildozer/6.4.0.2/MODULE.bazel", "line": 8, "column": 27 } @@ -2322,7 +2353,7 @@ "integrity": "sha256-k7tFKQMR2AygxpmZfH0yEPnQmF3efFgD9rBPkj+Yz/8=", "strip_prefix": "buildozer-6.4.0.2", "remote_patches": { - "https://bcr.bazel.build/modules/buildozer/6.4.0.2/patches/module_dot_bazel_version.patch": "sha256-gKANF2HMilj7bWmuXs4lbBIAAansuWC4IhWGB/CerjU=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/buildozer/6.4.0.2/patches/module_dot_bazel_version.patch": "sha256-gKANF2HMilj7bWmuXs4lbBIAAansuWC4IhWGB/CerjU=" }, "remote_patch_strip": 1 } @@ -2341,7 +2372,7 @@ "extensionName": "maven", "usingModule": "protobuf@21.7", "location": { - "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/MODULE.bazel", "line": 22, "column": 22 }, @@ -2368,7 +2399,7 @@ }, "devDependency": false, "location": { - "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/MODULE.bazel", "line": 24, "column": 14 } @@ -2379,14 +2410,14 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_python": "rules_python@0.24.0", "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.10.1", "com_google_abseil": "abseil-cpp@20230802.0", - "zlib": "zlib@1.3", + "zlib": "zlib@1.3.1.bcr.1", "upb": "upb@0.0.0-20220923-a547704", "rules_jvm_external": "rules_jvm_external@4.4.2", "com_google_googletest": "googletest@1.14.0", @@ -2403,25 +2434,25 @@ "integrity": "sha256-VJOiH17T/FAuZv7GuUScBqVRztYwAvpIkDxA36jeeko=", "strip_prefix": "protobuf-21.7", "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://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/patches/add_module_dot_bazel.patch": "sha256-q3V2+eq0v2XF0z8z+V+QF4cynD6JvHI1y3kI/+rzl5s=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/patches/add_module_dot_bazel_for_examples.patch": "sha256-O7YP6s3lo/1opUiO0jqXYORNHdZ/2q3hjz1QGy8QdIU=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/patches/relative_repo_names.patch": "sha256-RK9RjW8T5UJNG7flIrnFiNE9vKwWB+8uWWtJqXYT0w4=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/protobuf/21.7/patches/add_missing_files.patch": "sha256-Hyne4DG2u5bXcWHNxNMirA2QFAe/2Cl8oMm1XJdkQIY=" }, "remote_patch_strip": 1 } } }, - "zlib@1.3": { + "zlib@1.3.1.bcr.1": { "name": "zlib", - "version": "1.3", - "key": "zlib@1.3", + "version": "1.3.1.bcr.1", + "key": "zlib@1.3.1.bcr.1", "repoName": "zlib", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -2431,15 +2462,15 @@ "ruleClassName": "http_archive", "attributes": { "urls": [ - "https://github.com/madler/zlib/releases/download/v1.3/zlib-1.3.tar.gz" + "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" ], - "integrity": "sha256-/wukwpIBPbwnUws6geH5qBPNOd4Byl4Pi/NVcC76WT4=", - "strip_prefix": "zlib-1.3", + "integrity": "sha256-mpOyt9/ax3zrpaVYpYDnRmfdb+3kWFuR7vtg8Dty3yM=", + "strip_prefix": "zlib-1.3.1", "remote_patches": { - "https://bcr.bazel.build/modules/zlib/1.3/patches/add_build_file.patch": "sha256-Ei+FYaaOo7A3jTKunMEodTI0Uw5NXQyZEcboMC8JskY=", - "https://bcr.bazel.build/modules/zlib/1.3/patches/module_dot_bazel.patch": "sha256-fPWLM+2xaF/kuy+kZc1YTfW6hNjrkG400Ho7gckuyJk=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/zlib/1.3.1.bcr.1/patches/add_build_file.patch": "sha256-0MCgNjvE1kGfdKTdDt4PEBHJMIwtDYHB7h69zhxDSNI=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/zlib/1.3.1.bcr.1/patches/add_module_file.patch": "sha256-euR5cSrSZnUKPOIJKRu3BY/Dphe1+ekPC6OWaAQfDjQ=" }, - "remote_patch_strip": 0 + "remote_patch_strip": 1 } } }, @@ -2458,7 +2489,7 @@ "extensionName": "apple_cc_configure_extension", "usingModule": "apple_support@1.5.0", "location": { - "file": "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/apple_support/1.5.0/MODULE.bazel", "line": 17, "column": 35 }, @@ -2473,8 +2504,8 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", - "platforms": "platforms@0.0.9", + "bazel_skylib": "bazel_skylib@1.6.1", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -2501,8 +2532,8 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", - "platforms": "platforms@0.0.9", + "bazel_skylib": "bazel_skylib@1.6.1", + "platforms": "platforms@0.0.10", "rules_foreign_cc": "rules_foreign_cc@0.9.0", "rules_cc": "rules_cc@0.0.9", "libpfm": "libpfm@4.11.0", @@ -2519,7 +2550,7 @@ "integrity": "sha256-KqspgNA3YTf5adkoSPu2gharsHYzA0U0/IxlzE56DpM=", "strip_prefix": "benchmark-1.8.2", "remote_patches": { - "https://bcr.bazel.build/modules/google_benchmark/1.8.2/patches/module_dot_bazel.patch": "sha256-703OrC3OH7pk9qrGkAMbvp/8yEoHiesDKHNVIKVJB/M=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/google_benchmark/1.8.2/patches/module_dot_bazel.patch": "sha256-703OrC3OH7pk9qrGkAMbvp/8yEoHiesDKHNVIKVJB/M=" }, "remote_patch_strip": 0 } @@ -3243,7 +3274,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -3261,6 +3292,36 @@ } } }, + "mbedtls@3.6.0": { + "name": "mbedtls", + "version": "3.6.0", + "key": "mbedtls@3.6.0", + "repoName": "mbedtls", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "platforms": "platforms@0.0.10", + "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/Mbed-TLS/mbedtls/releases/download/v3.6.0/mbedtls-3.6.0.tar.bz2" + ], + "integrity": "sha256-Ps+U/P2qyvt1d4agG3U4phdQ69hcSwJPVv+LoUkPzTg=", + "strip_prefix": "mbedtls-3.6.0", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/mbedtls/3.6.0/patches/add_build.patch": "sha256-+eevKk6D53jwSk1vngf7au/XMw/T++lxiQ/hlYb0fUA=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/mbedtls/3.6.0/patches/module_dot_bazel.patch": "sha256-zau8FpFxNUirkyEVgW50LwrrsB2Dt0Kp25zu0p55t0U=" + }, + "remote_patch_strip": 1 + } + } + }, "boost.concept_check@1.83.0.bzl.1": { "name": "boost.concept_check", "version": "1.83.0.bzl.1", @@ -3388,6 +3449,126 @@ } } }, + "bzip2@1.0.8.bcr.1": { + "name": "bzip2", + "version": "1.0.8.bcr.1", + "key": "bzip2@1.0.8.bcr.1", + "repoName": "bzip2", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "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://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" + ], + "integrity": "sha256-q1oDF27hBtPw+pDjgdpHjdrkBZGBU8yiSOaCzQxKImk=", + "strip_prefix": "bzip2-1.0.8", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/bzip2/1.0.8.bcr.1/patches/add_build_file.patch": "sha256-QPcAoslzyuAkL4VQgb18uhZaUu8A30/LUrD8wHaKZHY=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/bzip2/1.0.8.bcr.1/patches/module_dot_bazel.patch": "sha256-lfm8AQkGepyTCT/UQrNpojSPcuu9TnCpPEWykSew7r8=" + }, + "remote_patch_strip": 0 + } + } + }, + "lz4@1.9.4": { + "name": "lz4", + "version": "1.9.4", + "key": "lz4@1.9.4", + "repoName": "lz4", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "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", + "ruleClassName": "http_archive", + "attributes": { + "urls": [ + "https://github.com/lz4/lz4/releases/download/v1.9.4/lz4-1.9.4.tar.gz" + ], + "integrity": "sha256-Cw46oHyMBj3fQLCCvffjehVivaQKD/UnKVfz6Yfg5Us=", + "strip_prefix": "lz4-1.9.4", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/lz4/1.9.4/patches/add_build_file.patch": "sha256-v1zbuA4Ya6cX2rDv54qh/8kwM7dimnWuyg40vCik4FM=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/lz4/1.9.4/patches/module_dot_bazel.patch": "sha256-V8GT+T9/zjsD3c67mJ4qVJoOkR4VZlXnpXl6b/FKI/Y=" + }, + "remote_patch_strip": 0 + } + } + }, + "xz@5.4.5.bcr.2": { + "name": "xz", + "version": "5.4.5.bcr.2", + "key": "xz@5.4.5.bcr.2", + "repoName": "xz", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "platforms": "platforms@0.0.10", + "bazel_skylib": "bazel_skylib@1.6.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/tukaani-project/xz/releases/download/v5.4.5/xz-5.4.5.tar.gz" + ], + "integrity": "sha256-E1yQuTSu6PvA1Gfeh6Bctw1ifaNqvlGMNXqHNwnlt9Y=", + "strip_prefix": "xz-5.4.5", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/xz/5.4.5.bcr.2/patches/patch.diff": "sha256-/p4OtkABqNVS/ujgPMKK8iBMyF/N+CO4zc5Yt02t2+o=" + }, + "remote_patch_strip": 1 + } + } + }, + "zstd@1.5.6": { + "name": "zstd", + "version": "1.5.6", + "key": "zstd@1.5.6", + "repoName": "zstd", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "rules_cc": "rules_cc@0.0.9", + "platforms": "platforms@0.0.10", + "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/facebook/zstd/releases/download/v1.5.6/zstd-1.5.6.tar.gz" + ], + "integrity": "sha256-jCngbPQqrMHq/EB3ri7Gxvy5amJhV+BZPV6Co0/UA8E=", + "strip_prefix": "zstd-1.5.6", + "remote_patches": { + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/zstd/1.5.6/patches/add_build_file.patch": "sha256-eWyxLXFI3vRjvK572z4lHJdoia96jUfQxzAP+hYY9ck=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/zstd/1.5.6/patches/module_dot_bazel.patch": "sha256-xNLcQox8GjyYhgThGYV16+CcXYkumiPAVXRZlWUqWJM=" + }, + "remote_patch_strip": 0 + } + } + }, "boringssl@0.0.0-20230215-5c22014": { "name": "boringssl", "version": "0.0.0-20230215-5c22014", @@ -3398,7 +3579,7 @@ "extensionUsages": [], "deps": { "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -3412,7 +3593,7 @@ "integrity": "sha256-hj/GcMRW8wkjdAwWOTBRMv37nRslujhaZ644Yu8SqK8=", "strip_prefix": "boringssl-5c22014ca513807ed03c657e8ede076164663979", "remote_patches": { - "https://bcr.bazel.build/modules/boringssl/0.0.0-20230215-5c22014/patches/module_dot_bazel.patch": "sha256-TbAx9h+pBkDT3JmKw1bRchtNcLK1dnvsW1IlCkl/yd0=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/boringssl/0.0.0-20230215-5c22014/patches/module_dot_bazel.patch": "sha256-TbAx9h+pBkDT3JmKw1bRchtNcLK1dnvsW1IlCkl/yd0=" }, "remote_patch_strip": 0 } @@ -3652,11 +3833,11 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "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.9", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -3670,7 +3851,7 @@ "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=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/upb/0.0.0-20220923-a547704/patches/module_dot_bazel.patch": "sha256-wH4mNS6ZYy+8uC0HoAft/c7SDsq2Kxf+J8dUakXhaB0=" }, "remote_patch_strip": 0 } @@ -3689,7 +3870,7 @@ "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", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_jvm_external/4.4.2/MODULE.bazel", "line": 9, "column": 32 }, @@ -3706,7 +3887,7 @@ "extensionName": "maven", "usingModule": "rules_jvm_external@4.4.2", "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_jvm_external/4.4.2/MODULE.bazel", "line": 16, "column": 22 }, @@ -3730,7 +3911,7 @@ }, "devDependency": false, "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_jvm_external/4.4.2/MODULE.bazel", "line": 18, "column": 14 } @@ -3741,7 +3922,7 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "io_bazel_stardoc": "stardoc@0.5.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -3785,7 +3966,7 @@ "extensionName": "ext", "usingModule": "rules_foreign_cc@0.9.0", "location": { - "file": "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel", + "file": "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_foreign_cc/0.9.0/MODULE.bazel", "line": 13, "column": 20 }, @@ -3807,8 +3988,8 @@ } ], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", - "platforms": "platforms@0.0.9", + "bazel_skylib": "bazel_skylib@1.6.1", + "platforms": "platforms@0.0.10", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -3822,8 +4003,8 @@ "integrity": "sha256-Kk0HzWSwcZs5p8EiGKPlB2crgql7mMaonThWWJTPfFE=", "strip_prefix": "rules_foreign_cc-0.9.0", "remote_patches": { - "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/patches/examples.patch": "sha256-RxT7rVHxO30W350sYu7ybi4rStwoB8b8mr34ZU9ciIk=", - "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/patches/module_dot_bazel.patch": "sha256-VTNnq8ySdeo9pI4rrJ+EXa/9ZACgQQ4baUwoQpljzCM=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_foreign_cc/0.9.0/patches/examples.patch": "sha256-RxT7rVHxO30W350sYu7ybi4rStwoB8b8mr34ZU9ciIk=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/rules_foreign_cc/0.9.0/patches/module_dot_bazel.patch": "sha256-VTNnq8ySdeo9pI4rrJ+EXa/9ZACgQQ4baUwoQpljzCM=" }, "remote_patch_strip": 1 } @@ -3838,7 +4019,7 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.9", + "platforms": "platforms@0.0.10", "rules_foreign_cc": "rules_foreign_cc@0.9.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -3853,8 +4034,8 @@ "integrity": "sha256-XaX4hyveFLNjTJaI2YD2i9ootRAmhyPMEpc+7bq5/sw=", "strip_prefix": "libpfm-4.11.0", "remote_patches": { - "https://bcr.bazel.build/modules/libpfm/4.11.0/patches/module_dot_bazel.patch": "sha256-G0wQJ2mVEoW/L5LGzmbNfuZaxI2+9NDuWJtqvCpM1pc=", - "https://bcr.bazel.build/modules/libpfm/4.11.0/patches/add_build_file.patch": "sha256-E61d/qQgmeOcUliWaveHPp1EZoOjkvZJsqhGhHofqUg=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/libpfm/4.11.0/patches/module_dot_bazel.patch": "sha256-G0wQJ2mVEoW/L5LGzmbNfuZaxI2+9NDuWJtqvCpM1pc=", + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/libpfm/4.11.0/patches/add_build_file.patch": "sha256-E61d/qQgmeOcUliWaveHPp1EZoOjkvZJsqhGhHofqUg=" }, "remote_patch_strip": 0 } @@ -4067,7 +4248,7 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "bazel_skylib": "bazel_skylib@1.5.0", + "bazel_skylib": "bazel_skylib@1.6.1", "rules_java": "rules_java@7.4.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -4082,7 +4263,7 @@ "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=" + "https://raw.githubusercontent.com/zaucy/bazel-central-registry/add-curl-config2/modules/stardoc/0.5.1/patches/module_dot_bazel.patch": "sha256-UAULCuTpJE7SG0YrR9XLjMfxMRmbP+za3uW9ONZ5rjI=" }, "remote_patch_strip": 0 } @@ -4237,7 +4418,7 @@ }, "@@rules_ecsact~//ecsact:extensions.bzl%ecsact": { "general": { - "bzlTransitiveDigest": "mSPr3k+H4//yzBqUaQk3109i/iFRvjxIadmY84toSuI=", + "bzlTransitiveDigest": "yBFs/NVyYI7QiMvvjA4I6IW9I+rk9eZIogM7wKkOIIk=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -4246,7 +4427,7 @@ "bzlFile": "@@rules_ecsact~//ecsact:extensions.bzl", "ruleClassName": "_ecsact_toolchain_repository", "attributes": { - "ecsact_system_sdk_exe": "C:/Users/zekew/AppData/Local/Microsoft/WindowsApps/ecsact.exe", + "ecsact_system_sdk_exe": "C:/Users/Austin/AppData/Local/Microsoft/WindowsApps/ecsact.exe", "use_ecsact_cli": true } } @@ -4262,7 +4443,7 @@ }, "@@rules_foreign_cc~//foreign_cc:extensions.bzl%ext": { "general": { - "bzlTransitiveDigest": "QbxK92//k6c63fpMer2Lkk6224s9gwYoVFFS6mdkucI=", + "bzlTransitiveDigest": "0/GTFp9D0gb6hOu9jXXnaWa5hPbzPpIzLVxITdJTwvo=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -4533,7 +4714,7 @@ }, "@@rules_java~//java:extensions.bzl%toolchains": { "general": { - "bzlTransitiveDigest": "tJHbmWnq7m+9eUBnUdv7jZziQ26FmcGL9C5/hU3Q9UQ=", + "bzlTransitiveDigest": "0N5b5J9fUzo0sgvH4F3kIEaeXunz4Wy2/UtSFV/eXUY=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -5038,7 +5219,7 @@ }, "@@rules_python~//python/extensions:python.bzl%python": { "general": { - "bzlTransitiveDigest": "mh86AsACwkNSoqpB2hzQpecNE0j+gb57EL0ZjxD3ZRE=", + "bzlTransitiveDigest": "IMdPzfoNLlz06lDUvDoajmn/Uz0yQDmK1+WG+jfMMNE=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -5181,7 +5362,7 @@ }, "@@toolchains_llvm~//toolchain/extensions:llvm.bzl%llvm": { "general": { - "bzlTransitiveDigest": "rdQ1nlqTcj0kPoX7LxaygMQPcdnBPV85jNsRMF1M/Hw=", + "bzlTransitiveDigest": "S0z5hqi5KbDjXVFL5scNHSTTjB1/WWgKnGICpMb8kok=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, diff --git a/test/ecsact_rt_entt_codegen.dll b/test/ecsact_rt_entt_codegen.dll deleted file mode 100644 index 10702468672aa4ea1329186056ad562310b95b0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 865547 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Ð&ajkNTA+4u?}aQU}^R_U%;T_71q)`|~fT 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

rDu;cq4Gw{3UGsgQyd)WR6 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 diff --git a/test/spawn.cc b/test/spawn.cc new file mode 100644 index 00000000..be435f12 --- /dev/null +++ b/test/spawn.cc @@ -0,0 +1,20 @@ +#include "spawn.hh" + +#include + +namespace bp = boost::process; + +int ecsact::entt::test::detail::spawn( + std::string executable, + std::vector args +) { + auto proc = bp::child( + bp::exe(executable), + bp::args(args), + bp::std_out > stdout, + bp::std_err > stderr + ); + + proc.wait(); + return proc.exit_code(); +} diff --git a/test/spawn.hh b/test/spawn.hh new file mode 100644 index 00000000..be97ed4f --- /dev/null +++ b/test/spawn.hh @@ -0,0 +1,8 @@ +#pragma once + +#include +#include + +namespace ecsact::entt::test::detail { +int spawn(std::string executable, std::vector args); +} diff --git a/test/test_build_recipe.cc b/test/test_build_recipe.cc index 496beaa5..c2f43c5e 100644 --- a/test/test_build_recipe.cc +++ b/test/test_build_recipe.cc @@ -1,36 +1,44 @@ +#include "gtest/gtest.h" #include +#include #include #include +#include #include -#include +#include "spawn.hh" namespace fs = std::filesystem; TEST(Build, Success) { auto ecsact_cli = std::getenv("ECSACT_CLI"); - auto codegen_plugin_path = std::getenv("CODEGEN_PLUGIN_PATH"); + auto ecsact_codegen_plugin_path = std::getenv("ECSACT_CODEGEN_PLUGIN_PATH"); auto ecsact_runtime_file_path = std::getenv("ECSACT_RUNTIME_FILE_PATH"); auto ecsact_imported_file_path = std::getenv("ECSACT_IMPORTED_FILE_PATH"); auto ecsact_recipe_path = std::getenv("ECSACT_RECIPE_PATH"); ASSERT_NE(ecsact_cli, nullptr); - ASSERT_NE(codegen_plugin_path, nullptr); + ASSERT_NE(ecsact_codegen_plugin_path, nullptr); ASSERT_NE(ecsact_runtime_file_path, nullptr); ASSERT_NE(ecsact_imported_file_path, nullptr); ASSERT_NE(ecsact_recipe_path, nullptr); ASSERT_TRUE(fs::exists(ecsact_cli)); - ASSERT_TRUE(fs::exists(codegen_plugin_path)); + ASSERT_TRUE(fs::exists(ecsact_codegen_plugin_path)); ASSERT_TRUE(fs::exists(ecsact_runtime_file_path)); ASSERT_TRUE(fs::exists(ecsact_imported_file_path)); ASSERT_TRUE(fs::exists(ecsact_recipe_path)); - boost::process.spawn( - ecsact_cli, - std::string(codegen_plugin_path), + std::vector args{ + "build", std::string(ecsact_runtime_file_path), std::string(ecsact_imported_file_path), - std::string(ecsact_recipe_path) - ); + std::format("--recipe={}", ecsact_recipe_path), + std::format("--output={}", "test"), + }; + + int exit_code = + ecsact::entt::test::detail::spawn(std::string(ecsact_cli), args); + + ASSERT_EQ(exit_code, 0); }