-- Cabal file for the Conjure program generation library.
--
-- Copyright (C) 2021-2025 Rudy Matela
-- Distributed under the 3-Clause BSD licence (see the file LICENSE).
name:                code-conjure
version:             0.7.8
synopsis:            synthesize Haskell functions out of partial definitions
description:
  Conjure is a tool that synthesizes Haskell functions out of partial definitions.

homepage:            https://github.com/rudymatela/conjure#readme
license:             BSD3
license-file:        LICENSE
author:              Rudy Matela
maintainer:          Rudy Matela <rudy@matela.com.br>
category:            Haskell
build-type:          Simple
cabal-version:       1.18

extra-doc-files: README.md
               , TODO.md
               , changelog.md
               , doc/conjure.svg
extra-source-files: .gitignore
                  , .github/workflows/build.yml
                  , Makefile
                  , bench/bench
                  , bench/*.hs
                  , bench/*.txt
                  , eg/*.hs
                  , eg/*.txt
                  , eg/colin/*.hs
                  , eg/colin/*.txt
                  , proto/*.hs
                  , proto/*.txt
                  , mk/All.hs
                  , mk/Toplibs.hs
                  , mk/depend.mk
                  , mk/ghcdeps
                  , mk/haddock-i
                  , mk/haskell.mk
                  , mk/install-on
                  , stack.yaml
                  , bench/runtime/zero/bench/*.runtime
                  , bench/runtime/zero/eg/*.runtime
                  , bench/runtime/zero/proto/*.runtime
                  , bench/runtime/zero/versions
                  , bench/runtime/lapmatrud/bench/*.runtime
                  , bench/runtime/lapmatrud/eg/*.runtime
                  , bench/runtime/lapmatrud/proto/*.runtime
                  , bench/runtime/lapmatrud/versions
                  , bench/versions
                  , bench/time
                  , test/mk
                  , test/sdist
tested-with: GHC==9.12
           , GHC==9.10
           , GHC==9.8
           , GHC==9.6
           , GHC==9.4
           , GHC==9.0
           , GHC==8.8

source-repository head
  type:            git
  location:        https://github.com/rudymatela/conjure

source-repository this
  type:            git
  location:        https://github.com/rudymatela/conjure
  tag:             v0.7.8

library
  exposed-modules: Conjure
                 , Conjure.Conjurable
                 , Conjure.Conjurable.Derive
                 , Conjure.Engine
                 , Conjure.Expr
                 , Conjure.Ingredient
                 , Conjure.Utils
                 , Conjure.Defn
                 , Conjure.Defn.Redundancy
                 , Conjure.Defn.Test
                 , Conjure.Red
                 , Conjure.Reason
                 , Conjure.Settings
  other-extensions: TemplateHaskell, CPP
  build-depends: base >= 4 && < 5
               , leancheck >= 1.0.0
               , template-haskell
               , speculate >= 0.4.20
               , express >= 1.0.16
  hs-source-dirs:      src
  default-language:    Haskell2010

test-suite expr
  type:                exitcode-stdio-1.0
  main-is:             expr.hs
  other-modules:       Test, Test.ListableExpr
  hs-source-dirs:      test
  build-depends:       base >= 4 && < 5, leancheck, express, speculate, code-conjure
  default-language:    Haskell2010

test-suite defn
  type:                exitcode-stdio-1.0
  main-is:             defn.hs
  other-modules:       Test, Test.ListableExpr
  hs-source-dirs:      test
  build-depends:       base >= 4 && < 5, leancheck, express, speculate, code-conjure
  default-language:    Haskell2010

test-suite conjurable
  type:                exitcode-stdio-1.0
  main-is:             conjurable.hs
  other-modules:       Test, Test.ListableExpr
  hs-source-dirs:      test
  build-depends:       base >= 4 && < 5, leancheck, express, speculate, code-conjure
  default-language:    Haskell2010

test-suite utils
  type:                exitcode-stdio-1.0
  main-is:             utils.hs
  other-modules:       Test, Test.ListableExpr
  hs-source-dirs:      test
  build-depends:       base >= 4 && < 5, leancheck, express, speculate, code-conjure
  default-language:    Haskell2010

test-suite derive
  type:                exitcode-stdio-1.0
  main-is:             derive.hs
  other-modules:       Test, Test.ListableExpr
  hs-source-dirs:      test
  build-depends:       base >= 4 && < 5, leancheck, express, speculate, code-conjure
  default-language:    Haskell2010

test-suite red
  type:                exitcode-stdio-1.0
  main-is:             red.hs
  other-modules:       Test, Test.ListableExpr
  hs-source-dirs:      test
  build-depends:       base >= 4 && < 5, leancheck, express, speculate, code-conjure
  default-language:    Haskell2010

test-suite factorial
  type:                exitcode-stdio-1.0
  main-is:             factorial.hs
  other-modules:       Test, Test.ListableExpr
  hs-source-dirs:      test
  build-depends:       base >= 4 && < 5, leancheck, express, speculate, code-conjure
  default-language:    Haskell2010
