-- Initial haskelzinc.cabal generated by cabal init.  For further 
-- documentation, see http://haskell.org/cabal/users-guide/

-- The name of the package.
name:                haskelzinc

-- The package version.  See the Haskell package versioning policy (PVP) 
-- for standards guiding when and how versions should be incremented.
-- https://wiki.haskell.org/Package_versioning_policy
-- PVP summary:      +-+------- breaking API changes
--                   | | +----- non-breaking API additions
--                   | | | +--- code changes with no API change
version:             0.3.1.0

-- A short (one-line) description of the package.
synopsis:         CP in Haskell through MiniZinc 

-- A longer description of the package.
description:      
    This package was created in the context of the <https://www.graceful-project.eu GRACeFUL project>.
    .
    The haskelzinc library defines an interface to the MiniZinc 2.1 constraint proramming
    language. It provides a Haskell abstract syntax tree for the MiniZinc language, with 
    which one can represent MiniZinc models in Haskell, a pretty printer to print the 
    representation of a MiniZinc model in MiniZinc, a parser that returns a 
    representation of the solutions obtained by running the MiniZinc model, a set of 
    functions useful for building a custom FlatZinc solutions parser and a set of functions for 
    constructing a model with time and space constraints, including cost related constraints.
    .
    An additional module gives the possibility to directly get the solutions of a 
    MiniZinc finite domain model. Option for interactive interface is provided, as well 
    as choice between two solvers: the G12/FD built-in solver of FlatZinc and choco3.

-- The license under which the package is released.
license:             BSD3

-- The file containing the license text.
license-file:        LICENSE

-- The package author(s).
author:              Klara Marntirosian,
                     Gert-Jan Bottu,
                     Ruben Pieters

-- An email address to which users can send suggestions, bug reports, and 
-- patches.
maintainer:          klara.mar@cs.kuleuven.be,
                     gertjan.bottu@kuleuven.be,
                     ruben.pieters@cs.kuleuven.be

stability:           experimental

-- A copyright notice.
-- copyright:           

category:            Interfaces

build-type:          Simple

-- Extra files to be distributed with the package, such as examples or a 
-- README.
extra-source-files:  GExamples.hs,
                     ASExamples.hs
                     

-- Constraint on the version of Cabal needed to build this package.
cabal-version:       >=1.18

data-dir:            HZconf
data-files:          conf.txt

extra-doc-files:     README.md,
                     changelog,
                     haskelzinc_User_Guide.pdf


library
  -- Modules exported by the library.
  exposed-modules:  Interfaces.MZinHaskell,
                    Interfaces.MZASTBase,
                    Interfaces.MZBuiltIns,
                    Interfaces.MZAST,
                    Interfaces.MZPrinter,
                    Interfaces.FZSolutionParser
                    TimeSpaceConstr.ActionSequences
                    TimeSpaceConstr.TimeSpaceConstr
  
  -- Modules included in this library but not exported.
  other-modules: Interfaces.MZAuxiliary
                 TimeSpaceConstr.DFA
                 TimeSpaceConstr.NFA
  
  -- LANGUAGE extensions used by modules in this package.
  other-extensions:    FlexibleInstances,
                       GADTs,
                       DataKinds,
                       KindSignatures
                       OverloadedStrings
  
  -- Other library packages from which modules are imported.
  build-depends:       base >=4.8 && <5,
                       pretty >=1.1.3,
                       process>=1.4,
                       filepath >=1.4.1,
                       parsec >=3.1.6,
                       containers >=0.5.6,
                       directory
  
  -- Directories containing source files.
  hs-source-dirs:      src
  
  -- Base language which the package is written in.
  default-language:    Haskell2010

source-repository head
  type:     git
  location: https://github.com/GRACeFUL-project/haskelzinc.git