packages feed

implicit-0.4.0.0: implicit.cabal

Cabal-version:       2.2
Name:                implicit
Version:             0.4.0.0
Tested-with:         GHC >= 8.8
Build-type:          Simple
Synopsis:            A math-inspired programmatic 2D & 3D CAD system.
Description:         An OpenSCAD execution engine for generating models in STL and many other formats.
License:             AGPL-3.0-or-later
License-file:        LICENSE
Author:              Julia Longtin <julia.longtin@gmail.com>
Maintainer:          Julia Longtin <julia.longtin@gmail.com>
Homepage:            http://implicitcad.org/
Category:            Graphics

flag extopenscad
  default:
    True
  description:
    Builds extopenscad program

flag docgen
  default:
    True
  description:
    Builds docgen program

flag implicitsnap
  default:
    False
  description:
    Builds implicitsnap program

Common binstuff
    Default-Language: Haskell2010
    Default-extensions: NoImplicitPrelude
    Ghc-options:
                -threaded
                -rtsopts "-with-rtsopts -N -qg -t"
                -optc-O3
                -- see GHC manual 8.2.1 section 6.5.1.
                -feager-blackholing
                -Wall
                -Wextra
                -Wcompat
                -Wmonomorphism-restriction
                -Wmissing-signatures
                -Wmissing-export-lists
                -Wmissing-import-lists
                -Wmissing-home-modules
                -Widentities
                -Wimplicit-prelude
                -Wredundant-constraints
                -Wall-missed-specialisations

Common libstuff
    Default-Language: Haskell2010
    Default-extensions: NoImplicitPrelude
    Ghc-options:
                -optc-O3
                -- see GHC manual 8.2.1 section 6.5.1.
                -feager-blackholing
                -Wall
                -Wextra
                -Wcompat
                -Wmonomorphism-restriction
                -Wmissing-signatures
                -Wmissing-export-lists
                -Wmissing-import-lists
                -Wmissing-home-modules
                -Widentities
                -Wimplicit-prelude
                -Wredundant-constraints
                -Wall-missed-specialisations

Library
    Import: libstuff
    Build-depends:
                  base >= 3 && < 5,
                  filepath,
                  directory,
                  parsec,
                  parallel,
                  containers,
                  data-default-class,
                  deepseq,
                  text,
                  bytestring,
                  blaze-builder,
                  blaze-markup,
                  blaze-svg,
                  JuicyPixels,
                  mtl,
                  linear,
                  show-combinators,
                  lens


    Exposed-modules:
                    Graphics.Implicit
                    Graphics.Implicit.Definitions
                    Graphics.Implicit.Primitives
                    Graphics.Implicit.Export
                    Graphics.Implicit.MathUtil
                    Graphics.Implicit.ExtOpenScad
                    Graphics.Implicit.ObjectUtil
                    -- These modules are exposed for the unit tests against the parser interface.
                    Graphics.Implicit.ExtOpenScad.Parser.Statement
                    Graphics.Implicit.ExtOpenScad.Parser.Expr
                    Graphics.Implicit.ExtOpenScad.Eval.Constant
                    Graphics.Implicit.ExtOpenScad.Definitions
                    -- These are exposed for Benchmark.
                    Graphics.Implicit.Export.SymbolicObj2
                    Graphics.Implicit.Export.SymbolicObj3
                    -- These are exposed for implicitsnap.
                    Graphics.Implicit.Export.SymbolicFormats
                    Graphics.Implicit.Export.TriangleMeshFormats
                    Graphics.Implicit.Export.NormedTriangleMeshFormats
                    Graphics.Implicit.Export.PolylineFormats
                    Graphics.Implicit.Export.DiscreteAproxable
                    -- These are exposed for docgen.
                    Graphics.Implicit.ExtOpenScad.Primitives
                    -- These are exposed for testing
                    Graphics.Implicit.Export.Render.GetLoops
                    -- Exposed for executables
                    Graphics.Implicit.Export.OutputFormat
                    Graphics.Implicit.Export.Resolution
    Other-modules:
                  Graphics.Implicit.FastIntUtil
                  Graphics.Implicit.IntegralUtil
                  Graphics.Implicit.ObjectUtil.GetBox2
                  Graphics.Implicit.ObjectUtil.GetBox3
                  Graphics.Implicit.ObjectUtil.GetBoxShared
                  Graphics.Implicit.ObjectUtil.GetImplicit2
                  Graphics.Implicit.ObjectUtil.GetImplicit3
                  Graphics.Implicit.ObjectUtil.GetImplicitShared
                  Graphics.Implicit.ExtOpenScad.Default
                  Graphics.Implicit.ExtOpenScad.Parser.Lexer
                  Graphics.Implicit.ExtOpenScad.Parser.Util
                  Graphics.Implicit.ExtOpenScad.Eval.Statement
                  Graphics.Implicit.ExtOpenScad.Eval.Expr
                  Graphics.Implicit.ExtOpenScad.Util.ArgParser
                  Graphics.Implicit.ExtOpenScad.Util.OVal
                  Graphics.Implicit.ExtOpenScad.Util.StateC
                  Graphics.Implicit.Export.RayTrace
                  Graphics.Implicit.Export.Util
                  Graphics.Implicit.Export.TextBuilderUtils
                  Graphics.Implicit.Export.Symbolic.Rebound2
                  Graphics.Implicit.Export.Symbolic.Rebound3
                  Graphics.Implicit.Export.Render
                  Graphics.Implicit.Export.Render.Definitions
                  Graphics.Implicit.Export.Render.GetSegs
                  Graphics.Implicit.Export.Render.HandleSquares
                  Graphics.Implicit.Export.Render.Interpolate
                  Graphics.Implicit.Export.Render.RefineSegs
                  Graphics.Implicit.Export.Render.TesselateLoops
                  Graphics.Implicit.Export.Render.HandlePolylines

Executable extopenscad
   Import: binstuff
   if !flag(extopenscad)
     buildable: False
   Main-is: extopenscad.hs
   Hs-source-dirs: programs
   Build-depends:
                 base,
                 filepath,
                 optparse-applicative >= 0.10.0,
                 text,
                 implicit

Executable docgen
   Import: binstuff
   if !flag(docgen)
     buildable: False
   main-is: docgen.hs
   Hs-source-dirs: programs
   build-depends:
                 base,
                 text,
                 implicit

Executable implicitsnap
   Import: binstuff
   if !flag(implicitsnap)
     buildable: False
   Main-is: implicitsnap.hs
   Hs-source-dirs: programs
   Build-depends:
                 aeson,
                 base,
                 bytestring,
                 implicit,
                 linear,
                 snap-core,
                 snap-server,
                 text,
                 utf8-string,

Benchmark Benchmark
   Import: binstuff
   Type: exitcode-stdio-1.0
   Main-is: Benchmark.hs
   Hs-source-dirs: programs
   Build-depends:
                 base,
                 criterion,
                 linear,
                 implicit

Test-suite test-implicit
    Import: binstuff
    Type: exitcode-stdio-1.0
    Main-is: Main.hs
    Hs-source-dirs: tests
    Build-depends:
                  base,
                  bytestring,
                  hspec,
                  implicit,
                  text,
                  parsec,
                  directory,
                  hedgehog,
                  hw-hspec-hedgehog,
                  QuickCheck,
                  linear,
                  lens
    Other-Modules:
                  ParserSpec.Expr
                  ParserSpec.Statement
                  ParserSpec.Util
                  ExecSpec.Expr
                  ExecSpec.Util
                  MessageSpec.Message
                  MessageSpec.Util
                  PropertySpec
                  PropertySpec.Exec
                  GoldenSpec.Spec
                  GoldenSpec.Util
                  Graphics.Implicit.Test.Instances
                  Graphics.Implicit.Test.Utils
                  ImplicitSpec
                  TesselationSpec

Benchmark parser-bench
    Import: binstuff
    Type: exitcode-stdio-1.0
    Main-is: parser-bench.hs
    Hs-source-dirs: programs
    Build-depends:
                  base,
                  criterion,
                  parsec,
                  implicit

Source-repository head
    Type:            git
    Location:        https://github.com/Haskell-Things/ImplicitCAD.git