Name:                codeworld-api
Version:             0.3
Synopsis:            Graphics library for CodeWorld
License:             Apache
License-file:        LICENSE
Author:              The CodeWorld Authors
Maintainer:          Chris Smith <cdsmith@gmail.com>
Copyright:           (c) 2019, The CodeWorld Authors
Bug-reports:         https://github.com/google/codeworld/issues
Build-type:          Simple
Cabal-version:       >=1.8

Description:
  This module provides the drawing code for CodeWorld.  It is heavily inspired by
  Gloss, but modified for consistency and pedagogical reasons.
  .
  It comes with two backends. When compiled with GHCJS, it uses the JavaScript FFI to
  run on <http://code.world/>.  When compiled with GHC, it uses the blank-canvas
  package to provide a webpage consisting of just a panel locally. This way, the same
  program that runs on the CodeWorld server can also be run locally.

Library
  Hs-source-dirs:      src
  Exposed-modules:     CodeWorld,
                       CodeWorld.App,
                       CodeWorld.App2
  Other-modules:       CodeWorld.CanvasM,
                       CodeWorld.Color,
                       CodeWorld.Picture,
                       CodeWorld.Event,
                       CodeWorld.Driver
                       CodeWorld.CollaborationUI
  Build-depends:       base                 >= 4.9   && < 5,
                       containers           >= 0.5.7 && < 0.7,
                       hashable             >= 1.2.4 && < 1.3,
                       text                 >= 1.2.2 && < 1.3,
                       mtl                  >= 2.2.1 && < 2.3,
                       random               >= 1.1   && < 1.2,
                       random-shuffle       >= 0.0.4 && < 0.1,
                       cereal               >= 0.5.4 && < 0.6,
                       cereal-text          >= 0.1.0 && < 0.2,
                       ghc-prim             >= 0.3.1 && < 0.6

  if impl(ghcjs)
    Js-sources:        jsbits/sim_fp.js
    Build-depends:
                       ghcjs-base,
                       ghcjs-prim,
                       codeworld-game-api,
                       codeworld-prediction,
                       ghcjs-dom             >= 0.8 && < 0.9,
                       transformers
  else
    Build-depends:     blank-canvas          >= 0.6 && < 0.7,
                       time                  >= 1.6.0 && < 1.9

  Exposed:             True
  Ghc-options:         -Wincomplete-patterns