510 lines
13 KiB
Plaintext
510 lines
13 KiB
Plaintext
cabal-version: 2.4
|
|
name: ghcup
|
|
version: 0.1.22.0
|
|
license: LGPL-3.0-only
|
|
license-file: LICENSE
|
|
copyright: Julian Ospald 2024
|
|
maintainer: hasufell@posteo.de
|
|
author: Julian Ospald
|
|
homepage: https://github.com/haskell/ghcup-hs
|
|
bug-reports: https://github.com/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
|
|
data/config.yaml
|
|
README.md
|
|
|
|
extra-source-files:
|
|
cbits/dirutils.c
|
|
cbits/dirutils.h
|
|
data/build_mk/cross
|
|
data/build_mk/default
|
|
test/ghcup-test/data/dir/.keep
|
|
test/ghcup-test/data/file
|
|
test/ghcup-test/golden/unix/GHCupInfo.json
|
|
test/ghcup-test/golden/windows/GHCupInfo.json
|
|
|
|
tested-with: GHC==9.4.8
|
|
, GHC==9.2.8
|
|
, GHC==9.0.2
|
|
, GHC==8.10.7
|
|
|
|
source-repository head
|
|
type: git
|
|
location: https://github.com/haskell/ghcup-hs.git
|
|
|
|
flag tui
|
|
description:
|
|
Build the brick powered tui (ghcup tui).
|
|
|
|
default: True
|
|
manual: True
|
|
|
|
flag internal-downloader
|
|
description:
|
|
Compile the internal downloader, which links against OpenSSL. This is disabled on windows.
|
|
|
|
default: False
|
|
manual: True
|
|
|
|
flag no-exe
|
|
description: Don't build any executables
|
|
default: False
|
|
manual: True
|
|
|
|
flag tar
|
|
description: Use haskell tar instead of libarchive.
|
|
default: False
|
|
manual: True
|
|
|
|
common app-common-depends
|
|
build-depends:
|
|
, aeson >=1.4
|
|
, aeson-pretty ^>=0.8.8
|
|
, async ^>=2.2.3
|
|
, base >=4.12 && <5
|
|
, bytestring >=0.10 && <0.12
|
|
, cabal-install-parsers >=0.4.5
|
|
, cabal-plan ^>=0.7.2
|
|
, containers ^>=0.6
|
|
, deepseq ^>=1.4
|
|
, directory ^>=1.3.6.0
|
|
, filepath >=1.4.101.0
|
|
, haskus-utils-types ^>=1.5
|
|
, haskus-utils-variant ^>=3.3
|
|
, megaparsec >=8.0.0 && <9.3
|
|
, mtl ^>=2.2
|
|
, optparse-applicative >=0.15.1.0 && <0.18
|
|
, pretty ^>=1.1.3.1
|
|
, pretty-terminal ^>=0.1.0.0
|
|
, process ^>=1.6.11.0
|
|
, resourcet ^>=1.2.2
|
|
, safe ^>=0.3.18
|
|
, safe-exceptions ^>=0.1
|
|
, tagsoup ^>=0.14
|
|
, template-haskell >=2.7 && <2.22
|
|
, temporary ^>=1.3
|
|
, text ^>=2.0
|
|
, time >=1.9.3 && <1.12
|
|
, unordered-containers ^>=0.2
|
|
, uri-bytestring ^>=0.3.2.2
|
|
, utf8-string ^>=1.0
|
|
, vector >=0.12 && <0.14
|
|
, versions >=6.0.5 && <6.1
|
|
, yaml-streamly ^>=0.12.0
|
|
|
|
if flag(tar)
|
|
cpp-options: -DTAR
|
|
build-depends:
|
|
tar ^>=0.6.0.0
|
|
, zip ^>=2.0.0
|
|
|
|
else
|
|
build-depends: libarchive ^>=3.0.3.0
|
|
|
|
library
|
|
exposed-modules:
|
|
GHCup
|
|
GHCup.Cabal
|
|
GHCup.Download
|
|
GHCup.Download.Utils
|
|
GHCup.Errors
|
|
GHCup.GHC
|
|
GHCup.HLS
|
|
GHCup.List
|
|
GHCup.Platform
|
|
GHCup.Prelude
|
|
GHCup.Prelude.File
|
|
GHCup.Prelude.File.Search
|
|
GHCup.Prelude.Internal
|
|
GHCup.Prelude.Logger
|
|
GHCup.Prelude.Logger.Internal
|
|
GHCup.Prelude.MegaParsec
|
|
GHCup.Prelude.Process
|
|
GHCup.Prelude.String.QQ
|
|
GHCup.Prelude.Version.QQ
|
|
GHCup.Prompts
|
|
GHCup.Requirements
|
|
GHCup.Stack
|
|
GHCup.Types
|
|
GHCup.Types.JSON
|
|
GHCup.Types.JSON.Utils
|
|
GHCup.Types.JSON.Versions
|
|
GHCup.Types.Optics
|
|
GHCup.Types.Stack
|
|
GHCup.Utils
|
|
GHCup.Utils.Dirs
|
|
GHCup.Utils.Tar
|
|
GHCup.Utils.Tar.Types
|
|
GHCup.Utils.URI
|
|
GHCup.Version
|
|
|
|
hs-source-dirs: lib
|
|
other-modules: Paths_ghcup
|
|
autogen-modules: Paths_ghcup
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
DeriveGeneric
|
|
LambdaCase
|
|
MultiWayIf
|
|
NamedFieldPuns
|
|
PackageImports
|
|
QuasiQuotes
|
|
RecordWildCards
|
|
ScopedTypeVariables
|
|
StrictData
|
|
TupleSections
|
|
TypeApplications
|
|
TypeFamilies
|
|
ViewPatterns
|
|
|
|
ghc-options:
|
|
-Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
|
|
-fwarn-incomplete-record-updates
|
|
|
|
build-depends:
|
|
, aeson >=1.4
|
|
, async >=0.8 && <2.3
|
|
, base >=4.12 && <5
|
|
, base16-bytestring >=0.1.1.6 && <1.1
|
|
, binary ^>=0.8.6.0
|
|
, bytestring >=0.10 && <0.12
|
|
, Cabal ^>=3.0.0.0 || ^>=3.2.0.0 || ^>=3.4.0.0 || ^>=3.6.0.0 || ^>=3.8.0.0 || ^>= 3.10.0.0
|
|
, case-insensitive ^>=1.2.1.0
|
|
, casing ^>=0.1.4.1
|
|
, containers ^>=0.6
|
|
, cryptohash-sha256 ^>=0.11.101.0
|
|
, deepseq ^>=1.4.4.0
|
|
, directory ^>=1.3.6.0
|
|
, disk-free-space ^>=0.1.0.1
|
|
, exceptions ^>=0.10
|
|
, filepath >=1.4.101.0
|
|
, file-uri ^>=0.1.0.0
|
|
, haskus-utils-types ^>=1.5
|
|
, haskus-utils-variant ^>=3.3
|
|
, lzma-static ^>=5.2.5.3
|
|
, megaparsec >=8.0.0 && <9.3
|
|
, mtl ^>=2.2
|
|
, optics ^>=0.4
|
|
, os-release ^>=1.0.0
|
|
, pretty ^>=1.1.3.1
|
|
, pretty-terminal ^>=0.1.0.0
|
|
, regex-posix ^>=0.96
|
|
, resourcet ^>=1.2.2
|
|
, retry >=0.8.1.2 && <0.10
|
|
, safe ^>=0.3.18
|
|
, safe-exceptions ^>=0.1
|
|
, split ^>=0.2.3.4
|
|
, streamly ^>=0.8.2
|
|
, strict-base ^>=0.4
|
|
, template-haskell >=2.7 && <2.22
|
|
, temporary ^>=1.3
|
|
, text ^>=2.0
|
|
, time >=1.9.3 && <1.12
|
|
, transformers ^>=0.5
|
|
, unliftio-core ^>=0.2.0.1
|
|
, unordered-containers ^>=0.2.10.0
|
|
, uri-bytestring ^>=0.3.2.2
|
|
, vector >=0.12 && <0.14
|
|
, versions >=6.0.5 && <6.1
|
|
, word8 ^>=0.1.3
|
|
, yaml-streamly ^>=0.12.0
|
|
, zlib ^>=0.6.2.2
|
|
|
|
if flag(tar)
|
|
cpp-options: -DTAR
|
|
build-depends:
|
|
tar ^>=0.6.0.0
|
|
, zip ^>=2.0.0
|
|
|
|
else
|
|
build-depends: libarchive ^>=3.0.3.0
|
|
|
|
if (flag(internal-downloader) && !os(windows))
|
|
exposed-modules: GHCup.Download.IOStreams
|
|
cpp-options: -DINTERNAL_DOWNLOADER
|
|
build-depends:
|
|
, HsOpenSSL >=0.11.7.2
|
|
, http-io-streams >=0.1.2.0
|
|
, io-streams >=1.5.2.1
|
|
, terminal-progress-bar >=0.4.1
|
|
|
|
if os(windows)
|
|
cpp-options: -DIS_WINDOWS
|
|
other-modules:
|
|
GHCup.Prelude.File.Windows
|
|
GHCup.Prelude.Windows
|
|
|
|
-- GHCup.OptParse.Run uses this
|
|
exposed-modules: GHCup.Prelude.Process.Windows
|
|
build-depends:
|
|
, bzlib
|
|
, process ^>=1.6.11.0
|
|
, Win32 >=2.10
|
|
|
|
else
|
|
other-modules:
|
|
GHCup.Prelude.File.Posix
|
|
GHCup.Prelude.File.Posix.Foreign
|
|
GHCup.Prelude.Posix
|
|
GHCup.Prelude.Process.Posix
|
|
|
|
exposed-modules: GHCup.Prelude.File.Posix.Traversals
|
|
include-dirs: cbits
|
|
includes: dirutils.h
|
|
install-includes: dirutils.h
|
|
c-sources: cbits/dirutils.c
|
|
build-depends:
|
|
, bz2 >=0.5.0.5 && <1.1
|
|
, terminal-size ^>=0.3.3
|
|
, unix ^>=2.7 || ^>=2.8
|
|
, unix-bytestring ^>=0.3.7.3
|
|
|
|
if flag(tui)
|
|
cpp-options: -DBRICK
|
|
build-depends: vty ^>=6.0 || ^>=6.1 || ^>=6.2
|
|
|
|
library ghcup-optparse
|
|
import: app-common-depends
|
|
exposed-modules:
|
|
GHCup.OptParse
|
|
GHCup.OptParse.ChangeLog
|
|
GHCup.OptParse.Common
|
|
GHCup.OptParse.Compile
|
|
GHCup.OptParse.Config
|
|
GHCup.OptParse.DInfo
|
|
GHCup.OptParse.GC
|
|
GHCup.OptParse.Install
|
|
GHCup.OptParse.List
|
|
GHCup.OptParse.Nuke
|
|
GHCup.OptParse.Prefetch
|
|
GHCup.OptParse.Rm
|
|
GHCup.OptParse.Run
|
|
GHCup.OptParse.Set
|
|
GHCup.OptParse.Test
|
|
GHCup.OptParse.ToolRequirements
|
|
GHCup.OptParse.UnSet
|
|
GHCup.OptParse.Upgrade
|
|
GHCup.OptParse.Whereis
|
|
|
|
hs-source-dirs: lib-opt
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
LambdaCase
|
|
MultiWayIf
|
|
NamedFieldPuns
|
|
PackageImports
|
|
RecordWildCards
|
|
ScopedTypeVariables
|
|
StrictData
|
|
TupleSections
|
|
|
|
ghc-options:
|
|
-Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
|
|
-fwarn-incomplete-record-updates
|
|
|
|
build-depends: ghcup
|
|
|
|
if flag(internal-downloader)
|
|
cpp-options: -DINTERNAL_DOWNLOADER
|
|
|
|
if flag(tui)
|
|
cpp-options: -DBRICK
|
|
|
|
if os(windows)
|
|
cpp-options: -DIS_WINDOWS
|
|
|
|
else
|
|
build-depends: unix ^>=2.7 || ^>=2.8
|
|
|
|
library ghcup-tui
|
|
import: app-common-depends
|
|
exposed-modules:
|
|
GHCup.BrickMain
|
|
GHCup.Brick.Widgets.Navigation
|
|
GHCup.Brick.Widgets.Tutorial
|
|
GHCup.Brick.Widgets.KeyInfo
|
|
GHCup.Brick.Widgets.SectionList
|
|
GHCup.Brick.Widgets.Menu
|
|
GHCup.Brick.Widgets.Menus.Context
|
|
GHCup.Brick.Widgets.Menus.AdvanceInstall
|
|
GHCup.Brick.Actions
|
|
GHCup.Brick.App
|
|
GHCup.Brick.BrickState
|
|
GHCup.Brick.Attributes
|
|
GHCup.Brick.Common
|
|
|
|
hs-source-dirs: lib-tui
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
LambdaCase
|
|
MultiWayIf
|
|
NamedFieldPuns
|
|
PackageImports
|
|
RecordWildCards
|
|
ScopedTypeVariables
|
|
StrictData
|
|
TupleSections
|
|
|
|
ghc-options:
|
|
-Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
|
|
-fwarn-incomplete-record-updates
|
|
|
|
build-depends:
|
|
, ghcup
|
|
, ghcup-optparse
|
|
, optics ^>=0.4
|
|
, brick ^>=2.1
|
|
, transformers ^>=0.5
|
|
, vty ^>=6.0
|
|
, optics ^>=0.4
|
|
|
|
if flag(internal-downloader)
|
|
cpp-options: -DINTERNAL_DOWNLOADER
|
|
|
|
if flag(tui)
|
|
cpp-options: -DBRICK
|
|
|
|
if os(windows)
|
|
cpp-options: -DIS_WINDOWS
|
|
|
|
else
|
|
build-depends: unix ^>=2.7
|
|
|
|
executable ghcup
|
|
import: app-common-depends
|
|
main-is: Main.hs
|
|
|
|
hs-source-dirs: app/ghcup
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
LambdaCase
|
|
MultiWayIf
|
|
NamedFieldPuns
|
|
PackageImports
|
|
RecordWildCards
|
|
ScopedTypeVariables
|
|
StrictData
|
|
TupleSections
|
|
|
|
ghc-options:
|
|
-Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
|
|
-fwarn-incomplete-record-updates -threaded
|
|
|
|
build-depends:
|
|
, ghcup
|
|
, ghcup-optparse
|
|
, ghcup-tui
|
|
|
|
if flag(internal-downloader)
|
|
cpp-options: -DINTERNAL_DOWNLOADER
|
|
|
|
if flag(tui)
|
|
cpp-options: -DBRICK
|
|
other-modules: BrickMain
|
|
build-depends:
|
|
, brick ^>=2.1
|
|
, transformers ^>=0.5
|
|
, vty ^>=6.0 || ^>=6.1 || ^>=6.2
|
|
, optics ^>=0.4
|
|
|
|
if os(windows)
|
|
cpp-options: -DIS_WINDOWS
|
|
else
|
|
build-depends: unix ^>=2.7 || ^>=2.8
|
|
|
|
if flag(no-exe)
|
|
buildable: False
|
|
|
|
test-suite ghcup-test
|
|
type: exitcode-stdio-1.0
|
|
main-is: Main.hs
|
|
build-tool-depends: hspec-discover:hspec-discover -any
|
|
hs-source-dirs: test/ghcup-test
|
|
other-modules:
|
|
GHCup.ArbitraryTypes
|
|
GHCup.Prelude.File.Posix.TraversalsSpec
|
|
GHCup.Types.JSONSpec
|
|
GHCup.Utils.FileSpec
|
|
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.12 && <5
|
|
, bytestring >=0.10 && <0.12
|
|
, containers ^>=0.6
|
|
, directory ^>=1.3.6.0
|
|
, filepath >=1.4.101.0
|
|
, generic-arbitrary >=0.1.0 && <0.2.1 || >=0.2.2 && <0.3
|
|
, ghcup
|
|
, hspec >=2.7.10 && <2.11
|
|
, hspec-golden-aeson ^>=0.9
|
|
, QuickCheck ^>=2.14.1
|
|
, quickcheck-arbitrary-adt ^>=0.3.1.0
|
|
, streamly ^>=0.8.2
|
|
, text ^>=2.0
|
|
, time >=1.9.3 && <1.12
|
|
, uri-bytestring ^>=0.3.2.2
|
|
, versions >=6.0.5 && <6.1
|
|
|
|
if os(windows)
|
|
cpp-options: -DIS_WINDOWS
|
|
|
|
else
|
|
build-depends: unix ^>=2.7 || ^>=2.8
|
|
|
|
test-suite ghcup-optparse-test
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: test/optparse-test
|
|
main-is: Main.hs
|
|
other-modules:
|
|
ChangeLogTest
|
|
CompileTest
|
|
ConfigTest
|
|
GCTest
|
|
InstallTest
|
|
ListTest
|
|
OtherCommandTest
|
|
RmTest
|
|
RunTest
|
|
SetTest
|
|
UnsetTest
|
|
UpgradeTest
|
|
Utils
|
|
WhereisTest
|
|
|
|
if os(windows)
|
|
cpp-options: -DIS_WINDOWS
|
|
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall
|
|
build-depends:
|
|
, base
|
|
, ghcup
|
|
, ghcup-optparse
|
|
, optparse-applicative
|
|
, tasty
|
|
, tasty-hunit
|
|
, template-haskell
|
|
, text
|
|
, uri-bytestring
|
|
, versions
|