packages feed

alga-0.2.0: alga.cabal

--
-- Cabal config for ALGA.
--
-- Copyright © 2015–2016 Mark Karpov
--
-- ALGA is free software: you can redistribute it and/or modify it under the
-- terms of the GNU General Public License as published by the Free Software
-- Foundation, either version 3 of the License, or (at your option) any
-- later version.
--
-- ALGA is distributed in the hope that it will be useful, but WITHOUT ANY
-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-- details.
--
-- You should have received a copy of the GNU General Public License along
-- with this program. If not, see <http://www.gnu.org/licenses/>.

name:                 alga
version:              0.2.0
synopsis:             Algorithmic automation for various DAWs
description:

  How to algorithmically control every aspect of music using familiar,
  robust tools: plugins, DAWs, etc. that have not been built with this in
  mind?  I've partially solved the problem in MIDA — program that generates
  MIDI files using very simple and symmetric language. However, even though
  MIDA is a fine tool to create scores, it's not sufficient if you want to
  control everything. Initially I thought I could find some plugins that can
  algorithmically control other plugins, but there are no decent tools of
  this sort. How automation is handled in a traditional DAW? Well, you draw
  it in a separate track. Wouldn't it be a good idea to algorithmically
  perform exactly that: drawing of the automation track. This is simpler
  than it may seem: many DAWs allow to export tracks in XML format, and this
  is all we need to start our hacking.

homepage:             https://github.com/mrkkrp/alga
license:              GPL-3
license-file:         LICENSE.md
author:               Mark Karpov
maintainer:           Mark Karpov
copyright:            Copyright © 2015–2016 Mark Karpov
category:             Language
build-type:           Simple
extra-source-files:   README.md, CHANGELOG.md
cabal-version:        >= 1.10

flag dev
  description:        Turn on development settings.
  manual:             True
  default:            False

library
  hs-source-dirs:     src
  if flag(dev)
    ghc-options:      -O2 -Wall -Werror
  else
    ghc-options:      -O2 -Wall
  ghc-prof-options:   -O2 -Wall -prof -fprof-cafs -rtsopts
  build-depends:      base                   >= 4.8 && < 5
                    , containers             >= 0.5.5.1
                    , exceptions             >= 0.8
                    , haskeline              >= 0.7.1.3
                    , hxt                    >= 9.3.1.15
                    , megaparsec             >= 4.2
                    , mtl                    >= 2.1.3.1
                    , path                   >= 0.5.3
                    , random
                    , text                   >= 1.2.0.4
                    , tf-random              >= 0.5
                    , transformers           >= 0.2.0.0
  default-extensions: FlexibleContexts
                    , FlexibleInstances
                    , OverloadedStrings
                    , TupleSections
  exposed-modules:    Alga.Language
                    , Alga.Language.Element
                    , Alga.Language.Environment
                    , Alga.Language.Eval
                    , Alga.Language.SyntaxTree
                    , Alga.Representation
                    , Alga.Representation.Parser
                    , Alga.Representation.Show
                    , Alga.Translation
                    , Alga.Translation.Ardour
                    , Alga.Translation.Base
                    , Alga.Translation.Cubase
  other-modules:      Alga.Representation.Base
  default-language:   Haskell2010

executable alga
  main-is:            Main.hs
  hs-source-dirs:     src
  other-modules:      Alga.Interaction
  if flag(dev)
    ghc-options:      -O2 -Wall -Werror
  else
    ghc-options:      -O2 -Wall
  ghc-prof-options:   -O2 -Wall -prof -fprof-cafs -rtsopts
  build-depends:      alga                   >= 0.2.0
                    , aeson                  >= 0.7
                    , base                   >= 4.8 && < 5
                    , containers             >= 0.5.5.1
                    , data-default           >= 0.5.3
                    , exceptions             >= 0.8
                    , filepath               >= 1.3.0.2
                    , formatting             >= 6.2
                    , haskeline              >= 0.7.1.3
                    , hxt                    >= 9.3.1.15
                    , megaparsec             >= 4.2
                    , mtl                    >= 2.1.3.1
                    , optparse-applicative   >= 0.11.0.2
                    , path                   >= 0.5.3
                    , path-io                >= 0.3.1
                    , random
                    , text                   >= 1.2.0.4
                    , tf-random              >= 0.5
                    , transformers           >= 0.2.0.0
                    , yaml                   >= 0.8.15.1
  default-extensions: FlexibleContexts
                    , FlexibleInstances
                    , OverloadedStrings
                    , RecordWildCards
                    , TupleSections
  other-modules:      Alga.Configuration
                    , Alga.Interaction
                    , Alga.Interaction.Base
                    , Alga.Interaction.Commands
                    , Alga.Language
                    , Alga.Language.Element
                    , Alga.Language.Environment
                    , Alga.Language.Eval
                    , Alga.Language.SyntaxTree
                    , Alga.Representation
                    , Alga.Representation.Base
                    , Alga.Representation.Parser
                    , Alga.Representation.Show
                    , Alga.Translation
                    , Alga.Translation.Ardour
                    , Alga.Translation.Base
                    , Alga.Translation.Cubase
                    , Paths_alga
  default-language:   Haskell2010

test-suite tests
  main-is:            Main.hs
  hs-source-dirs:     tests
  type:               exitcode-stdio-1.0
  if flag(dev)
    ghc-options:      -O2 -Wall -Werror
  else
    ghc-options:      -O2 -Wall
  default-language:   Haskell2010
  build-depends:      QuickCheck                 >= 2.4 && < 3
                    , alga                       >= 0.2.0
                    , base                       >= 4.8 && < 5
                    , containers                 >= 0.5.5.1
                    , hxt                        >= 9.3.1.15
                    , megaparsec                 == 4.*
                    , mtl                        >= 2.1.3.1
                    , random
                    , test-framework             >= 0.4 && < 1
                    , test-framework-quickcheck2 >= 0.3 && < 0.4
                    , text                       >= 1.2.0.4
                    , tf-random                  >= 0.5
                    , transformers               >= 0.2.0.0

source-repository head
  type:               git
  location:           git://github.com/mrkkrp/alga.git