diff options
-rw-r--r-- | cabal-helper.cabal | 169 | ||||
-rw-r--r-- | scripts/update-cabal-common-section-instantiations.awk | 34 |
2 files changed, 32 insertions, 171 deletions
diff --git a/cabal-helper.cabal b/cabal-helper.cabal index ba312e8..2727307 100644 --- a/cabal-helper.cabal +++ b/cabal-helper.cabal @@ -67,44 +67,7 @@ flag dev 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 <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 - -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] +common extensions default-language: Haskell2010 default-extensions: NondecreasingIndentation ImplicitParams @@ -112,6 +75,8 @@ library c-h-internal FlexibleContexts ConstraintKinds other-extensions: TemplateHaskell + +common build-deps build-depends: base < 5 && >= 4.8 , Cabal < 2.5 && >= 2.0 || < 1.26 && >= 1.14 , cabal-plan < 0.5 && >= 0.3.0.0 @@ -122,6 +87,7 @@ library c-h-internal , mtl < 2.3 && >= 2.0 , process < 1.7 && >= 1.2.3.0 , pretty-show < 1.9 && >= 1.8.1 + , semigroups < 0.19 && >= 0.18 , semigroupoids < 5.4 && >= 5.2 , SHA < 1.7 && >= 1.6.4.4 , text < 1.3 && >= 1.0.0.0 @@ -136,8 +102,33 @@ library c-h-internal ghc-options: -Wall +library c-h-internal + import: build-deps, extensions + 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 library + import: build-deps, extensions exposed-modules: Distribution.Helper other-modules: Paths_cabal_helper @@ -145,121 +136,25 @@ library 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.8 - , 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.4 && >= 5.2 - , SHA < 1.7 && >= 1.6.4.4 - , text < 1.3 && >= 1.0.0.0 - , template-haskell < 2.15 && >= 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 + import: build-deps, extensions 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.8 - , 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.4 && >= 5.2 - , SHA < 1.7 && >= 1.6.4.4 - , text < 1.3 && >= 1.0.0.0 - , template-haskell < 2.15 && >= 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 + import: build-deps, extensions type: exitcode-stdio-1.0 main-is: GhcSession.hs hs-source-dirs: tests ghc-options: -Wall - build-depends: base < 5 && >= 4.8 - , ghc < 8.7 && >= 7.10 + build-depends: ghc < 8.7 && >= 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.8 - , 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.4 && >= 5.2 - , SHA < 1.7 && >= 1.6.4.4 - , text < 1.3 && >= 1.0.0.0 - , template-haskell < 2.15 && >= 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 diff --git a/scripts/update-cabal-common-section-instantiations.awk b/scripts/update-cabal-common-section-instantiations.awk deleted file mode 100644 index 0bfacae..0000000 --- a/scripts/update-cabal-common-section-instantiations.awk +++ /dev/null @@ -1,34 +0,0 @@ -BEGIN { - delete sections; - section=""; - ignoring=0; -} - -/^[[:space:]]*$/ { - section=""; - ignoring=0; -} - -{ - if(section) { - tmp = sections[section]; - sections[section] = tmp (tmp ? RS : "") $0; - } -} - -/^[[:space:]]*-- *Common/ { - section = $3 -} - -/^[[:space:]]*-- *Instantiate *common/ { - ignoring=1 - - print $0; - print sections[$4]; -} - -{ - if(!ignoring) { - print $0; - } -} |