name:               cabal2nix
version:            2.20.0
x-revision: 1
synopsis:           Convert Cabal files into Nix build instructions.
description:
  Convert Cabal files into Nix build instructions. Users of Nix can install the latest
  version by running:
  .
  > nix-env -i cabal2nix
license:            BSD3
license-file:       LICENSE
author:             Peter Simons <simons@cryp.to>
-- list all contributors: git log --pretty='%an' | sort | uniq
maintainer:         sternenseemann <sternenseemann@systemli.org>
stability:          stable
tested-with:        GHC == 8.10.7 || == 9.0.2 || == 9.2.8 || == 9.4.8 || == 9.6.6 || == 9.8.3 || == 9.10.1
category:           Distribution, Nix
homepage:           https://github.com/nixos/cabal2nix#readme
bug-reports:        https://github.com/nixos/cabal2nix/issues
build-type:         Simple
extra-doc-files:    README.md
                    CHANGELOG.md
extra-source-files: test/golden-test-cases/*.cabal
                    test/golden-test-cases/*.nix.golden
cabal-version:      1.24

source-repository head
  type:     git
  location: https://github.com/nixos/cabal2nix
  subdir:   cabal2nix

library
  exposed-modules:    Cabal2nix
                      Distribution.Nixpkgs.Color
                      Distribution.Nixpkgs.Fetch
                      Distribution.Nixpkgs.Haskell
                      Distribution.Nixpkgs.Haskell.BuildInfo
                      Distribution.Nixpkgs.Haskell.Constraint
                      Distribution.Nixpkgs.Haskell.Derivation
                      Distribution.Nixpkgs.Haskell.FromCabal
                      Distribution.Nixpkgs.Haskell.FromCabal.Configuration
                      Distribution.Nixpkgs.Haskell.FromCabal.Flags
                      Distribution.Nixpkgs.Haskell.FromCabal.License
                      Distribution.Nixpkgs.Haskell.FromCabal.Name
                      Distribution.Nixpkgs.Haskell.FromCabal.Normalize
                      Distribution.Nixpkgs.Haskell.FromCabal.PostProcess
                      Distribution.Nixpkgs.Haskell.Hackage
                      Distribution.Nixpkgs.Haskell.OrphanInstances
                      Distribution.Nixpkgs.Haskell.PackageSourceSpec
                      Distribution.Nixpkgs.Haskell.Platform
  other-modules:      Paths_cabal2nix
  hs-source-dirs:     src
  build-depends:      base                 > 4.11 && <5
                    -- When changing the Cabal version, ensure that it builds
                    -- with all installation methods mentioned in the README!
                    , Cabal                >= 3.0
                    , aeson                > 1
                    , ansi-terminal
                    , ansi-wl-pprint
                    , bytestring
                    , containers           >= 0.5.9
                    , deepseq              >= 1.4
                    , directory
                    , distribution-nixpkgs >= 1.7 && <1.8
                    , filepath
                    , hackage-db           >= 2.0.1
                    , hopenssl             >= 2
                    , hpack                >= 0.29.6
                    , language-nix
                    , lens
                    , optparse-applicative
                    , pretty               >= 1.1.2
                    , process
                    , split
                    , text
                    , time
                    , transformers
                    , yaml
  default-language:   Haskell2010
  other-extensions:   MultiParamTypeClasses
                      ScopedTypeVariables
                      FlexibleInstances
                      CPP
                      TemplateHaskell
                      StandaloneDeriving
                      RecordWildCards
                      OverloadedStrings
                      DeriveGeneric

executable cabal2nix
  main-is:            Main.hs
  hs-source-dirs:     cabal2nix
  build-depends:      base, cabal2nix
  default-language:   Haskell2010

executable hackage2nix
  main-is:            Main.hs
  other-modules:      HackageGit
                      Paths_cabal2nix
  hs-source-dirs:     hackage2nix
  build-depends:      base                 < 5
                    , Cabal
                    , aeson
                    , bytestring
                    , cabal2nix
                    , containers
                    , directory
                    , distribution-nixpkgs >= 1.7 && < 1.8
                    , filepath
                    , hopenssl             >= 2
                    , language-nix
                    , lens
                    , monad-par
                    , monad-par-extras
                    , mtl
                    , optparse-applicative
                    , pretty               >= 1.1.2
  default-language:   Haskell2010
  ghc-options:        -threaded -rtsopts -with-rtsopts=-maxN16

test-suite regression-test
  type:               exitcode-stdio-1.0
  main-is:            Main.hs
  hs-source-dirs:     test
  build-depends:      base
                    , Cabal < 3.14
                    , cabal2nix
                    , containers
                    , directory
                    , filepath
                    , language-nix
                    , lens
                    , pretty
                    , process      > 1.2
                    , tasty
                    , tasty-golden
  default-language:   Haskell2010
  build-tools:        cabal2nix
  ghc-options:        -threaded -with-rtsopts=-K64K