packages feed

lambdacube-compiler-0.4.0.1: lambdacube-compiler.cabal

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

name:                lambdacube-compiler
version:             0.4.0.1
homepage:            http://lambdacube3d.com
synopsis:            LambdaCube 3D is a DSL to program GPUs
description:         LambdaCube 3D is a domain specific language and library that makes it
                     possible to program GPUs in a purely functional style.
license:             BSD3
license-file:        LICENSE
author:              Csaba Hruska, Péter Diviánszky, Dániel Pék, Andor Pénzes
maintainer:          csaba.hruska@gmail.com
category:            Graphics, Compiler
build-type:          Simple
cabal-version:       >=1.10

Data-Files:
  lc/Builtins.lc
  lc/Internals.lc
  lc/Prelude.lc

Flag onlytestsuite
  Description: Only compiles the library and testsuit
  Default: False

Flag profiling
  Description: Enable profiling
  Default: False

Flag coverage
  Description: Enable coverage reporting
  Default: False

source-repository head
  type:     git
  location: https://github.com/lambdacube3d/lambdacube-compiler

library
  other-modules:
    Paths_lambdacube_compiler
  exposed-modules:
    -- Compiler
    LambdaCube.Compiler
    LambdaCube.Compiler.Pretty
    LambdaCube.Compiler.Lexer
    LambdaCube.Compiler.Parser
    LambdaCube.Compiler.Infer
    LambdaCube.Compiler.CoreToIR
  other-extensions:
    LambdaCase
    PatternSynonyms
    ViewPatterns
    TypeSynonymInstances
    FlexibleInstances
    NoMonomorphismRestriction
    TypeFamilies
    RecordWildCards
    DeriveFunctor
    DeriveFoldable
    DeriveTraversable
    GeneralizedNewtypeDeriving
    OverloadedStrings
    TupleSections
    MonadComprehensions
    ExistentialQuantification
    ScopedTypeVariables
    ParallelListComp

  -- CAUTION: When the build-depends change, please bump the git submodule in lambdacube-docker repository
  build-depends:
    aeson >= 0.9 && <1,
    base >=4.7 && <4.9,
    containers >=0.5 && <0.6,
    deepseq,
    directory,
    exceptions >= 0.8 && <0.9,
    filepath,
    mtl >=2.2 && <2.3,
    parsec >= 3.1.9 && <3.2,
--    megaparsec >= 4.3.0 && <4.4,
    indentation >= 0.2 && <0.3,
    pretty-compact >=1.0 && <1.1,
    text >= 1.2 && <1.3,
    lambdacube-ir == 0.2.*,
    vector >= 0.11 && <0.12

  hs-source-dirs:      src
  default-language:    Haskell2010

  if flag(profiling)
    GHC-Options: -fprof-auto -rtsopts


executable lambdacube-compiler-unit-tests
  hs-source-dirs:   test
  main-is:          UnitTests.hs
  default-language: Haskell2010

  -- CAUTION: When the build-depends change, please bump the git submodule in lambdacube-docker repository
  build-depends:
    base < 4.9,
    containers >=0.5 && <0.6,
    lambdacube-compiler,
    parsec >= 3.1.9 && <3.2,
    QuickCheck >= 2.8.2 && <2.9,
    tasty >= 0.11 && <0.12,
    tasty-quickcheck >=0.8 && <0.9

  if flag(onlytestsuite)
    Buildable: False
  else
    Buildable: True

executable lambdacube-compiler-test-suite
  hs-source-dirs:   test
  main-is:          runTests.hs
  default-language: Haskell2010

  -- CAUTION: When the build-depends change, please bump the git submodule in lambdacube-docker repository
  build-depends:
    aeson >= 0.9 && <1,
    async >= 2.0 && <2.2,
    base < 4.9,
    containers >=0.5 && <0.6,
    deepseq,
    directory,
    exceptions >= 0.8 && <0.9,
    filepath,
    lambdacube-compiler,
    mtl >=2.2 && <2.3,
    monad-control >= 1.0 && <1.1,
    optparse-applicative == 0.12.*,
    parsec >= 3.1.9 && <3.2,
    indentation >= 0.2 && <0.3,
    pretty-compact >=1.0 && <1.1,
    text >= 1.2 && <1.3,
    time >= 1.5 && <1.6,
    lambdacube-ir == 0.2.*,
    vector >= 0.11 && <0.12

  if flag(profiling)
    GHC-Options: -fprof-auto -rtsopts


executable lc
  hs-source-dirs:   tool
  main-is:          Compiler.hs
  default-language: Haskell2010

  -- CAUTION: When the build-depends change, please bump the git submodule in lambdacube-docker repository
  build-depends:
    base < 4.9,
    lambdacube-compiler,
    optparse-applicative == 0.12.*,
    aeson >= 0.9 && < 0.11,
    bytestring == 0.10.*,
    filepath == 1.4.*

  if flag(onlytestsuite)
    Buildable: False
  else
    Buildable: True


executable lambdacube-compiler-coverage-test-suite
  hs-source-dirs:   src, test
  main-is:          runTests.hs
  default-language: Haskell2010

  if flag(coverage)
    Buildable: True
  else
    Buildable: False

  if flag(profiling)
    GHC-Options: -fhpc -hpcdir dist/hpc/lambdacube-compiler -fprof-auto -rtsopts
  else
    GHC-Options: -fhpc -hpcdir dist/hpc/lambdacube-compiler

  -- CAUTION: When the build-depends change, please bump the git submodule in lambdacube-docker repository
  build-depends:
    aeson >= 0.9 && <1,
    async >= 2.0 && <2.2,
    base < 4.9,
    containers >=0.5 && <0.6,
    deepseq,
    directory,
    exceptions >= 0.8 && <0.9,
    filepath,
    lambdacube-ir == 0.2.*,
    mtl >=2.2 && <2.3,
    monad-control >= 1.0 && <1.1,
    optparse-applicative == 0.12.*,
    parsec >= 3.1.9 && <3.2,
    indentation >= 0.2 && <0.3,
    pretty-compact >=1.0 && <1.1,
    text >= 1.2 && <1.3,
    time >= 1.5 && <1.6,
    vector >= 0.11 && <0.12