aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHerbert Valerio Riedel <hvr@gnu.org>2017-07-20 10:02:06 +0200
committerHerbert Valerio Riedel <hvr@gnu.org>2017-07-20 10:05:14 +0200
commit3bf3d4c95c3b32ff350e127ee087c85d5bbb24c6 (patch)
tree7f9f4f315605b83728005fe8fb02524b2abd18fc
parent49f6fad5acd4d94b36e490ee333b521510311429 (diff)
Refactor .cabal to use sub-lib for vendored lib
A practical benefit is that we can control the build-depends and also avoid some recompilation between library and test-suite.
-rw-r--r--haddock-library/haddock-library.cabal63
1 files changed, 42 insertions, 21 deletions
diff --git a/haddock-library/haddock-library.cabal b/haddock-library/haddock-library.cabal
index c5ad4569..004011aa 100644
--- a/haddock-library/haddock-library.cabal
+++ b/haddock-library/haddock-library.cabal
@@ -24,9 +24,11 @@ library
base >= 4.5 && < 4.11
, bytestring >= 0.9.2.1 && < 0.11
, transformers >= 0.3.0 && < 0.6
- , deepseq >= 1.3 && < 1.5
- hs-source-dirs: src, vendor/attoparsec-0.13.1.0
+ -- internal sub-lib
+ build-depends: attoparsec
+
+ hs-source-dirs: src
ghc-options: -funbox-strict-fields -Wall -fwarn-tabs -O2
exposed-modules:
@@ -37,10 +39,31 @@ library
Documentation.Haddock.Utf8
other-modules:
- Data.Attoparsec
+ Documentation.Haddock.Parser.Util
+
+ ghc-options: -Wall
+ if impl(ghc >= 8.0)
+ ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
+
+library attoparsec
+ default-language: Haskell2010
+
+ build-depends:
+ base >= 4.5 && < 4.11
+ , bytestring >= 0.9.2.1 && < 0.11
+ , deepseq >= 1.3 && < 1.5
+
+ hs-source-dirs: vendor/attoparsec-0.13.1.0
+
+ -- NB: haddock-library needs only small part of lib:attoparsec
+ -- internally, so we only bundle that subset here
+ exposed-modules:
Data.Attoparsec.ByteString
- Data.Attoparsec.ByteString.Buffer
Data.Attoparsec.ByteString.Char8
+
+ other-modules:
+ Data.Attoparsec
+ Data.Attoparsec.ByteString.Buffer
Data.Attoparsec.ByteString.FastSet
Data.Attoparsec.ByteString.Internal
Data.Attoparsec.Combinator
@@ -48,7 +71,8 @@ library
Data.Attoparsec.Internal.Fhthagn
Data.Attoparsec.Internal.Types
Data.Attoparsec.Number
- Documentation.Haddock.Parser.Util
+
+ ghc-options: -funbox-strict-fields -Wall -fwarn-tabs -O2
ghc-options: -Wall
if impl(ghc >= 8.0)
@@ -56,6 +80,7 @@ library
else
build-depends: semigroups ^>= 0.18.3, fail ^>= 4.9.0.0
+
test-suite spec
type: exitcode-stdio-1.0
default-language: Haskell2010
@@ -63,22 +88,12 @@ test-suite spec
hs-source-dirs:
test
, src
- , vendor/attoparsec-0.13.1.0
ghc-options: -Wall
cpp-options:
-DTEST
other-modules:
- Data.Attoparsec.ByteString
- Data.Attoparsec.ByteString.Buffer
- Data.Attoparsec.ByteString.Char8
- Data.Attoparsec.ByteString.FastSet
- Data.Attoparsec.ByteString.Internal
- Data.Attoparsec.Combinator
- Data.Attoparsec.Internal
- Data.Attoparsec.Internal.Fhthagn
- Data.Attoparsec.Internal.Types
Documentation.Haddock.Doc
Documentation.Haddock.Parser
Documentation.Haddock.Parser.Monad
@@ -90,17 +105,23 @@ test-suite spec
Documentation.Haddock.Utf8Spec
build-depends:
+ base-compat ^>= 0.9.3
+ , transformers >= 0.3.0 && < 0.6
+ , hspec ^>= 2.4.4
+ , QuickCheck ^>= 2.10
+
+ -- internal sub-lib
+ build-depends: attoparsec
+
+ -- Versions for the dependencies below are transitively pinned by
+ -- dependency on haddock-library:lib:attoparsec
+ build-depends:
base
, bytestring
- , transformers
, deepseq
- , base-compat
- , hspec
- , QuickCheck == 2.*
-
build-tool-depends:
- hspec-discover:hspec-discover
+ hspec-discover:hspec-discover ^>= 2.4.4
source-repository head
type: git