self: super: let # this should come from config.programs.ccache.cacheDir but I can't figure out # how to access that from a nixpkgs overlay, so just hardcode the default ccacheDir = "/var/cache/ccache"; # https://github.com/NixOS/nixpkgs/pull/216363#issuecomment-1430356886 fixwebkit = pkg: self.useCcacheStdenv (pkg.overrideAttrs (attrs: rec { preConfigure = attrs.preConfigure + '' # not sure which of these works so just do them both export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES ninjaFlagsArray+=("-l$NIX_BUILD_CORES") ''; })); in { ccacheWrapper = super.ccacheWrapper.override { extraConfig = '' export CCACHE_COMPRESS=1 export CCACHE_DIR="${ccacheDir}" export CCACHE_UMASK=007 if [ ! -d "$CCACHE_DIR" ] then echo "=====" echo "Directory '$CCACHE_DIR' does not exist" echo "Please create it with:" echo " sudo mkdir -m0770 '$CCACHE_DIR'" echo " sudo chown root:nixbld '$CCACHE_DIR'" echo "=====" exit 1 fi if [ ! -w "$CCACHE_DIR" ] then echo "=====" echo "Directory '$CCACHE_DIR' is not accessible for user $(whoami)" echo "Please verify its access permissions" echo "=====" exit 1 fi ''; }; useCcacheStdenv = pkg: pkg.override { stdenv = super.ccacheStdenv; }; cudann = self.useCcacheStdenv super.cudann; llvm = self.useCcacheStdenv super.llvm; magma = self.useCcacheStdenv super.magma; nvcc = self.useCcacheStdenv super.nvcc; onnx = self.useCcacheStdenv super.onnx; onnxruntime = self.useCcacheStdenv super.onnxruntime; webkit = fixwebkit super.webkit; webkitgtk = fixwebkit super.webkitgtk; webkitgtk_4_1 = fixwebkit super.webkitgtk_4_1; webkitgtk_5_0 = fixwebkit super.webkitgtk_5_0; webkitgtk_6_0 = fixwebkit super.webkitgtk_6_0; }