cabal-version:   2.4
name:            pandoc-cli
version:         0.1
build-type:      Simple
license:         GPL-2.0-or-later
license-file:    COPYING.md
copyright:       (c) 2006-2022 John MacFarlane
author:          John MacFarlane <jgm@berkeley.edu>
maintainer:      John MacFarlane <jgm@berkeley.edu>
bug-reports:     https://github.com/jgm/pandoc/issues
stability:       alpha
homepage:        https://pandoc.org
category:        Text
tested-with:     GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2,
                 GHC == 9.2.5, GHC == 9.4.4
synopsis:        Conversion between documentation formats
description:     Pandoc-cli provides a command-line executable that uses the
                 pandoc library to convert between markup formats.
-- data-files:
-- extra-source-files:
source-repository head
  type:          git
  location:      git://github.com/jgm/pandoc.git

flag lua
  description:   Support custom modifications and conversions with the
                 pandoc Lua scripting engine.
  default:       True

flag server
  Description:   Include support for running pandoc as an HTTP server.
  Default:       True

flag nightly
  Description:   Add '-nightly-COMPILEDATE' to the output of '--version'.
  Default:       False

common common-options
  default-language: Haskell2010
  other-extensions: OverloadedStrings
  build-depends:    base         >= 4.12 && < 5
  ghc-options:      -Wall -fno-warn-unused-do-bind
                    -Wincomplete-record-updates
                    -Wnoncanonical-monad-instances
                    -Wcpp-undef
                    -Wincomplete-uni-patterns
                    -Widentities
                    -Wpartial-fields
                    -Wmissing-signatures
                    -fhide-source-paths

  if impl(ghc >= 8.10)
    ghc-options:    -Wunused-packages

  if impl(ghc >= 9.0)
    ghc-options:    -Winvalid-haddock

  if os(windows)
    cpp-options:      -D_WINDOWS

common common-executable
  import:           common-options
  ghc-options:      -rtsopts -with-rtsopts=-A8m -threaded

executable pandoc
  import:          common-executable
  hs-source-dirs:  src
  main-is:         pandoc.hs
  buildable:       True
  build-depends:   pandoc >= 3.0,
                   text
  other-modules:   PandocCLI.Lua
                 , PandocCLI.Server
  if flag(nightly)
    cpp-options:    -DNIGHTLY
    build-depends:  template-haskell,
                    time
  if flag(server)
    build-depends:   pandoc-server >= 0.1 && < 0.2,
                     wai-extra >= 3.0.24,
                     warp,
                     safe
    hs-source-dirs:  server
  else
    hs-source-dirs:  no-server

  if flag(lua)
    build-depends:   hslua-cli         >= 1.2 && < 1.3,
                     pandoc-lua-engine >= 0.1 && < 0.2
    hs-source-dirs:  lua
  else
    hs-source-dirs:  no-lua
