[Mesa+Hardware] move Mesa specific options to a dedicated files

This commit is contained in:
Antoine Viallon 2023-04-27 23:55:08 +02:00
parent 250820cb82
commit d3e80fda86
Signed by: aviallon
GPG key ID: 186FC35EDEB25716
7 changed files with 58 additions and 13 deletions

53
hardware/mesa.nix Normal file
View file

@ -0,0 +1,53 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.aviallon.hardware.mesa;
devCfg = config.aviallon.developer;
generalCfg = config.aviallon.general;
packageWithDefaults = types.package // {
merge = loc: defs:
let res = mergeDefaultOption loc defs;
in if builtins.isPath res || (builtins.isString res && ! builtins.hasContext res)
then toDerivation res
else res;
};
in {
options.aviallon.hardware.mesa = {
enable = mkOption {
default = false;
type = types.bool;
description = "Wether to enable mesa specific configuration";
example = true;
};
optimized = mkOption {
default = generalCfg.unsafeOptimizations;
type = types.bool;
description = "Wether to enable (unsafe) mesa optimizations";
example = false;
};
package = mkOption {
internal = true;
default = pkgs.mesa;
type = packageWithDefaults;
description = "What mesa package to use";
};
package32 = mkOption {
internal = true;
default = pkgs.driversi686Linux.mesa;
type = packageWithDefaults;
description = "What mesa package to use";
};
};
config = mkIf cfg.enable {
programs.corectrl.enable = mkDefault config.hardware.opengl.enable;
aviallon.hardware.mesa.package = mkIf cfg.optimized pkgs.mesaOptimized;
#aviallon.hardware.mesa.package32 = mkIf (mkDefault cfg.optimized pkgs.driversi686Linux.mesaOptimized);
hardware.opengl = {
package = with pkgs; cfg.package.drivers;
package32 = with pkgs; cfg.package32.drivers;
};
};
}