You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

477 lines
8.9 KiB

  1. cabal-version: 3.0
  2. name: ghcup
  3. version: 0.1.12
  4. synopsis: ghc toolchain installer as an exe/library
  5. description:
  6. A rewrite of the shell script ghcup, for providing
  7. a more stable user experience and exposing an API.
  8. homepage: https://gitlab.haskell.org/haskell/ghcup-hs
  9. bug-reports: https://gitlab.haskell.org/haskell/ghcup-hs/issues
  10. license: LGPL-3.0-only
  11. license-file: LICENSE
  12. author: Julian Ospald
  13. maintainer: hasufell@posteo.de
  14. copyright: Julian Ospald 2020
  15. category: System
  16. build-type: Simple
  17. extra-source-files: CHANGELOG.md
  18. source-repository head
  19. type: git
  20. location: https://gitlab.haskell.org/haskell/ghcup-hs.git
  21. flag tui
  22. description: Build the brick powered tui (ghcup tui)
  23. default: False
  24. manual: True
  25. flag internal-downloader
  26. description: Compile the internal downloader, which links against OpenSSL
  27. default: False
  28. manual: True
  29. flag tar
  30. description: Use tar-bytestring instead of libarchive
  31. default: False
  32. manual: True
  33. common HsOpenSSL
  34. build-depends: HsOpenSSL >=0.11.4.18
  35. common aeson
  36. build-depends: aeson >=1.4
  37. common aeson-pretty
  38. build-depends: aeson-pretty >=0.8.8
  39. common ascii-string
  40. build-depends: ascii-string >=1.0
  41. common async
  42. build-depends: async >=0.8
  43. common base
  44. build-depends: base >=4.12 && <5
  45. common base16-bytestring
  46. build-depends: base16-bytestring >= 0.1.1.6
  47. common binary
  48. build-depends: binary >=0.8.6.0
  49. common brick
  50. build-depends: brick >=0.54
  51. common bytestring
  52. build-depends: bytestring >=0.10
  53. common bz2
  54. build-depends: bz2 >=0.5.0.5
  55. common case-insensitive
  56. build-depends: case-insensitive >=1.2.1.0
  57. common casing
  58. build-depends: casing >=0.1.4.1
  59. common concurrent-output
  60. build-depends: concurrent-output >=1.10.11
  61. common containers
  62. build-depends: containers >=0.6
  63. common cryptohash-sha256
  64. build-depends: cryptohash-sha256 >= 0.11.101.0
  65. common generic-arbitrary
  66. build-depends: generic-arbitrary >=0.1.0
  67. common generics-sop
  68. build-depends: generics-sop >=0.5
  69. common haskus-utils-types
  70. build-depends: haskus-utils-types >=1.5
  71. common haskus-utils-variant
  72. build-depends: haskus-utils-variant >=3.0
  73. common hpath
  74. build-depends: hpath >=0.11
  75. common hpath-directory
  76. build-depends: hpath-directory >=0.14.1
  77. common hpath-filepath
  78. build-depends: hpath-filepath >=0.10.3
  79. common hpath-io
  80. build-depends: hpath-io >=0.14.1
  81. common hpath-posix
  82. build-depends: hpath-posix >=0.13.2
  83. common http-io-streams
  84. build-depends: http-io-streams >=0.1.2.0
  85. common hspec
  86. build-depends: hspec >=2.7.4
  87. common hspec-golden-aeson
  88. build-depends: hspec-golden-aeson >=0.7
  89. common io-streams
  90. build-depends: io-streams >=1.5
  91. common libarchive
  92. build-depends: libarchive >= 3.0.0.0
  93. common lzma
  94. build-depends: lzma >=0.0.0.3
  95. common megaparsec
  96. build-depends: megaparsec >=8.0.0
  97. common monad-logger
  98. build-depends: monad-logger >=0.3.31
  99. common mtl
  100. build-depends: mtl >=2.2
  101. common optics
  102. build-depends: optics >=0.2
  103. common optics-vl
  104. build-depends: optics-vl >=0.2
  105. common optparse-applicative
  106. build-depends: optparse-applicative >=0.15.1.0
  107. common parsec
  108. build-depends: parsec >=3.1
  109. common pretty-terminal
  110. build-depends: pretty-terminal >=0.1.0.0
  111. common regex-posix
  112. build-depends: regex-posix >=0.96
  113. common resourcet
  114. build-depends: resourcet >=1.2.2
  115. common safe
  116. build-depends: safe >=0.3.18
  117. common safe-exceptions
  118. build-depends: safe-exceptions >=0.1
  119. common split
  120. build-depends: split >=0.2.3.4
  121. common streamly
  122. build-depends: streamly >=0.7.1
  123. common streamly-posix
  124. build-depends: streamly-posix >=0.1.0.0
  125. common streamly-bytestring
  126. build-depends: streamly-bytestring >=0.1.2
  127. common strict-base
  128. build-depends: strict-base >=0.4
  129. common string-interpolate
  130. build-depends: string-interpolate >=0.2.0.0
  131. common template-haskell
  132. build-depends: template-haskell >=2.7
  133. common tar-bytestring
  134. build-depends: tar-bytestring >=0.6.3.1
  135. common terminal-progress-bar
  136. build-depends: terminal-progress-bar >=0.4.1
  137. common text
  138. build-depends: text >=1.2.4.0
  139. common time
  140. build-depends: time >=1.9.3
  141. common transformers
  142. build-depends: transformers >=0.5
  143. common os-release
  144. build-depends: os-release >=1.0.0
  145. common QuickCheck
  146. build-depends: QuickCheck >=2.14.1
  147. common quickcheck-arbitrary-adt
  148. build-depends: quickcheck-arbitrary-adt >=0.3.1.0
  149. common unix
  150. build-depends: unix >=2.7
  151. common unix-bytestring
  152. build-depends: unix-bytestring >=0.3
  153. common unordered-containers
  154. build-depends: unordered-containers >= 0.2.10.0
  155. common uri-bytestring
  156. build-depends: uri-bytestring >=0.3.2.2
  157. common utf8-string
  158. build-depends: utf8-string >=1.0
  159. common vector
  160. build-depends: vector >=0.12
  161. common versions
  162. build-depends: versions >=4.0.1
  163. common vty
  164. build-depends: vty >=5.28.2
  165. common word8
  166. build-depends: word8 >=0.1.3
  167. common yaml
  168. build-depends: yaml >=0.11.4.0
  169. common zlib
  170. build-depends: zlib >=0.6.2.1
  171. common config
  172. default-language: Haskell2010
  173. ghc-options:
  174. -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
  175. -fwarn-incomplete-record-updates -threaded
  176. default-extensions:
  177. LambdaCase
  178. MultiWayIf
  179. PackageImports
  180. RecordWildCards
  181. ScopedTypeVariables
  182. TupleSections
  183. library
  184. import:
  185. config
  186. , base
  187. , base16-bytestring
  188. , aeson
  189. , ascii-string
  190. , async
  191. , binary
  192. , bytestring
  193. , bz2
  194. , case-insensitive
  195. , casing
  196. , concurrent-output
  197. , containers
  198. , cryptohash-sha256
  199. , generics-sop
  200. , haskus-utils-types
  201. , haskus-utils-variant
  202. , hpath
  203. , hpath-directory
  204. , hpath-filepath
  205. , hpath-io
  206. , hpath-posix
  207. , lzma
  208. , megaparsec
  209. , monad-logger
  210. , mtl
  211. , optics
  212. , optics-vl
  213. , parsec
  214. , pretty-terminal
  215. , regex-posix
  216. , resourcet
  217. , safe
  218. , safe-exceptions
  219. , split
  220. , streamly
  221. , streamly-posix
  222. , streamly-bytestring
  223. , strict-base
  224. , string-interpolate
  225. , template-haskell
  226. , text
  227. , time
  228. , transformers
  229. , os-release
  230. , unix
  231. , unix-bytestring
  232. , unordered-containers
  233. , uri-bytestring
  234. , utf8-string
  235. , vector
  236. , versions
  237. , vty
  238. , word8
  239. , yaml
  240. , zlib
  241. exposed-modules:
  242. GHCup
  243. GHCup.Download
  244. GHCup.Download.Utils
  245. GHCup.Errors
  246. GHCup.Platform
  247. GHCup.Requirements
  248. GHCup.Types
  249. GHCup.Types.JSON
  250. GHCup.Types.Optics
  251. GHCup.Utils
  252. GHCup.Utils.Dirs
  253. GHCup.Utils.File
  254. GHCup.Utils.Logger
  255. GHCup.Utils.MegaParsec
  256. GHCup.Utils.Prelude
  257. GHCup.Utils.String.QQ
  258. GHCup.Utils.Version.QQ
  259. GHCup.Version
  260. default-extensions:
  261. Strict
  262. StrictData
  263. -- other-modules:
  264. -- other-extensions:
  265. hs-source-dirs: lib
  266. if flag(internal-downloader)
  267. import:
  268. HsOpenSSL
  269. , http-io-streams
  270. , io-streams
  271. , terminal-progress-bar
  272. exposed-modules: GHCup.Download.IOStreams
  273. cpp-options: -DINTERNAL_DOWNLOADER
  274. if flag(tar)
  275. import:
  276. tar-bytestring
  277. cpp-options: -DTAR
  278. else
  279. import:
  280. libarchive
  281. executable ghcup
  282. import:
  283. config
  284. , base
  285. , aeson
  286. , bytestring
  287. , containers
  288. , haskus-utils-variant
  289. , hpath
  290. , hpath-io
  291. , megaparsec
  292. , monad-logger
  293. , mtl
  294. , optparse-applicative
  295. , pretty-terminal
  296. , resourcet
  297. , safe
  298. , safe-exceptions
  299. , string-interpolate
  300. , template-haskell
  301. , text
  302. , uri-bytestring
  303. , utf8-string
  304. , versions
  305. --
  306. main-is: Main.hs
  307. -- other-modules:
  308. -- other-extensions:
  309. build-depends: ghcup
  310. hs-source-dirs: app/ghcup
  311. default-language: Haskell2010
  312. default-extensions:
  313. Strict
  314. StrictData
  315. if flag(internal-downloader)
  316. cpp-options: -DINTERNAL_DOWNLOADER
  317. if flag(tui)
  318. import:
  319. brick
  320. , vector
  321. , vty
  322. other-modules: BrickMain
  323. cpp-options: -DBRICK
  324. if flag(tar)
  325. cpp-options: -DTAR
  326. else
  327. import:
  328. libarchive
  329. executable ghcup-gen
  330. import:
  331. config
  332. , base
  333. , aeson
  334. , aeson-pretty
  335. , bytestring
  336. , containers
  337. , haskus-utils-variant
  338. , hpath
  339. , monad-logger
  340. , mtl
  341. , optics
  342. , optparse-applicative
  343. , pretty-terminal
  344. , resourcet
  345. , safe-exceptions
  346. , string-interpolate
  347. , text
  348. , transformers
  349. , uri-bytestring
  350. , utf8-string
  351. , versions
  352. , yaml
  353. --
  354. main-is: Main.hs
  355. other-modules:
  356. Validate
  357. -- other-extensions:
  358. build-depends: ghcup
  359. hs-source-dirs: app/ghcup-gen
  360. default-language: Haskell2010
  361. test-suite ghcup-test
  362. import:
  363. config
  364. , base
  365. , bytestring
  366. , containers
  367. , QuickCheck
  368. , generic-arbitrary
  369. , hpath
  370. , hspec
  371. , hspec-golden-aeson
  372. , quickcheck-arbitrary-adt
  373. , text
  374. , uri-bytestring
  375. , versions
  376. type: exitcode-stdio-1.0
  377. build-depends: ghcup
  378. hs-source-dirs: test
  379. main-is: Main.hs
  380. other-modules:
  381. GHCup.ArbitraryTypes
  382. GHCup.Types.JSONSpec
  383. Spec