summary refs log blame commit diff
path: root/pkgs/development/haskell-modules/lib.nix
blob: 121508488e9f9db18f3345f7dad81533c0fed5a1 (plain) (tree)
1
2
3
4
5
6
7
8
9


         
 
                                                        
                                                         
          
                                                                     
    
 





                                                                       
                                                              



                                                                          
                                                                                                                 




                                                                                                                                   

                                                            














                                                                                              
 
{ pkgs }:

rec {

  overrideCabal = drv: f: (drv.override (args: args // {
    mkDerivation = drv: args.mkDerivation (drv // f drv);
  })) // {
    overrideScope = scope: overrideCabal (drv.overrideScope scope) f;
  };

  doHaddock = drv: overrideCabal drv (drv: { noHaddock = false; });
  dontHaddock = drv: overrideCabal drv (drv: { noHaddock = true; });

  doJailbreak = drv: overrideCabal drv (drv: { jailbreak = true; });
  dontJailbreak = drv: overrideCabal drv (drv: { jailbreak = false; });

  doCheck = drv: overrideCabal drv (drv: { doCheck = true; });
  dontCheck = drv: overrideCabal drv (drv: { doCheck = false; });

  dontDistribute = drv: overrideCabal drv (drv: { hydraPlatforms = []; });

  appendConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = (drv.configureFlags or []) ++ [x]; });
  removeConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = pkgs.stdenv.lib.remove x (drv.configureFlags or []); });

  enableCabalFlag = drv: x: appendConfigureFlag (removeConfigureFlag drv "-f-${x}") "-f${x}";
  disableCabalFlag = drv: x: appendConfigureFlag (removeConfigureFlag drv "-f${x}") "-f-${x}";

  markBroken = drv: overrideCabal (drv: { broken = true; });

  enableLibraryProfiling = drv: overrideCabal drv (drv: { enableLibraryProfiling = true; });
  disableLibraryProfiling = drv: overrideCabal drv (drv: { enableLibraryProfiling = false; });

  enableSharedExecutables = drv: overrideCabal drv ( { enableSharedExecutables = true; });
  disableSharedExecutables = drv: overrideCabal drv ( { enableSharedExecutables = false; });

  enableSharedLibraries = drv: overrideCabal drv (drv: { enableSharedLibraries = true; });
  disableSharedLibraries = drv: overrideCabal drv (drv: { enableSharedLibraries = false; });

  enableSplitObjs = drv: overrideCabal drv (drv: { enableSplitObjs = true; });
  disableSplitObjs = drv: overrideCabal drv (drv: { enableSplitObjs = false; });

  enableStaticLibraries = drv: overrideCabal drv (drv: { enableStaticLibraries = true; });
  disableStaticLibraries = drv: overrideCabal drv (drv: { enableStaticLibraries = false; });

}