packages feed

ghcup-0.1.14.2: ghcup.cabal

cabal-version:   3.0
name:            ghcup
version:         0.1.14.2
license:         LGPL-3.0-only
license-file:    LICENSE
copyright:       Julian Ospald 2020
maintainer:      hasufell@posteo.de
author:          Julian Ospald
homepage:        https://gitlab.haskell.org/haskell/ghcup-hs
bug-reports:     https://gitlab.haskell.org/haskell/ghcup-hs/issues
synopsis:        ghc toolchain installer
description:
  A rewrite of the shell script ghcup, for providing
  a more stable user experience and exposing an API.

category:        System
build-type:      Simple
extra-doc-files: CHANGELOG.md
                 README.md
                 HACKING.md
                 RELEASING.md
                 config.yaml
                 ghcup-0.0.4.yaml

source-repository head
  type:     git
  location: https://gitlab.haskell.org/haskell/ghcup-hs.git

flag tui
  description: Build the brick powered tui (ghcup tui)
  default:     False
  manual:      True

flag internal-downloader
  description:
    Compile the internal downloader, which links against OpenSSL

  default:     False
  manual:      True

flag tar
  description: Use tar-bytestring instead of libarchive
  default:     False
  manual:      True

library
  exposed-modules:
    GHCup
    GHCup.Download
    GHCup.Download.Utils
    GHCup.Errors
    GHCup.Platform
    GHCup.Requirements
    GHCup.Types
    GHCup.Types.JSON
    GHCup.Types.Optics
    GHCup.Utils
    GHCup.Utils.Dirs
    GHCup.Utils.File
    GHCup.Utils.Logger
    GHCup.Utils.MegaParsec
    GHCup.Utils.Prelude
    GHCup.Utils.String.QQ
    GHCup.Utils.Version.QQ
    GHCup.Version

  hs-source-dirs:     lib
  other-modules:      Paths_ghcup
  autogen-modules:    Paths_ghcup
  default-language:   Haskell2010
  default-extensions:
    LambdaCase
    MultiWayIf
    PackageImports
    RecordWildCards
    ScopedTypeVariables
    Strict
    StrictData
    TupleSections

  ghc-options:
    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
    -fwarn-incomplete-record-updates

  build-depends:
    , aeson                 >=1.4        && <1.6
    , async                 >=0.8        && <2.3
    , base                  >=4.13       && <5
    , base16-bytestring     >=0.1.1.6    && <1.1
    , binary                ^>=0.8.6.0
    , bytestring            ^>=0.10
    , bz2                   >=0.5.0.5    && <1.1
    , case-insensitive      ^>=1.2.1.0
    , casing                ^>=0.1.4.1
    , concurrent-output     ^>=1.10.11
    , containers            ^>=0.6
    , cryptohash-sha256     ^>=0.11.101.0
    , generics-sop          ^>=0.5
    , haskus-utils-types    ^>=1.5
    , haskus-utils-variant  >=3.0        && <3.2
    , hpath                 >=0.11       && <0.13
    , hpath-directory       ^>=0.14.1
    , hpath-filepath        ^>=0.10.3
    , hpath-io              ^>=0.14.1
    , hpath-posix           ^>=0.13.2
    , lzma-static           ^>=5.2.5.2
    , megaparsec            >=8.0.0      && <9.1
    , monad-logger          ^>=0.3.31
    , mtl                   ^>=2.2
    , optics                >=0.2        && <0.5
    , optics-vl             ^>=0.2
    , os-release            ^>=1.0.0
    , parsec                ^>=3.1
    , pretty                ^>=1.1.3.1
    , pretty-terminal       ^>=0.1.0.0
    , regex-posix           ^>=0.96
    , resourcet             ^>=1.2.2
    , safe                  ^>=0.3.18
    , safe-exceptions       ^>=0.1
    , split                 ^>=0.2.3.4
    , streamly              ^>=0.7.3
    , streamly-bytestring   ^>=0.1.2
    , streamly-posix        ^>=0.1.0.0
    , strict-base           ^>=0.4
    , string-interpolate    >=0.2.0.0    && <0.4
    , template-haskell      >=2.7        && <2.17
    , text                  ^>=1.2.4.0
    , time                  ^>=1.9.3
    , transformers          ^>=0.5
    , unix                  ^>=2.7
    , unix-bytestring       ^>=0.3
    , unordered-containers  ^>=0.2.10.0
    , uri-bytestring        ^>=0.3.2.2
    , utf8-string           ^>=1.0
    , vector                ^>=0.12
    , versions              ^>=4.0.1
    , vty                   >=5.28.2     && <5.34
    , word8                 ^>=0.1.3
    , yaml                  ^>=0.11.4.0
    , zlib                  ^>=0.6.2.2

  if flag(internal-downloader)
    exposed-modules: GHCup.Download.IOStreams
    cpp-options:     -DINTERNAL_DOWNLOADER
    build-depends:
      , HsOpenSSL              >=0.11.4.18
      , http-io-streams        >=0.1.2.0
      , io-streams             >=1.5
      , terminal-progress-bar  >=0.4.1

  if flag(tar)
    cpp-options:   -DTAR
    build-depends: tar-bytestring ^>=0.6.3.1

  else
    build-depends: libarchive ^>=3.0.0.0

executable ghcup
  main-is:            Main.hs
  hs-source-dirs:     app/ghcup
  default-language:   Haskell2010
  default-extensions:
    LambdaCase
    MultiWayIf
    PackageImports
    RecordWildCards
    ScopedTypeVariables
    Strict
    StrictData
    TupleSections

  ghc-options:
    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
    -fwarn-incomplete-record-updates -threaded

  build-depends:
    , aeson                 >=1.4      && <1.6
    , base                  >=4.13     && <5
    , bytestring            ^>=0.10
    , containers            ^>=0.6
    , ghcup
    , haskus-utils-variant  >=3.0      && <3.2
    , hpath                 >=0.11     && <0.13
    , hpath-io              ^>=0.14.1
    , megaparsec            >=8.0.0    && <9.1
    , monad-logger          ^>=0.3.31
    , mtl                   ^>=2.2
    , optparse-applicative  >=0.15.1.0 && <0.17
    , pretty                ^>=1.1.3.1
    , pretty-terminal       ^>=0.1.0.0
    , resourcet             ^>=1.2.2
    , safe                  ^>=0.3.18
    , safe-exceptions       ^>=0.1
    , string-interpolate    >=0.2.0.0  && <0.4
    , template-haskell      >=2.7      && <2.17
    , text                  ^>=1.2.4.0
    , uri-bytestring        ^>=0.3.2.2
    , utf8-string           ^>=1.0
    , versions              ^>=4.0.1

  if flag(internal-downloader)
    cpp-options: -DINTERNAL_DOWNLOADER

  if flag(tui)
    cpp-options:   -DBRICK
    other-modules: BrickMain
    build-depends:
      , brick   >=0.5    && <0.62
      , vector  ^>=0.12
      , vty     >=5.28.2 && <5.34

  if flag(tar)
    cpp-options: -DTAR

  else
    build-depends: libarchive ^>=3.0.0.0

executable ghcup-gen
  main-is:            Main.hs
  hs-source-dirs:     app/ghcup-gen
  other-modules:      Validate
  default-language:   Haskell2010
  default-extensions:
    LambdaCase
    MultiWayIf
    PackageImports
    RecordWildCards
    ScopedTypeVariables
    TupleSections

  ghc-options:
    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
    -fwarn-incomplete-record-updates -threaded

  build-depends:
    , aeson                 >=1.4      && <1.6
    , aeson-pretty          ^>=0.8.8
    , base                  >=4.13     && <5
    , bytestring            ^>=0.10
    , containers            ^>=0.6
    , ghcup
    , haskus-utils-variant  >=3.0      && <3.2
    , hpath                 >=0.11     && <0.13
    , hpath-filepath        ^>=0.10.3
    , monad-logger          ^>=0.3.31
    , mtl                   ^>=2.2
    , optics                >=0.2      && <0.5
    , optparse-applicative  >=0.15.1.0 && <0.17
    , pretty                ^>=1.1.3.1
    , pretty-terminal       ^>=0.1.0.0
    , regex-posix           ^>=0.96
    , resourcet             ^>=1.2.2
    , safe-exceptions       ^>=0.1
    , string-interpolate    >=0.2.0.0  && <0.4
    , text                  ^>=1.2.4.0
    , transformers          ^>=0.5
    , uri-bytestring        ^>=0.3.2.2
    , utf8-string           ^>=1.0
    , versions              ^>=4.0.1
    , yaml                  ^>=0.11.4.0

  if flag(tar)
    cpp-options:   -DTAR
    build-depends: tar-bytestring ^>=0.6.3.1

  else
    build-depends: libarchive ^>=3.0.0.0

test-suite ghcup-test
  type:               exitcode-stdio-1.0
  main-is:            Main.hs
  hs-source-dirs:     test
  other-modules:
    GHCup.ArbitraryTypes
    GHCup.Types.JSONSpec
    Spec

  default-language:   Haskell2010
  default-extensions:
    LambdaCase
    MultiWayIf
    PackageImports
    RecordWildCards
    ScopedTypeVariables
    TupleSections

  ghc-options:
    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
    -fwarn-incomplete-record-updates

  build-depends:
    , base                      >=4.13    && <5
    , bytestring                ^>=0.10
    , containers                ^>=0.6
    , generic-arbitrary         ^>=0.1.0
    , ghcup
    , hpath                     >=0.11    && <0.13
    , hspec                     ^>=2.7.4
    , hspec-golden-aeson        >=0.7     && <0.10
    , QuickCheck                ^>=2.14.1
    , quickcheck-arbitrary-adt  ^>=0.3.1.0
    , text                      ^>=1.2.4.0
    , uri-bytestring            ^>=0.3.2.2
    , versions                  ^>=4.0.1