cabal-version:      >= 1.10
build-type:         Simple
name:               hoogle
version:            4.2.43
license:            BSD3
license-file:       docs/LICENSE
category:           Development
author:             Neil Mitchell <ndmitchell@gmail.com>
maintainer:         Neil Mitchell <ndmitchell@gmail.com>
copyright:          Neil Mitchell 2004-2015
synopsis:           Haskell API Search
description:
    Hoogle is a Haskell API search engine, which allows you to
    search many standard Haskell libraries by either function name,
    or by approximate type signature.
homepage:           http://www.haskell.org/hoogle/
bug-reports:        https://github.com/ndmitchell/hoogle/issues
tested-with:        GHC==7.10.1, GHC==7.8.4, GHC==7.6.3
extra-doc-files:
    README.md
    CHANGES.txt
extra-source-files:
    datadir/*.txt

data-dir: datadir
data-files:
    resources/*.css
    resources/*.gif
    resources/*.ico
    resources/*.js
    resources/*.png
    resources/*.html
    resources/search.xml

source-repository head
    type:     git
    location: https://github.com/ndmitchell/hoogle.git

library
    hs-source-dirs: src
    default-language: Haskell98

    build-depends:
        base > 4 && < 5,
        array, containers, directory, filepath, process, random,
        safe,
        binary,
        bytestring >= 0.9,
        conduit >= 0.2,
        resourcet,
        parsec >= 2.1,
        deepseq >= 1.1,
        text >= 0.11,
        transformers >= 0.2,
        uniplate >= 1.6,
        blaze-builder >= 0.2,
        case-insensitive >= 0.2,
        http-types >= 0.7,
        wai >= 1.1,
        vector >= 0.9,
        vector-algorithms >= 0.6,
        QuickCheck,
        haskell-src-exts >= 1.16 && < 1.18

    if !os(mingw32)
        build-depends: unix

    exposed-modules:
        Hoogle

    -- modules that I would conditionally expose, were it not for
    -- http://hackage.haskell.org/trac/hackage/ticket/776
    other-modules:
        Hoogle.DataBase.All
        Hoogle.Type.All
        Hoogle.Query.All
        Hoogle.Score.All
        Hoogle.Search.All
        Hoogle.Language.Haskell

    other-modules:
        General.Heap
        General.TypeMap
        General.Base
        General.System
        General.BurrowsWheeler
        General.FMIndex
        General.Util
        General.Web
        Hoogle.DataBase.Aliases
        Hoogle.DataBase.Instances
        Hoogle.DataBase.Items
        Hoogle.DataBase.Serialise
        Hoogle.DataBase.SubstrSearch
        Hoogle.DataBase.Suggest
        Hoogle.DataBase.Type
        Hoogle.DataBase.TypeSearch.Binding
        Hoogle.DataBase.TypeSearch.EntryInfo
        Hoogle.DataBase.TypeSearch.Graph
        Hoogle.DataBase.TypeSearch.Graphs
        Hoogle.DataBase.TypeSearch.Result
        Hoogle.DataBase.TypeSearch.TypeScore
        Hoogle.DataBase.TypeSearch.All
        Hoogle.DataBase2.Str
        Hoogle.DataBase2.Type
        Hoogle.Type.Docs
        Hoogle.Type.Item
        Hoogle.Type.Language
        Hoogle.Type.TagStr
        Hoogle.Type.TypeSig
        Hoogle.Type.ParseError
        Hoogle.Type.Result
        Hoogle.Query.Parser
        Hoogle.Query.Render
        Hoogle.Query.Suggest
        Hoogle.Query.Type
        Hoogle.Score.Scoring
        Hoogle.Score.Type
        Hoogle.Search.Results
        Hoogle.Store.All
        Hoogle.Store.ReadBuffer
        Hoogle.Store.Type
        Hoogle.Store.WriteBuffer
        Paths_hoogle

executable hoogle
    main-is:            Main.hs
    hs-source-dirs:     src
    default-language: Haskell98

    build-depends:
        base > 4 && < 5,
        bytestring, filepath, directory, process, random,
        array, containers, time, old-locale,
        safe,
        binary,
        aeson >= 0.6.1,
        cmdargs >= 0.7,
        deepseq >= 1.1,
        tagsoup >= 0.11,
        blaze-builder >= 0.2,
        http-types >= 0.7,
        case-insensitive >= 0.2,
        text >= 0.11,
        vector >= 0.9,
        vector-algorithms >= 0.6,
        transformers >= 0.2,
        uniplate >= 1.6,
        conduit >= 0.2,
        resourcet,
        parsec >= 2.1,
        wai >= 1.1,
        warp >= 2.1,
        Cabal >= 1.8,
        shake >= 0.14,
        QuickCheck,
        haskell-src-exts >= 1.16 && < 1.18

    if !os(mingw32)
        build-depends: unix

    other-modules:
        CmdLine.All
        CmdLine.Load
        CmdLine.Type
        Console.All
        Console.Log
        Console.Rank
        Console.Search
        Console.Test
        Paths_hoogle
        Recipe.All
        Recipe.Cabal
        Recipe.Command
        Recipe.Hackage
        Recipe.Haddock
        Recipe.Keyword
        Test.All
        Test.BWT_FM
        Test.Docs
        Test.General
        Test.Parse_Query
        Test.Parse_TypeSig
        Web.All
        Web.Page
        Web.Response
        Web.Server
        Web.Template

test-suite hoogle-test
    main-is: Test.hs
    hs-source-dirs: src
    default-language: Haskell98

    type: exitcode-stdio-1.0
    build-depends: base >= 3, process, directory, filepath, temporary >= 1.1
