mirror of
https://github.com/aviallon/nixos-lib.git
synced 2026-04-06 01:38:06 +00:00
[Package/Optimizations] Fix optimization helpers and add automatic parallelization options
This commit is contained in:
parent
e05ab538c3
commit
3167a6b678
2 changed files with 11 additions and 9 deletions
|
|
@ -5,12 +5,12 @@ let
|
||||||
desktopCfg = config.aviallon.desktop;
|
desktopCfg = config.aviallon.desktop;
|
||||||
generalCfg = config.aviallon.general;
|
generalCfg = config.aviallon.general;
|
||||||
|
|
||||||
_optimizeAttrs = level:
|
_optimizeAttrs = { lto ? false , ... }@attrs:
|
||||||
traceValSeq ((myLib.optimizations.makeOptimizationFlags {
|
traceValSeq ((myLib.optimizations.makeOptimizationFlags ({
|
||||||
inherit level;
|
inherit lto;
|
||||||
cpuArch = generalCfg.cpuArch;
|
cpuArch = generalCfg.cpuArch;
|
||||||
extraCFlags = cfg.extraCompileFlags;
|
extraCFlags = cfg.extraCompileFlags;
|
||||||
}) // {
|
} // attrs)) // {
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
cmakeFlagsArray+=(
|
cmakeFlagsArray+=(
|
||||||
"-DCMAKE_CXX_FLAGS=$CXXFLAGS"
|
"-DCMAKE_CXX_FLAGS=$CXXFLAGS"
|
||||||
|
|
@ -22,11 +22,11 @@ let
|
||||||
});
|
});
|
||||||
optimizedStdenv = pkgs.addAttrsToDerivation _optimizeAttrs pkgs.fastStdenv;
|
optimizedStdenv = pkgs.addAttrsToDerivation _optimizeAttrs pkgs.fastStdenv;
|
||||||
|
|
||||||
optimizePkg = {level ? "normal" }: pkg:
|
optimizePkg = {level ? "normal", parallelize ? null, ... }@attrs: pkg:
|
||||||
(
|
(
|
||||||
if (hasAttr "stdenv" pkg.override.__functionArgs) then
|
if (hasAttr "stdenv" pkg.override.__functionArgs) then
|
||||||
trace "Optimized ${getName pkg} with stdenv" pkg.override {
|
trace "Optimized ${getName pkg} with stdenv at level ${level} (parallelize: ${toString parallelize})" pkg.override {
|
||||||
stdenv = pkgs.addAttrsToDerivation (_optimizeAttrs level) pkgs.fastStdenv;
|
stdenv = pkgs.addAttrsToDerivation (_optimizeAttrs (attrs // {inherit level parallelize; })) pkgs.fastStdenv;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
warn "Can't optimize ${getName pkg}" pkg
|
warn "Can't optimize ${getName pkg}" pkg
|
||||||
|
|
@ -52,7 +52,9 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
nixpkgs.overlays = mkBefore [
|
nixpkgs.overlays = mkBefore [
|
||||||
(self: super: {
|
(self: super: {
|
||||||
htop = optimizePkg {} super.htop;
|
opensshOptimized = optimizePkg { level = "very-unsafe"; lto = true; } super.openssh;
|
||||||
|
#libxslt = optimizePkg { level = "unsafe"; parallelize = generalCfg.cores; lto = true; } super.libxslt;
|
||||||
|
htop = optimizePkg {parallelize = generalCfg.cores; lto = true; } super.htop;
|
||||||
nano = optimizePkg {level = "unsafe";} super.nano;
|
nano = optimizePkg {level = "unsafe";} super.nano;
|
||||||
virtmanager = optimizePkg {} super.virtmanager;
|
virtmanager = optimizePkg {} super.virtmanager;
|
||||||
libsForQt5 = super.libsForQt5.overrideScope' (mself: msuper: {
|
libsForQt5 = super.libsForQt5.overrideScope' (mself: msuper: {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, myLib, ... }:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.aviallon.programs;
|
cfg = config.aviallon.programs;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue