Selectively build packages with LLVM
This commit is contained in:
parent
9d78035368
commit
51c93e0cc3
|
@ -7,6 +7,7 @@ nixpkgs.lib.composeManyExtensions [
|
||||||
colmena.overlays.default
|
colmena.overlays.default
|
||||||
rust-overlay.overlays.default
|
rust-overlay.overlays.default
|
||||||
niri.overlays.niri
|
niri.overlays.niri
|
||||||
|
self.overlays.llvm
|
||||||
self.overlays.mimalloc
|
self.overlays.mimalloc
|
||||||
self.overlays.modern-minimal
|
self.overlays.modern-minimal
|
||||||
self.overlays.fixes
|
self.overlays.fixes
|
||||||
|
|
142
overlay/llvm.nix
Normal file
142
overlay/llvm.nix
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
{ nixpkgs, ... }: final: prev:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (nixpkgs) lib;
|
||||||
|
inherit (lib) optionalAttrs toList;
|
||||||
|
inherit (final.llvmPackages_latest) clangUseLLVM bintools;
|
||||||
|
|
||||||
|
stdenv = final.overrideCC final.stdenv (clangUseLLVM.override { inherit bintools; });
|
||||||
|
cflags = [ "-flto" ];
|
||||||
|
ldflags = [ "--icf=safe" "--lto-O2" ];
|
||||||
|
|
||||||
|
override = pkg: (pkg.overrideAttrs (prevAttrs: {
|
||||||
|
env = prevAttrs.env or { } // optionalAttrs (!prevAttrs ? NIX_CFLAGS_COMPILE) {
|
||||||
|
NIX_CFLAGS_COMPILE = toList prevAttrs.env.NIX_CFLAGS_COMPILE or [ ] ++ cflags |> toString;
|
||||||
|
} // optionalAttrs (prevAttrs ? env.NIX_LDFLAGS) {
|
||||||
|
NIX_LDFLAGS = toList prevAttrs.NIX_LDFLAGS or [ ] ++ ldflags |> toString;
|
||||||
|
};
|
||||||
|
} // optionalAttrs (prevAttrs ? NIX_CFLAGS_COMPILE) {
|
||||||
|
NIX_CFLAGS_COMPILE = toList prevAttrs.env.NIX_CFLAGS_COMPILE or [ ] ++ cflags;
|
||||||
|
} // optionalAttrs (!prevAttrs ? env.NIX_LDFLAGS) {
|
||||||
|
NIX_LDFLAGS = toList prevAttrs.NIX_LDFLAGS or [ ] ++ ldflags;
|
||||||
|
})).override { inherit stdenv; };
|
||||||
|
in lib.genAttrs [
|
||||||
|
"alsa-lib"
|
||||||
|
"at-spi2-atk"
|
||||||
|
"bluez"
|
||||||
|
"cairo"
|
||||||
|
"celt"
|
||||||
|
"colord"
|
||||||
|
"cryptsetup"
|
||||||
|
"cups"
|
||||||
|
"dav1d"
|
||||||
|
"dbus"
|
||||||
|
"dbus-broker"
|
||||||
|
"dconf"
|
||||||
|
"fdk-aac"
|
||||||
|
"ffmpeg"
|
||||||
|
"ffmpeg-headless"
|
||||||
|
"firefox-unwrapped"
|
||||||
|
"flac"
|
||||||
|
"flite"
|
||||||
|
"fontconfig"
|
||||||
|
"freetype"
|
||||||
|
"fribidi"
|
||||||
|
"fprintd"
|
||||||
|
"fwupd"
|
||||||
|
"gdk-pixbuf"
|
||||||
|
"geoclue2"
|
||||||
|
"ghostscript"
|
||||||
|
"giflib"
|
||||||
|
"gjs"
|
||||||
|
"glib"
|
||||||
|
"glslang"
|
||||||
|
"gtk2"
|
||||||
|
"gtk3"
|
||||||
|
"gtk4"
|
||||||
|
"gtkmm"
|
||||||
|
"gumbo"
|
||||||
|
"haproxy"
|
||||||
|
"harfbuzz"
|
||||||
|
"imlib2"
|
||||||
|
"inkscape"
|
||||||
|
"iwd"
|
||||||
|
"jasper"
|
||||||
|
"jbig2dec"
|
||||||
|
"kitty"
|
||||||
|
"ladspa"
|
||||||
|
"lame"
|
||||||
|
"lcms2"
|
||||||
|
"libaom"
|
||||||
|
"libass"
|
||||||
|
"libblockdev"
|
||||||
|
"libde256"
|
||||||
|
"libdrm"
|
||||||
|
"libepoxy"
|
||||||
|
"libevdev"
|
||||||
|
"libevent"
|
||||||
|
"libexif"
|
||||||
|
"libglvnd"
|
||||||
|
"libheif"
|
||||||
|
"libinput"
|
||||||
|
"libjpeg"
|
||||||
|
"libmng"
|
||||||
|
"libmpeg2"
|
||||||
|
"libogg"
|
||||||
|
"libopus"
|
||||||
|
"libnotify"
|
||||||
|
"libpng"
|
||||||
|
"libpng-apng"
|
||||||
|
"libpulseaudio"
|
||||||
|
"librsvg"
|
||||||
|
"libsndfile"
|
||||||
|
"libtheora"
|
||||||
|
"libtiff"
|
||||||
|
"libusb"
|
||||||
|
"libva"
|
||||||
|
"libva-minimal"
|
||||||
|
"libvorbis"
|
||||||
|
"libvpx"
|
||||||
|
"libxkbcommon"
|
||||||
|
"libwebp"
|
||||||
|
"mesa"
|
||||||
|
"mimalloc"
|
||||||
|
"mpv"
|
||||||
|
"nix"
|
||||||
|
"nsncd"
|
||||||
|
"openh264"
|
||||||
|
"openjpeg"
|
||||||
|
"openssh"
|
||||||
|
"pango"
|
||||||
|
"pcre"
|
||||||
|
"pipewire"
|
||||||
|
"pixman"
|
||||||
|
"polkit"
|
||||||
|
"poppler"
|
||||||
|
"qemu-user"
|
||||||
|
"rtkit"
|
||||||
|
"sbc"
|
||||||
|
"sioyek"
|
||||||
|
"speex"
|
||||||
|
"spdlog"
|
||||||
|
"svt-av1"
|
||||||
|
"swaylock"
|
||||||
|
"swaylock-effects"
|
||||||
|
"systemd"
|
||||||
|
"thunderbird-unwrapped"
|
||||||
|
"udisks"
|
||||||
|
"v4l-utils"
|
||||||
|
"vulkan-headers"
|
||||||
|
"vulkan-loader"
|
||||||
|
"waybar"
|
||||||
|
"wayland"
|
||||||
|
"wayland-protocols"
|
||||||
|
"wayland-scanner"
|
||||||
|
"wireplumber"
|
||||||
|
"wlroots"
|
||||||
|
"woff2"
|
||||||
|
"x264"
|
||||||
|
"x265"
|
||||||
|
"xvidcore"
|
||||||
|
] (pkg: override prev.${pkg})
|
||||||
|
|
Loading…
Reference in a new issue