mirror of
https://github.com/aviallon/nixos-lib.git
synced 2026-04-06 01:38:06 +00:00
[Optimizations+Lib] Improve optimizations for Go and Clang.
Add mergeAttrsRecursive to lib.
This commit is contained in:
parent
3167a6b678
commit
3dc95db22e
1 changed files with 29 additions and 18 deletions
|
|
@ -5,29 +5,40 @@ let
|
||||||
desktopCfg = config.aviallon.desktop;
|
desktopCfg = config.aviallon.desktop;
|
||||||
generalCfg = config.aviallon.general;
|
generalCfg = config.aviallon.general;
|
||||||
|
|
||||||
_optimizeAttrs = { lto ? false , ... }@attrs:
|
_optimizeAttrs = { lto ? false , go ? false, ... }@attrs:
|
||||||
traceValSeq ((myLib.optimizations.makeOptimizationFlags ({
|
traceValSeq (
|
||||||
inherit lto;
|
(myLib.optimizations.makeOptimizationFlags ({
|
||||||
|
inherit lto go;
|
||||||
cpuArch = generalCfg.cpuArch;
|
cpuArch = generalCfg.cpuArch;
|
||||||
|
cpuTune = generalCfg.cpuTune;
|
||||||
extraCFlags = cfg.extraCompileFlags;
|
extraCFlags = cfg.extraCompileFlags;
|
||||||
} // attrs)) // {
|
} // attrs))
|
||||||
preConfigure = ''
|
// {
|
||||||
cmakeFlagsArray+=(
|
preConfigure = ''
|
||||||
"-DCMAKE_CXX_FLAGS=$CXXFLAGS"
|
cmakeFlagsArray+=(
|
||||||
"-DCMAKE_C_FLAGS=$CFLAGS"
|
"-DCMAKE_CXX_FLAGS=$CXXFLAGS"
|
||||||
)
|
"-DCMAKE_C_FLAGS=$CFLAGS"
|
||||||
'';
|
)
|
||||||
doCheck = false;
|
'';
|
||||||
doInstallCheck = false;
|
}
|
||||||
});
|
// (optionalAttrs go {
|
||||||
optimizedStdenv = pkgs.addAttrsToDerivation _optimizeAttrs pkgs.fastStdenv;
|
buildInputs = [ pkgs.gccgo ];
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
addAttrs = pkg: attrs: pkg.overrideAttrs (old: traceValSeqN 2 (myLib.attrsets.mergeAttrsRecursive old attrs) );
|
||||||
|
|
||||||
optimizePkg = {level ? "normal", parallelize ? null, ... }@attrs: pkg:
|
optimizePkg = {level ? "normal", ... }@attrs: pkg:
|
||||||
(
|
let
|
||||||
|
optimizedAttrs = _optimizeAttrs (attrs // {inherit level; go = (hasAttr "GOARCH" pkg); });
|
||||||
|
optStdenv = pkgs.addAttrsToDerivation optimizedAttrs pkgs.fastStdenv;
|
||||||
|
in (
|
||||||
if (hasAttr "stdenv" pkg.override.__functionArgs) then
|
if (hasAttr "stdenv" pkg.override.__functionArgs) then
|
||||||
trace "Optimized ${getName pkg} with stdenv at level ${level} (parallelize: ${toString parallelize})" pkg.override {
|
trace "Optimized ${getName pkg} with stdenv at level '${level}'" pkg.override {
|
||||||
stdenv = pkgs.addAttrsToDerivation (_optimizeAttrs (attrs // {inherit level parallelize; })) pkgs.fastStdenv;
|
stdenv = optStdenv;
|
||||||
}
|
}
|
||||||
|
else if (hasAttr "overrideAttrs" pkg) then
|
||||||
|
trace "Optimized ${getName pkg} with overrideAttrs at level '${level}'" (addAttrs pkg optimizedAttrs)
|
||||||
else
|
else
|
||||||
warn "Can't optimize ${getName pkg}" pkg
|
warn "Can't optimize ${getName pkg}" pkg
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue