File network-uri-flag.cabal of Package ghc-network-uri-flag
name: network-uri-flag
version: 0.1
x-revision: 2
synopsis: Pseudo-package encapsulating flag(network-uri) Cabal boilerplate
license: BSD3
license-file: LICENSE
author: Herbert Valerio Riedel
maintainer: hvr@gnu.org
category: Network
build-type: Simple
extra-source-files: ChangeLog.md
cabal-version: >=1.10
description:
This empty package does not provide any modules; its sole purpose is to
provide the @network-uri@ Cabal flag logic below so you don't have to include
that boilerplate in your @.cabal@ file.
.
> flag network-uri
> description: Get Network.URI from the network-uri package
> default: True
>
> library
> if flag(network-uri)
> build-depends: network-uri >= 2.6, network >= 2.6
> else
> build-depends: network-uri < 2.6, network < 2.6
.
This avoids combining
@network-uri >= 2.6@ with @network < 2.6@ which both export a
name-clashing @Network.URI@ module, because
in network-2.6 the @Network.URI@ module was split off from the
network package into network-uri-2.6.
.
In other words, the logic above makes sure that the @Network.URI@ module
is provided by either @network-uri@ or by @network@
(in the <https://en.wikipedia.org/wiki/Exclusive_or XOR> sense).
.
In order to benefit from this module, simply include it in your
@build-depends@ declaration alongside @network@ and @network-uri@.
.
> build-depends:
> network >= 2.5 && < 2.7,
> network-uri >= 2.5 && < 2.7,
> network-uri-flag == 0.1.*
.
/NOTE: It's almost always an error to list this package if network and network-uri aren't both listed as well!/
flag network-uri
description: Get Network.URI from the network-uri package
default: True
library
default-language: Haskell2010
if flag(network-uri)
build-depends: network-uri >= 2.6, network >= 2.6
else
build-depends: network-uri < 2.6, network < 2.6