packages feed

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

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

-- flags explanation (Y-Yes,N-No,X-no effect)
--    executables/flags:                        | default, cli,   testsuite,  coverage, alltest,  profiling
--      lc                                        Y        Y      X           X         X         X
--      lambdacube-compiler-unit-tests            N        X      X           X         Y         X
--      lambdacube-compiler-test-suite            N        X      Y           X         Y         X
--      lambdacube-compiler-performance-report    N        X      X           X         Y         X
--      lambdacube-backend-test-server            N        X      X           X         Y         X
--      lambdacube-compiler-coverage-test-suite   N        X      X           Y         X         X

Flag cli
  Description: Compiles 'lc' command line tool
  Default: True

Flag profiling
  Description: Enable profiling
  Default: False

Flag alltest
  Description: Additionally compiles the testsuite, unit tests, backend test server, performance report (useful for development)
  Default: False

Flag testsuite
  Description: Compiles the library and testsuite
  Default: False

Flag coverage
  Description: Enable coverage reporting
  Default: False

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

library
  exposed-modules:
    LambdaCube.Compiler.Utils
    LambdaCube.Compiler.DeBruijn
    LambdaCube.Compiler.Pretty
    LambdaCube.Compiler.DesugaredSource
    LambdaCube.Compiler.Patterns
    LambdaCube.Compiler.Statements
    LambdaCube.Compiler.Lexer
    LambdaCube.Compiler.Parser
    LambdaCube.Compiler.Core
    LambdaCube.Compiler.InferMonad
    LambdaCube.Compiler.Infer
    LambdaCube.Compiler.CoreToIR
    LambdaCube.Compiler
  other-modules:
    Paths_lambdacube_compiler
  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 && <0.12,
    base >=4.7 && <4.10,
    semigroups,
    containers >=0.5 && <0.6,
    directory >=1.2 && <1.3,
    exceptions >= 0.8 && <0.9,
    filepath >=1.4 && <1.5,
    mtl >=2.2 && <2.3,
    megaparsec >=5.0 && <5.1,
    ansi-wl-pprint >=0.6 && <0.7,
    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

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

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

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

------------------------
-- tests for development
------------------------

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

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

  -- CAUTION: When the build-depends change, please bump the git submodule in lambdacube-docker repository
  build-depends:
    base < 4.10,
    semigroups,
    containers >=0.5 && <0.6,
    lambdacube-compiler,
    megaparsec >=5.0 && <5.1,
    QuickCheck >= 2.8.2 && <2.10,
    tasty >= 0.11 && <0.12,
    tasty-quickcheck >=0.8 && <0.9

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

  if flag(alltest) || flag(testsuite)
    Buildable: True
  else
    Buildable: False

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

  -- CAUTION: When the build-depends change, please bump the git submodule in lambdacube-docker repository
  build-depends:
    aeson >=0.9 && <0.12,
    async >= 2.0 && <2.2,
    base < 4.10,
    semigroups,
    containers >=0.5 && <0.6,
    deepseq >=1.4 && <1.5,
    directory >=1.2 && <1.3,
    exceptions >= 0.8 && <0.9,
    filepath >=1.4 && <1.5,
    lambdacube-compiler,
    mtl >=2.2 && <2.3,
    monad-control >= 1.0 && <1.1,
    optparse-applicative >=0.12 && <0.14,
    megaparsec >=5.0 && <5.1,
    ansi-wl-pprint >=0.6 && <0.7,
    patience >= 0.1 && < 0.2,
    text >= 1.2 && <1.3,
    time >= 1.5 && <1.7,
    lambdacube-ir == 0.3.*,
    vector >= 0.11 && <0.12

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

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

  -- CAUTION: When the build-depends change, please bump the git submodule in lambdacube-docker repository
  build-depends:
    base < 4.10,
    directory >=1.2 && <1.3,
    filepath >=1.4 && <1.5,
    containers >=0.5 && <0.6,
    optparse-applicative >=0.12 && <0.14

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

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

  -- CAUTION: When the build-depends change, please bump the git submodule in lambdacube-docker repository
  build-depends:
    base < 4.10,
    semigroups,
    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 && <0.14,
    aeson >=0.9 && <0.12,
    bytestring == 0.10.*,
    filepath >=1.4 && <1.5,
    directory >=1.2 && <1.3,
    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

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 && <0.12,
    async >= 2.0 && <2.2,
    base < 4.10,
    semigroups,
    containers >=0.5 && <0.6,
    deepseq >=1.4 && <1.5,
    directory >=1.2 && <1.3,
    exceptions >= 0.8 && <0.9,
    filepath >=1.4 && <1.5,
    lambdacube-ir == 0.3.*,
    mtl >=2.2 && <2.3,
    monad-control >= 1.0 && <1.1,
    optparse-applicative >=0.12 && <0.14,
    megaparsec >=5.0 && <5.1,
    ansi-wl-pprint >=0.6 && <0.7,
    pretty-show >= 1.6.9,
    patience >= 0.1 && < 0.2,
    text >= 1.2 && <1.3,
    time >= 1.5 && <1.7,
    vector >= 0.11 && <0.12