-- The name of the package.
name:                quipper-algorithms

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

-- A short (one-line) description of the package.
synopsis:            A set of algorithms implemented in Quipper.

-- A longer description of the package.
description:         

 This package provides seven algorithms that have been implemented in
 Quipper. They are:

  BF - Boolean formula algorithm,
  BWT - Binary welded tree algorithm,
  CL - Class number algorithm,
  GSE - Ground state estimation algorithm,
  QLS - Quantum linear systems algorithm,
  TF - Triangle finding algorithm,
  USV - Unique shortest vector algorithm.
                     
-- URL for the project homepage or repository.
homepage:            http://www.mathstat.dal.ca/~selinger/quipper/

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

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

-- The package author(s).
author:              Alexander S. Green, Keith Kim, Peter LeFanu Lumsdaine,
                     Siun-Chuon Mau, Neil J. Ross, Artur Scherer,
                     Peter Selinger, BenoƮt Valiron, Alexandr Virodov

-- An email address to which users can send suggestions, bug reports, and 
-- patches.
maintainer:          selinger@mathstat.dal.ca

-- A copyright notice.
copyright:           Copyright (c) 2011-2019. All rights reserved.

-- A classification category for future use by the package catalogue
-- Hackage. These categories have not yet been specified, but the
-- upper levels of the module hierarchy make a good start.
category:            Quipper

-- The type of build used by this package.
build-type:          Custom

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

-- A list of additional files to be included in source distributions
-- built with setup sdist.
extra-source-files:  images/*.png ChangeLog README

executable bf
           main-is: bf.hs
           hs-source-dirs: programs
           build-depends:
                         base >= 4.5 && < 5,
                         quipper-algorithms

executable bwt
           main-is: bwt.hs
           hs-source-dirs: programs
           build-depends:
                         base >= 4.5 && < 5,
                         quipper-algorithms
                         
executable cl
           main-is: cl.hs
           hs-source-dirs: programs
           build-depends:
                         base >= 4.5 && < 5,
                         quipper-algorithms
                         
executable gse
           main-is: gse.hs
           hs-source-dirs: programs
           build-depends:
                         base >= 4.5 && < 5,
                         quipper-algorithms
                         
executable qls
           main-is: qls.hs
           hs-source-dirs: programs
           build-depends:
                         base >= 4.5 && < 5,
                         quipper-algorithms
                         
executable tf
           main-is: tf.hs
           hs-source-dirs: programs
           build-depends:
                         base >= 4.5 && < 5,
                         quipper-algorithms
                         
executable usv
           main-is: usv.hs
           hs-source-dirs: programs
           build-depends:
                         base >= 4.5 && < 5,
                         quipper-algorithms
                         

library
  -- Modules included in this executable, other than Main.
  exposed-modules:
                  Quipper.Algorithms.BF.BooleanFormula
                  Quipper.Algorithms.BF.HexBoard
                  Quipper.Algorithms.BF.Hex
                  Quipper.Algorithms.BF.Main
                  Quipper.Algorithms.BF.Testing

                  Quipper.Algorithms.BWT.Alternative
                  Quipper.Algorithms.BWT.BWT
                  Quipper.Algorithms.BWT.Definitions
                  Quipper.Algorithms.BWT.Main
                  Quipper.Algorithms.BWT.Simulate
                  Quipper.Algorithms.BWT.Template

                  Quipper.Algorithms.CL.Auxiliary
                  Quipper.Algorithms.CL.CL
                  Quipper.Algorithms.CL.Main
                  Quipper.Algorithms.CL.RegulatorClassical
                  Quipper.Algorithms.CL.RegulatorQuantum
                  Quipper.Algorithms.CL.RegulatorTemplate
                  Quipper.Algorithms.CL.SmithReduction
                  Quipper.Algorithms.CL.Test
                  Quipper.Algorithms.CL.Types

                  Quipper.Algorithms.GSE.GSEData
                  Quipper.Algorithms.GSE.GSE
                  Quipper.Algorithms.GSE.JordanWigner
                  Quipper.Algorithms.GSE.Main

                  Quipper.Algorithms.QLS.CircLiftingImport
                  Quipper.Algorithms.QLS.Main
                  Quipper.Algorithms.QLS.QDouble
                  Quipper.Algorithms.QLS.QLS
                  Quipper.Algorithms.QLS.QSignedIntAux
                  Quipper.Algorithms.QLS.QSignedInt
                  Quipper.Algorithms.QLS.RealFunc
                  Quipper.Algorithms.QLS.TemplateOracle
                  Quipper.Algorithms.QLS.Utils

                  Quipper.Algorithms.TF.Alternatives
                  Quipper.Algorithms.TF.Definitions
                  Quipper.Algorithms.TF.Main
                  Quipper.Algorithms.TF.Oracle
                  Quipper.Algorithms.TF.QWTFP
                  Quipper.Algorithms.TF.Simulate

                  Quipper.Algorithms.USV.Definitions
                  Quipper.Algorithms.USV.Main
                  Quipper.Algorithms.USV.Simulate
                  Quipper.Algorithms.USV.USV
                       
  -- Other library packages from which modules are imported.
  build-depends: base >= 4.5 && < 5,
                 array >= 0.5,
                 containers >= 0.5.2.1,
                 mtl >= 2.1.2,
                 random >= 1.0.1.1,
                 newsynth >= 0.3.0.1,
                 easyrender >= 0.1.0.0,
                 Lattices >= 0.0.1,
                 deepseq >= 1.4,
                 primes >= 0.2.1.0,
                 QuickCheck >= 2.6,
                 filepath >= 1.4,
                 quipper-utils >= 0.9.0.0,
                 quipper-language >= 0.9.0.0,
                 quipper-libraries >= 0.9.0.0

custom-setup
  setup-depends:  base >= 4.5,
                  superdoc >= 0.1,
                  Cabal >= 1.24,
                  quipper-cabal >= 0.9.0.0