@@ -737,89 +737,6 @@ final: prev: {
737
737
"Invalid package component name ${ componentName } . Expected package:ctype:component (where ctype is one of lib, flib, exe, test, or bench)" ;
738
738
( getPackage ( builtins . elemAt m 0 ) ) . getComponent "${ builtins . elemAt m 1 } :${ builtins . elemAt m 2 } " ;
739
739
740
- rawFlake =
741
- let
742
- packageNames = project : builtins . attrNames ( project . args . flake . packages project . hsPkgs ) ;
743
- checkedProject = project . appendModule { checkMaterialization = true ; } ;
744
- in {
745
- # Used by:
746
- # `nix build .#pkg-name:lib:pkg-name`
747
- # `nix build .#pkg-name:lib:sublib-name`
748
- # `nix build .#pkg-name:exe:exe-name`
749
- # `nix build .#pkg-name:test:test-name`
750
- packages = builtins . listToAttrs (
751
- final . lib . concatMap ( packageName :
752
- let package = project . hsPkgs . ${ packageName } ;
753
- in final . lib . optional ( package . components ? library )
754
- { name = "${ packageName } :lib:${ packageName } " ; value = package . components . library ; }
755
- ++ final . lib . mapAttrsToList ( n : v :
756
- { name = "${ packageName } :lib:${ n } " ; value = v ; } )
757
- ( package . components . sublibs )
758
- ++ final . lib . mapAttrsToList ( n : v :
759
- { name = "${ packageName } :exe:${ n } " ; value = v ; } )
760
- ( package . components . exes )
761
- ++ final . lib . mapAttrsToList ( n : v :
762
- { name = "${ packageName } :test:${ n } " ; value = v ; } )
763
- ( package . components . tests )
764
- ++ final . lib . mapAttrsToList ( n : v :
765
- { name = "${ packageName } :bench:${ n } " ; value = v ; } )
766
- ( package . components . benchmarks )
767
- ) ( packageNames project ) ) ;
768
- # Used by:
769
- # `nix flake check`
770
- checks = builtins . listToAttrs (
771
- final . lib . concatMap ( packageName :
772
- let package = project . hsPkgs . ${ packageName } ;
773
- in final . lib . mapAttrsToList ( n : v :
774
- { name = "${ packageName } :test:${ n } " ; value = v ; } )
775
- ( final . lib . filterAttrs ( _ : v : final . lib . isDerivation v ) ( package . checks ) )
776
- ) ( packageNames project ) ) ;
777
- # `nix run .#pkg-name:exe:exe-name`
778
- # `nix run .#pkg-name:test:test-name`
779
- apps = builtins . listToAttrs (
780
- final . lib . concatMap ( packageName :
781
- let package = project . hsPkgs . ${ packageName } ;
782
- in final . lib . mapAttrsToList ( n : v :
783
- { name = "${ packageName } :exe:${ n } " ; value = { type = "app" ; program = v . exePath ; } ; } )
784
- ( package . components . exes )
785
- ++ final . lib . mapAttrsToList ( n : v :
786
- { name = "${ packageName } :test:${ n } " ; value = { type = "app" ; program = v . exePath ; } ; } )
787
- ( package . components . tests )
788
- ++ final . lib . mapAttrsToList ( n : v :
789
- { name = "${ packageName } :benchmark:${ n } " ; value = { type = "app" ; program = v . exePath ; } ; } )
790
- ( package . components . benchmarks )
791
- ) ( packageNames project ) ) ;
792
- # Used by hydra:
793
- hydraJobs = {
794
- checks = rawFlake . checks ;
795
- } // final . lib . optionalAttrs ( checkedProject ? plan-nix ) {
796
- # Build the plan-nix and check it if materialized
797
- plan-nix = checkedProject . plan-nix ;
798
- } // final . lib . optionalAttrs ( checkedProject ? stack-nix ) {
799
- # Build the stack-nix and check it if materialized
800
- stack-nix = checkedProject . stack-nix ;
801
- } // {
802
- # Build tools and cache tools needed for the project
803
- roots = project . roots ;
804
- coverage =
805
- let
806
- coverageProject = project . appendModule [
807
- project . args . flake . coverage
808
- {
809
- modules = [ {
810
- packages = final . lib . genAttrs ( packageNames project )
811
- ( _ : { doCoverage = final . lib . mkDefault true ; } ) ;
812
- } ] ;
813
- }
814
- ] ;
815
- in builtins . listToAttrs ( final . lib . concatMap ( packageName : [ {
816
- name = packageName ;
817
- value = coverageProject . hsPkgs . ${ packageName } . coverageReport ;
818
- } ] ) ( packageNames coverageProject ) ) ;
819
- } ;
820
- devShells . default = project . shell ;
821
- devShell = project . shell ;
822
- } ;
823
740
# Helper function that can be used to make a Nix Flake out of a project
824
741
# by including a flake.nix. See docs/tutorials/getting-started-flakes.md
825
742
# for an example flake.nix file.
@@ -829,9 +746,10 @@ final: prev: {
829
746
let
830
747
combinePrefix = a : b : if a == "default" then b else "${ a } :${ b } " ;
831
748
forAllCrossCompilers = prefix : project : (
832
- [ { ${ prefix } = project . rawFlake ; } ]
749
+ [ { ${ prefix } = haskellLib . mkFlake project project . args . flake . packages project . args . flake . coverage ; } ]
833
750
++ ( map ( project : {
834
- ${ combinePrefix prefix project . pkgs . stdenv . hostPlatform . config } = project . rawFlake ;
751
+ ${ combinePrefix prefix project . pkgs . stdenv . hostPlatform . config } =
752
+ haskellLib . mkFlake project project . args . flake . packages project . args . flake . coverage ;
835
753
} )
836
754
( project . args . flake . crossPlatforms project . projectCross )
837
755
) ) ;
0 commit comments