name: network-uri-flag version: 0.1 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 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.7 && < 2.8, > 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