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