From b56dd21c311b1ad1e19bfb1180a0b5f94834b85d Mon Sep 17 00:00:00 2001 From: John Ericson Date: Fri, 10 Oct 2025 17:18:40 -0400 Subject: [PATCH] `Settings::ExternalBuilder::systems` make set Nothing cares about the order, actually. --- src/libstore/include/nix/store/globals.hh | 2 +- src/libstore/unix/build/external-derivation-builder.cc | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/libstore/include/nix/store/globals.hh b/src/libstore/include/nix/store/globals.hh index 1b59bd6fc..be3561848 100644 --- a/src/libstore/include/nix/store/globals.hh +++ b/src/libstore/include/nix/store/globals.hh @@ -1375,7 +1375,7 @@ public: struct ExternalBuilder { - std::vector systems; + StringSet systems; Path program; std::vector args; }; diff --git a/src/libstore/unix/build/external-derivation-builder.cc b/src/libstore/unix/build/external-derivation-builder.cc index 71cfd1a62..f20badb85 100644 --- a/src/libstore/unix/build/external-derivation-builder.cc +++ b/src/libstore/unix/build/external-derivation-builder.cc @@ -19,10 +19,9 @@ struct ExternalDerivationBuilder : DerivationBuilderImpl LocalStore & store, std::unique_ptr & miscMethods, DerivationBuilderParams & params) { for (auto & handler : settings.externalBuilders.get()) { - for (auto & system : handler.systems) - if (params.drv.platform == system) - return std::make_unique( - store, std::move(miscMethods), std::move(params), handler); + if (handler.systems.contains(params.drv.platform)) + return std::make_unique( + store, std::move(miscMethods), std::move(params), handler); } return {}; }