summaryrefslogtreecommitdiff
path: root/src/buildtool/main/main.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-07-08 15:56:38 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-07-22 17:01:13 +0200
commit57388e7624c71762e6aac30f16809c467f96ca58 (patch)
tree9a865c096ee11e450939404cfa53cb70098910b1 /src/buildtool/main/main.cpp
parentf58946aeabb30363f41e3eb189f6bbfcea4009dd (diff)
downloadjustbuild-57388e7624c71762e6aac30f16809c467f96ca58.tar.gz
Store HashFunction in StorageConfig
Diffstat (limited to 'src/buildtool/main/main.cpp')
-rw-r--r--src/buildtool/main/main.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp
index a3be587b..9f10b8bc 100644
--- a/src/buildtool/main/main.cpp
+++ b/src/buildtool/main/main.cpp
@@ -110,10 +110,10 @@ void SetupLogging(LogArguments const& clargs) {
[[nodiscard]] auto CreateStorageConfig(
EndpointArguments const& eargs,
+ bool is_compatible,
std::optional<ServerAddress> const& remote_address = std::nullopt,
- std::map<std::string, std::string> const& remote_platform_properties = {},
- std::vector<std::pair<std::map<std::string, std::string>,
- ServerAddress>> const& remote_dispatch = {}) noexcept
+ ExecutionProperties const& remote_platform_properties = {},
+ std::vector<DispatchEndpoint> const& remote_dispatch = {}) noexcept
-> std::optional<StorageConfig> {
StorageConfig::Builder builder;
if (eargs.local_root.has_value()) {
@@ -122,6 +122,8 @@ void SetupLogging(LogArguments const& clargs) {
auto config =
builder
+ .SetHashType(is_compatible ? HashFunction::JustHash::Compatible
+ : HashFunction::JustHash::Native)
.SetRemoteExecutionArgs(
remote_address, remote_platform_properties, remote_dispatch)
.Build();
@@ -800,7 +802,8 @@ auto main(int argc, char* argv[]) -> int {
if (arguments.cmd == SubCommand::kGc) {
// Set up storage for GC, as we have all the config args we need.
- auto const storage_config = CreateStorageConfig(arguments.endpoint);
+ auto const storage_config = CreateStorageConfig(
+ arguments.endpoint, Compatibility::IsCompatible());
if (not storage_config) {
return kExitFailure;
}
@@ -828,7 +831,8 @@ auto main(int argc, char* argv[]) -> int {
RemoteExecutionConfig remote_exec_config{};
// Set up storage for local execution.
- auto const storage_config = CreateStorageConfig(arguments.endpoint);
+ auto const storage_config = CreateStorageConfig(
+ arguments.endpoint, Compatibility::IsCompatible());
if (not storage_config) {
return kExitFailure;
}
@@ -885,6 +889,7 @@ auto main(int argc, char* argv[]) -> int {
// Set up storage for serve operation.
auto const storage_config =
CreateStorageConfig(arguments.endpoint,
+ Compatibility::IsCompatible(),
remote_exec_config->remote_address,
remote_exec_config->platform_properties,
remote_exec_config->dispatch);
@@ -950,13 +955,15 @@ auto main(int argc, char* argv[]) -> int {
// correctly-sharded target cache.
auto const storage_config =
CreateStorageConfig(arguments.endpoint,
+ Compatibility::IsCompatible(),
remote_exec_config->remote_address,
remote_exec_config->platform_properties,
remote_exec_config->dispatch);
#else
// For bootstrapping the TargetCache sharding is not needed, so we can
// default all execution arguments.
- auto const storage_config = CreateStorageConfig(arguments.endpoint);
+ auto const storage_config = CreateStorageConfig(
+ arguments.endpoint, Compatibility::IsCompatible());
#endif // BOOTSTRAP_BUILD_TOOL
if (not storage_config) {
return kExitFailure;