packages feed

lambdacube-compiler-0.5.0.0: 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.5.0.0
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
extra-source-files:  CHANGELOG.md

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,
    megaparsec >= 4.3.0 && <4.4,
    wl-pprint >=1.2 && <1.3,
    pretty-show >= 1.6.9,
    text >= 1.2 && <1.3,
    lambdacube-ir == 0.3.*,
    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,
    megaparsec >= 4.3.0 && <4.4,
    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.*,
    megaparsec >= 4.3.0 && <4.4,
    wl-pprint >=1.2 && <1.3,
    patience >= 0.1 && < 0.2,
    text >= 1.2 && <1.3,
    time >= 1.5 && <1.6,
    lambdacube-ir == 0.3.*,
    vector >= 0.11 && <0.12

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

executable lambdacube-compiler-performance-report
  hs-source-dirs:   test
  main-is:          PerfReport.hs
  default-language: Haskell2010

  -- CAUTION: When the build-depends change, please bump the git submodule in lambdacube-docker repository
  build-depends:
    base < 4.9,
    directory,
    filepath,
    containers >=0.5 && <0.6,
    optparse-applicative == 0.12.*


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 && <1,
    bytestring == 0.10.*,
    filepath == 1.4.*

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

executable lambdacube-backend-test-server
  hs-source-dirs:   backendtest
  main-is:          TestServer.hs
  default-language: Haskell2010
  other-modules:    EditorExamplesTest
                    TestData

  -- 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,
    text >= 1.2 && <1.3,
    lambdacube-compiler,
    lambdacube-ir == 0.3.*,
    pretty-show >= 1.6.9,
    optparse-applicative == 0.12.*,
    aeson >= 0.9 && <1,
    bytestring == 0.10.*,
    filepath == 1.4.*,
    directory,
    websockets >= 0.9.6.1,
    JuicyPixels >=3.2.7 && <3.3,
    vect >= 0.4.7,
    base64-bytestring >= 1.0.0.1,
    vector >= 0.11 && <0.12,
    process >= 1.2

  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.3.*,
    mtl >=2.2 && <2.3,
    monad-control >= 1.0 && <1.1,
    optparse-applicative == 0.12.*,
    megaparsec >= 4.3.0 && <4.4,
    wl-pprint >=1.2 && <1.3,
    pretty-show >= 1.6.9,
    patience >= 0.1 && < 0.2,
    text >= 1.2 && <1.3,
    time >= 1.5 && <1.6,
    vector >= 0.11 && <0.12