mirror of
https://github.com/alexwl/haskell-code-explorer.git
synced 2024-11-30 00:31:29 +03:00
f38daf6773
Building cabal-helper-0.8.1.2 with Stack failed with 'Dependency cycle detected' error. It seems to be https://github.com/commercialhaskell/stack/issues/4265 Stack bug. As a temporary solution I added source code of cabal-helper package to vendor directory and commented out 'build-tool-depends: cabal-helper:cabal-helper-wrapper' line in the cabal-helper.cabal file.
292 lines
12 KiB
Plaintext
292 lines
12 KiB
Plaintext
name: cabal-helper
|
|
version: 0.8.1.2
|
|
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 <cabal-helper@dxld.at>
|
|
maintainer: cabal-helper@dxld.at
|
|
category: Distribution
|
|
build-type: Custom
|
|
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
|
|
|
|
custom-setup
|
|
setup-depends: base
|
|
, Cabal < 3 && >= 2.0.0.0
|
|
|
|
-- [Note test dependencies] Vaious tests need access to modules used in other
|
|
-- components, unfortunately we can't use Cabal 2.0's new internal libraries for
|
|
-- this because we'd like to support ancient Cabal versions. Instead we just
|
|
-- copy 'hs-source-dirs', 'build-depends' and 'other-modules' fields as
|
|
-- appropriate.
|
|
--
|
|
-- The following awk command will copy paragraphs starting with:
|
|
-- -- Common some-name
|
|
-- to following paragraphs starting with:
|
|
-- -- Instantiate common some-name
|
|
--
|
|
-- $ gawk -i inplace -f scripts/update-cabal-common-section-instantiations.awk cabal-helper.cabal
|
|
--
|
|
-- FIXME: We can use Cabal 2.0 features now, yey!
|
|
|
|
library
|
|
default-language: Haskell2010
|
|
default-extensions: NondecreasingIndentation
|
|
hs-source-dirs: lib, src
|
|
exposed-modules: Distribution.Helper
|
|
other-modules:
|
|
CabalHelper.Shared.InterfaceTypes
|
|
CabalHelper.Shared.Sandbox
|
|
Paths_cabal_helper
|
|
autogen-modules: Paths_cabal_helper
|
|
|
|
ghc-options: -Wall
|
|
|
|
-- well actually this is a "runtime"-tool-depends :)
|
|
-- build-tool-depends: cabal-helper:cabal-helper-wrapper
|
|
|
|
build-depends: base < 5 && >= 4.7
|
|
build-depends: Cabal < 2.5 && >= 2.0 || < 1.26 && >= 1.14
|
|
, cabal-plan < 0.5 && >= 0.3.0.0
|
|
, containers < 1 && >= 0.5.5.1
|
|
, directory < 1.4 && >= 1.2.1.0
|
|
, filepath < 1.5 && >= 1.3.0.0
|
|
, transformers < 0.6 && >= 0.3.0.0
|
|
, mtl < 2.3 && >= 2.0
|
|
, process < 1.7 && >= 1.1.0.1
|
|
if !os(windows)
|
|
build-depends: unix < 2.8 && >= 2.5.1.1
|
|
build-depends: unix-compat < 0.6 && >= 0.4.3.1
|
|
, semigroupoids < 5.3 && >= 5.2
|
|
|
|
|
|
|
|
executable cabal-helper-wrapper
|
|
main-is: CabalHelper/Compiletime/Wrapper.hs
|
|
if flag(dev)
|
|
ghc-options: -Wall
|
|
scope: private
|
|
|
|
-- Common c-h-wrapper-fields -- See [Note test dependencies]
|
|
default-language: Haskell2010
|
|
default-extensions: NondecreasingIndentation
|
|
other-extensions: TemplateHaskell
|
|
hs-source-dirs: src
|
|
other-modules:
|
|
CabalHelper.Compiletime.Compat.Environment
|
|
CabalHelper.Compiletime.Compat.ProgramDb
|
|
CabalHelper.Compiletime.Compat.Version
|
|
CabalHelper.Compiletime.Compile
|
|
CabalHelper.Compiletime.Data
|
|
CabalHelper.Compiletime.Log
|
|
CabalHelper.Compiletime.Types
|
|
CabalHelper.Shared.Common
|
|
CabalHelper.Shared.InterfaceTypes
|
|
CabalHelper.Shared.Sandbox
|
|
Paths_cabal_helper
|
|
build-tool-depends: cabal-install:cabal
|
|
build-depends: base < 5 && >= 4.7
|
|
if os(windows)
|
|
build-depends: base >= 4.7
|
|
build-depends: 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.1.0.1
|
|
, pretty-show < 1.9 && >= 1.8.1
|
|
, 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
|
|
build-tools: cabal
|
|
|
|
|
|
test-suite compile-test
|
|
type: exitcode-stdio-1.0
|
|
main-is: CompileTest.hs
|
|
hs-source-dirs: tests
|
|
ghc-options: -Wall
|
|
build-tools: cabal
|
|
|
|
-- Instantiate common c-h-wrapper-fields -- See [Note test dependencies]
|
|
default-language: Haskell2010
|
|
default-extensions: NondecreasingIndentation
|
|
other-extensions: TemplateHaskell
|
|
hs-source-dirs: src
|
|
other-modules:
|
|
CabalHelper.Compiletime.Compat.Environment
|
|
CabalHelper.Compiletime.Compat.ProgramDb
|
|
CabalHelper.Compiletime.Compat.Version
|
|
CabalHelper.Compiletime.Compile
|
|
CabalHelper.Compiletime.Data
|
|
CabalHelper.Compiletime.Log
|
|
CabalHelper.Compiletime.Types
|
|
CabalHelper.Shared.Common
|
|
CabalHelper.Shared.InterfaceTypes
|
|
CabalHelper.Shared.Sandbox
|
|
Paths_cabal_helper
|
|
build-tool-depends: cabal-install:cabal
|
|
build-depends: base < 5 && >= 4.7
|
|
if os(windows)
|
|
build-depends: base >= 4.7
|
|
build-depends: 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.1.0.1
|
|
, pretty-show < 1.9 && >= 1.8.1
|
|
, 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
|
|
build-tools: cabal
|
|
|
|
|
|
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.8
|
|
, ghc-paths < 0.2 && >= 0.1.0.9
|
|
, cabal-helper
|
|
|
|
-- Instantiate common c-h-wrapper-fields -- See [Note test dependencies]
|
|
default-language: Haskell2010
|
|
default-extensions: NondecreasingIndentation
|
|
other-extensions: TemplateHaskell
|
|
hs-source-dirs: src
|
|
other-modules:
|
|
CabalHelper.Compiletime.Compat.Environment
|
|
CabalHelper.Compiletime.Compat.ProgramDb
|
|
CabalHelper.Compiletime.Compat.Version
|
|
CabalHelper.Compiletime.Compile
|
|
CabalHelper.Compiletime.Data
|
|
CabalHelper.Compiletime.Log
|
|
CabalHelper.Compiletime.Types
|
|
CabalHelper.Shared.Common
|
|
CabalHelper.Shared.InterfaceTypes
|
|
CabalHelper.Shared.Sandbox
|
|
Paths_cabal_helper
|
|
build-tool-depends: cabal-install:cabal
|
|
build-depends: base < 5 && >= 4.7
|
|
if os(windows)
|
|
build-depends: base >= 4.7
|
|
build-depends: 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.1.0.1
|
|
, pretty-show < 1.9 && >= 1.8.1
|
|
, 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
|
|
build-tools: cabal
|
|
|
|
|
|
executable cabal-helper-main
|
|
default-language: Haskell2010
|
|
default-extensions: NondecreasingIndentation
|
|
main-is: CabalHelper/Runtime/Main.hs
|
|
hs-source-dirs: src
|
|
other-modules:
|
|
CabalHelper.Shared.Common
|
|
CabalHelper.Shared.InterfaceTypes
|
|
CabalHelper.Shared.Sandbox
|
|
|
|
-- This component is usually built at runtime by cabal-helper-wrapper but
|
|
-- during development it's convinient to build it via cabal
|
|
if flag(dev)
|
|
buildable: True
|
|
else
|
|
buildable: False
|
|
|
|
-- Common c-h-main-fields -- See [Note test dependencies]
|
|
ghc-options: -Wall -fno-warn-unused-imports
|
|
build-depends: base < 5 && >= 4.7
|
|
, Cabal
|
|
, containers
|
|
, bytestring
|
|
, filepath
|
|
, directory
|
|
, ghc-prim
|