name: cabal-helper version: 1.0.0.0 synopsis: Simple interface to some of Cabal's configuration state, mainly used by ghc-mod description: Cabal's little helper provides access to build information gathered by @cabal@ when configuring a project. Specifically we're interested in retrieving enough information to bring up a compiler session, using the GHC API, which is similar to running @cabal repl@ in a project. . While simple in principle this is complicated by the fact that the information Cabal writes to disk is in an unstable format and only really accessible through the Cabal API itself. . Since we do not want to bind the user of a development tool which utilises this library to a specific version of Cabal we compile the code which interfaces with the Cabal library's API on the user's machine, at runtime, against whichever version of Cabal was used to write the on disk information for a given project. . If this version of Cabal is not available on the users machine anymore, which is fairly likely since cabal-install is usually linked statically, we have support for compiling the Cabal library also. In this case the library is installed into a private, isolated, package database in @$XDG_CACHE_HOME/cabal-helper@ so as to not interfere with the user's package database. license: GPL-3 license-file: LICENSE author: Daniel Gröber maintainer: cabal-helper@dxld.at category: Distribution build-type: Simple cabal-version: 2.0 extra-source-files: README.md src/CabalHelper/Runtime/*.hs tests/*.hs tests/exelib/*.hs tests/exelib/*.cabal tests/exelib/lib/*.hs tests/exeintlib/*.hs tests/exeintlib/*.cabal tests/exeintlib/lib/*.hs tests/exeintlib/intlib/*.hs tests/fliblib/*.hs tests/fliblib/*.cabal tests/fliblib/lib/*.hs tests/bkpregex/*.cabal tests/bkpregex/*.hs tests/bkpregex/regex-example/*.hs tests/bkpregex/regex-indef/*.hs tests/bkpregex/regex-indef/*.hsig tests/bkpregex/regex-types/Regex/*.hs tests/bkpregex/str-impls/Str/*.hs source-repository head type: git location: https://github.com/DanielG/cabal-helper.git flag dev description: Build development components default: False manual: True -- [Note test dependencies] Vaious tests need access to modules used in other -- components, unfortunately we can't use Cabal 2.2's new common stanzas for -- this because we'd like to support Cabal-2.0 for a while still. Instead we -- just copy 'hs-source-dirs', 'build-depends' and 'other-modules' fields using -- an awk script as appropriate. -- -- The following awk command will copy paragraphs starting with: -- -- Common -- to following paragraphs starting with: -- -- Instantiate common -- -- $ gawk -i inplace -f scripts/update-cabal-common-section-instantiations.awk cabal-helper.cabal library c-h-internal exposed-modules: CabalHelper.Compiletime.Cabal CabalHelper.Compiletime.Compat.Environment CabalHelper.Compiletime.Compat.ProgramDb CabalHelper.Compiletime.Compat.Version CabalHelper.Compiletime.Compile CabalHelper.Compiletime.Data CabalHelper.Compiletime.Log CabalHelper.Compiletime.Process CabalHelper.Compiletime.Program.CabalInstall CabalHelper.Compiletime.Program.Stack CabalHelper.Compiletime.Program.GHC CabalHelper.Compiletime.Types CabalHelper.Compiletime.Types.RelativePath CabalHelper.Shared.Common CabalHelper.Shared.InterfaceTypes CabalHelper.Shared.Sandbox other-modules: Paths_cabal_helper autogen-modules: Paths_cabal_helper hs-source-dirs: src -- Common c-h-internal -- See [Note test dependencies] default-language: Haskell2010 default-extensions: NondecreasingIndentation ImplicitParams NamedFieldPuns RecordWildCards FlexibleContexts ConstraintKinds other-extensions: TemplateHaskell build-depends: base < 5 && >= 4.7 , Cabal < 2.5 && >= 2.0 || < 1.26 && >= 1.14 , cabal-plan < 0.5 && >= 0.3.0.0 , containers < 1 && >= 0.5.5.1 , bytestring < 0.11 && >= 0.9.2.1 , directory < 1.4 && >= 1.2.1.0 , filepath < 1.5 && >= 1.3.0.0 , mtl < 2.3 && >= 2.0 , process < 1.7 && >= 1.2.3.0 , pretty-show < 1.9 && >= 1.8.1 , semigroupoids < 5.3 && >= 5.2 , SHA < 1.7 && >= 1.6.4.4 , text < 1.3 && >= 1.0.0.0 , template-haskell < 2.14 && >= 2.7.0.0 , temporary < 1.3 && >= 1.2.1 , transformers < 0.6 && >= 0.3.0.0 if !os(windows) build-depends: unix < 2.8 && >= 2.5.1.1 build-depends: unix-compat < 0.6 && >= 0.4.3.1 , utf8-string < 1.1 && >= 1.0.1.1 if flag(dev) ghc-options: -Wall library exposed-modules: Distribution.Helper other-modules: Paths_cabal_helper autogen-modules: Paths_cabal_helper hs-source-dirs: lib build-depends: c-h-internal -- Instantiate common c-h-internal -- See [Note test dependencies] default-language: Haskell2010 default-extensions: NondecreasingIndentation ImplicitParams NamedFieldPuns RecordWildCards FlexibleContexts ConstraintKinds other-extensions: TemplateHaskell build-depends: base < 5 && >= 4.7 , Cabal < 2.5 && >= 2.0 || < 1.26 && >= 1.14 , cabal-plan < 0.5 && >= 0.3.0.0 , containers < 1 && >= 0.5.5.1 , bytestring < 0.11 && >= 0.9.2.1 , directory < 1.4 && >= 1.2.1.0 , filepath < 1.5 && >= 1.3.0.0 , mtl < 2.3 && >= 2.0 , process < 1.7 && >= 1.2.3.0 , pretty-show < 1.9 && >= 1.8.1 , semigroupoids < 5.3 && >= 5.2 , SHA < 1.7 && >= 1.6.4.4 , text < 1.3 && >= 1.0.0.0 , template-haskell < 2.14 && >= 2.7.0.0 , temporary < 1.3 && >= 1.2.1 , transformers < 0.6 && >= 0.3.0.0 if !os(windows) build-depends: unix < 2.8 && >= 2.5.1.1 build-depends: unix-compat < 0.6 && >= 0.4.3.1 , utf8-string < 1.1 && >= 1.0.1.1 if flag(dev) ghc-options: -Wall test-suite compile-test type: exitcode-stdio-1.0 main-is: CompileTest.hs hs-source-dirs: tests ghc-options: -Wall build-depends: c-h-internal -- Instantiate common c-h-internal -- See [Note test dependencies] default-language: Haskell2010 default-extensions: NondecreasingIndentation ImplicitParams NamedFieldPuns RecordWildCards FlexibleContexts ConstraintKinds other-extensions: TemplateHaskell build-depends: base < 5 && >= 4.7 , Cabal < 2.5 && >= 2.0 || < 1.26 && >= 1.14 , cabal-plan < 0.5 && >= 0.3.0.0 , containers < 1 && >= 0.5.5.1 , bytestring < 0.11 && >= 0.9.2.1 , directory < 1.4 && >= 1.2.1.0 , filepath < 1.5 && >= 1.3.0.0 , mtl < 2.3 && >= 2.0 , process < 1.7 && >= 1.2.3.0 , pretty-show < 1.9 && >= 1.8.1 , semigroupoids < 5.3 && >= 5.2 , SHA < 1.7 && >= 1.6.4.4 , text < 1.3 && >= 1.0.0.0 , template-haskell < 2.14 && >= 2.7.0.0 , temporary < 1.3 && >= 1.2.1 , transformers < 0.6 && >= 0.3.0.0 if !os(windows) build-depends: unix < 2.8 && >= 2.5.1.1 build-depends: unix-compat < 0.6 && >= 0.4.3.1 , utf8-string < 1.1 && >= 1.0.1.1 if flag(dev) ghc-options: -Wall test-suite ghc-session type: exitcode-stdio-1.0 main-is: GhcSession.hs hs-source-dirs: tests ghc-options: -Wall build-depends: base < 5 && >= 4.7 , ghc < 8.5 && >= 7.10 , ghc-paths < 0.2 && >= 0.1.0.9 , cabal-helper , c-h-internal -- Instantiate common c-h-internal -- See [Note test dependencies] default-language: Haskell2010 default-extensions: NondecreasingIndentation ImplicitParams NamedFieldPuns RecordWildCards FlexibleContexts ConstraintKinds other-extensions: TemplateHaskell build-depends: base < 5 && >= 4.7 , Cabal < 2.5 && >= 2.0 || < 1.26 && >= 1.14 , cabal-plan < 0.5 && >= 0.3.0.0 , containers < 1 && >= 0.5.5.1 , bytestring < 0.11 && >= 0.9.2.1 , directory < 1.4 && >= 1.2.1.0 , filepath < 1.5 && >= 1.3.0.0 , mtl < 2.3 && >= 2.0 , process < 1.7 && >= 1.2.3.0 , pretty-show < 1.9 && >= 1.8.1 , semigroupoids < 5.3 && >= 5.2 , SHA < 1.7 && >= 1.6.4.4 , text < 1.3 && >= 1.0.0.0 , template-haskell < 2.14 && >= 2.7.0.0 , temporary < 1.3 && >= 1.2.1 , transformers < 0.6 && >= 0.3.0.0 if !os(windows) build-depends: unix < 2.8 && >= 2.5.1.1 build-depends: unix-compat < 0.6 && >= 0.4.3.1 , utf8-string < 1.1 && >= 1.0.1.1 if flag(dev) ghc-options: -Wall executable cabal-helper-main default-language: Haskell2010 default-extensions: NondecreasingIndentation main-is: CabalHelper/Runtime/Main.hs hs-source-dirs: src other-modules: CabalHelper.Runtime.Compat CabalHelper.Shared.Common CabalHelper.Shared.InterfaceTypes CabalHelper.Shared.Sandbox CabalHelper.Shared.Common -- This component is usually built at runtime but during development it's -- convinient to build it via cabal if flag(dev) buildable: True else buildable: False ghc-options: -Wall -fno-warn-unused-imports build-depends: base < 5 && >= 4.7 , Cabal , containers , bytestring , filepath , directory , ghc-prim