packages feed

cake3-0.6.4: cake3.cabal

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

name:                cake3
version:             0.6.4
synopsis:            Third cake the Makefile EDSL
description:         Cake3 is a Makefile EDSL written in Haskell. Write your build logic in
                     Haskell, obtain clean and safe Makefile, distribute it to the end-users.
                     GNU Make is required.
license:             BSD3
license-file:        LICENSE
author:              Sergey Mironov
maintainer:          grrwlf@gmail.com
homepage:            https://github.com/grwlf/cake3
description:
    Cake3 is a EDSL for building Makefiles, written in Haskell. With cake3,
    developer can write their build logic in Haskell, obtain clean and safe Makefile
    and distribute it among the non-Haskell-aware users. Currenly, GNU Make is
    the only backend supported.
    .
    /Example program/
    .
    > module Cakefile where
    >
    > import Development.Cake3
    > import Cakefile_P
    >
    > cs = map file ["main.c", "second.c"]
    >
    > main = writeMake (file "Makefile") $ do
    >   selfUpdate
    >   d <- rule $ do
    >     shell [cmd|gcc -M $cs -MF @(file "depend.mk")|]
    >   os <- forM cs $ \c -> do
    >     rule $ do
    >       shell [cmd| gcc -c $(extvar "CFLAGS") -o @(c.="o") $c |]
    >   elf <- rule $ do
    >     shell [cmd| gcc -o @(file "main.elf") $os |]
    >   rule $ do
    >     phony "all"
    >     depend elf
    >   includeMakefile d
    .
    /Basic workflow/
    .
      * Install the cake3
    .
      * Create Cakefile.hs in the project root
    .
      * Build the application using cake3 script provided
    .
      * Execute the application to obtain the Makefile
    .
    See the README on the GitHub <https://github.com/grwlf/cake3> for more
    information. Distribution contains several example projects.

category:            Development
build-type:          Simple
cabal-version:       >=1.8
data-dir:            src
data-files:          CakeScript.sh, UrEmbedHelp.txt
Extra-Source-Files:  README.md, LICENSE, CHANGELOG

library
  exposed-modules:   Development.Cake3
                     Development.Cake3.Types
                     Development.Cake3.Writer
                     System.FilePath.Wrapper
                     Development.Cake3.Monad
                     Development.Cake3.Ext.UrWeb
                     Development.Cake3.Ext.UrEmbed.Types
                     Development.Cake3.Utils.Find
                     Development.Cake3.Utils.Slice
                     Text.QuasiMake

  build-depends:     base >=4.7, haskell-src-meta, template-haskell,
                     filepath, containers, text, monadloc, mtl >= 2.2.1,
                     bytestring, deepseq, system-filepath, text-format,
                     directory, attoparsec, mime-types, syb, parsec, process

  hs-source-dirs:    src
  ghc-options:       -fwarn-incomplete-patterns

executable cake3
  hs-source-dirs:    src
  main-is:           CakeScript.hs
  build-depends:     base >=4.7 && < 5 , process
  other-modules:     Paths_cake3

executable cake3-scan
  hs-source-dirs:    app/CakeScan
  main-is:           Main.hs
  build-depends:     base >=4.7 && < 5 , process, cake3, filepath, directory

executable urembed
  hs-source-dirs:    app/UrEmbed
  main-is:           Main.hs
  build-depends:     base >= 4.7 && < 5 , mtl >= 2.2.1 , process,
                     filepath, syb, optparse-applicative, directory,
                     text, bytestring, containers,
                     haskell-src-meta, template-haskell, attoparsec, monadloc,
                     mime-types, parsec, transformers, utf8-string,
                     blaze-builder, array
  other-modules:     C
                     C_DSL
                     CSS
                     JS
                     Types
                     Language.JavaScript.Parser
                     Language.JavaScript.Parser.Parser
                     Language.JavaScript.Parser.Lexer
                     Language.JavaScript.Parser.Grammar5
                     Language.JavaScript.Parser.AST
                     Language.JavaScript.Pretty.Printer
                     Language.JavaScript.Parser.SrcLocation
                     Language.JavaScript.Parser.LexerUtils
                     Language.JavaScript.Parser.ParseError
                     Language.JavaScript.Parser.ParserMonad
                     Language.JavaScript.Parser.StringEscape
                     Language.JavaScript.Parser.Token