dynix/default.nix
2026-03-24 15:07:52 +01:00

36 lines
1.1 KiB
Nix

# SPDX-FileCopyrightText: 2026 Qyriad <qyriad@qyriad.me>
#
# SPDX-License-Identifier: EUPL-1.1
{
pkgs ? import <nixpkgs> { config.checkMeta = true; },
qpkgs ? let
src = fetchTarball "https://github.com/Qyriad/nur-packages/archive/main.tar.gz";
in import src { inherit pkgs; },
}: let
inherit (qpkgs) lib;
# Use LLD for faster link times.
defaultStdenv = pkgs.clangStdenv.override {
cc = pkgs.clangStdenv.cc.override {
bintools = pkgs.wrapBintoolsWith { inherit (pkgs.llvmPackages) bintools; };
};
};
dynix = (qpkgs.callPackage ./package.nix { clangStdenv = defaultStdenv; })
.overrideAttrs (final: prev: {
dynixCommand = qpkgs.stdlib.mkStdenvPretty prev.dynixCommand;
dynixModules = qpkgs.stdlib.mkStdenvPretty prev.dynixModules;
})
|> qpkgs.stdlib.mkStdenvPretty;
byStdenv = lib.mapAttrs (stdenvName: stdenv: let
withStdenv = dynix.override { clangStdenv = stdenv; };
dynix' = withStdenv.overrideAttrs (prev: {
pname = "${prev.pname}-${stdenvName}";
});
in dynix') qpkgs.validStdenvs;
in dynix.overrideAttrs (prev: lib.recursiveUpdate prev {
passthru = { inherit byStdenv; };
})