name:                eidolon
version:             0.0.7
synopsis:            Image gallery in Yesod
homepage:            https://eidolon.nek0.eu
license:             AGPL-3
license-file:        LICENSE.md
author:              Amedeo Molnár
maintainer:          nek0@chelnok.de
category:            Web
extra-source-files:  README.md
cabal-version:       >= 1.10
build-type:          Simple

Flag dev
    Description:   Turn on development settings, like auto-reload templates.
    Default:       False

Flag library-only
    Description:   Build for use with "yesod devel"
    Default:       False

library
    exposed-modules: Application
                     Foundation
                     Helper
                     Import
                     Model
                     Settings
                     Settings.StaticFiles
                     Settings.Development
                     Handler.Home
                     Handler.Signup
                     Handler.Login
                     Handler.Activate
                     Handler.Profile
                     Handler.Upload
                     Handler.NewAlbum
                     Handler.Album
                     Handler.Medium
                     Handler.AlbumSettings
                     Handler.MediumSettings
                     Handler.Reactivate
                     Handler.ProfileSettings
                     Handler.ProfileDelete
                     Handler.Admin
                     Handler.AdminProfileSettings
                     Handler.AdminAlbumSettings
                     Handler.AdminMediumSettings
                     Handler.AdminComments
                     Handler.Tag
                     Handler.RootFeed
                     Handler.Commons
                     Handler.Search

    if flag(dev) || flag(library-only)
        cpp-options:   -DDEVELOPMENT
        ghc-options:   -Wall -O0
    else
        ghc-options:   -Wall -O2

    default-language: Haskell2010
    default-extensions: TemplateHaskell
                QuasiQuotes
                OverloadedStrings
                NoImplicitPrelude
                CPP
                MultiParamTypeClasses
                TypeFamilies
                GADTs
                GeneralizedNewtypeDeriving
                FlexibleContexts
                EmptyDataDecls
                NoMonomorphismRestriction
                DeriveDataTypeable
                RecordWildCards
                ViewPatterns

    build-depends: base                          >= 4.8
                 , yesod                         >= 1.4
                 , yesod-core                    >= 1.2.12
                 , yesod-static                  >= 1.5
                 , bytestring                    >= 0.10
                 , text                          >= 1.2
                 , persistent                    >= 2.2
                 , persistent-postgresql         >= 2.2
                 , template-haskell
                 , shakespeare                   >= 2.0
                 , hjsmin                        >= 0.1
                 , wai-extra                     >= 3.0
                 , yaml                          >= 0.8
                 , http-conduit                  >= 2.1
                 , directory                     >= 1.2
                 , warp                          >= 3.1 && < 3.2
                 , data-default                  >= 0.5
                 , aeson                         >= 0.6
                 , monad-logger                  >= 0.3
                 , fast-logger                   >= 2.4
                 -- transition to persisten 2.0
                 , classy-prelude-yesod          >= 0.12
                 , file-embed
                 -- custom dependencies
                 , random                        >= 1.1
                 , mime-mail                     >= 0.4
                 , blaze-html                    >= 0.8
                 , filepath
                 , system-filepath               >= 0.4
                 , time                          >= 1.5
                 , transformers                  >= 0.4
                 , cereal                        >= 0.4
                 , cryptohash-cryptoapi          >= 0.1
                 , crypto-api                    >= 0.13
                 -- , imagemagick
                 , yesod-markdown                >= 0.10
                 , blaze-markup                  >= 0.7
                 , wai                           >= 3.0
                 , yesod-newsfeed                >= 1.6
                 , unix                          >= 2.7
                 , bloodhound                    >= 0.11.1
                 , http-types
                 , image-type
                 , JuicyPixels                   >= 3.2.7
                 , JuicyPixels-scale-dct
                 , classy-prelude-yesod          >= 1.0
                 -- for Migrations
                 , HDBC
                 , HDBC-postgresql
                 , text
                 , filepath
                 , system-filepath
                 , bytestring
                 , http-client
                 , yesod-form                    >= 1.4.7

executable         eidolon
    if flag(library-only)
        Buildable: False

    main-is:           main.hs
    hs-source-dirs:    app
    build-depends:     base
                     , eidolon
                     , yesod

    ghc-options:       -threaded -O2

test-suite test
    type:              exitcode-stdio-1.0
    main-is:           main.hs
    hs-source-dirs:    tests
    ghc-options:       -Wall

    build-depends: base
                 , eidolon
                 , yesod-test >= 1.2
                 , yesod-core
                 , yesod
                 , persistent
                 , persistent-sqlite
                 , resourcet
                 , monad-logger
                 , transformers
                 , hspec
