cabal-version: 1.12

name:           HaskellAnalysisProgram
version:        0.1.0
synopsis:       Haskell source code analysis program
description:
                The Haskell analysis program is a prototype Haskell source code analyzer.
                It offers functionality to convert Haskell source code into an equivalent meta-model.
                It supports the calculation of three structural metrics, module size (LOC), module cohesion (LCOM)
                and module coupling (CBO).
                Several aggregation methods are supported, such as average, median,
                Gini coefficient and ideal value deviation.

category:       Source Code Analysis
homepage:       https://SaKa1979@bitbucket.org/SaKa1979/haskellanalysisprogram#readme
bug-reports:    https://SaKa1979@bitbucket.org/SaKa1979/haskellanalysisprogram/issues
author:         Henrie Vos, Sander Kamps
maintainer:     sanderkamps79@gmail.com
copyright:      2019 Sander Kamps
license:        Apache-2.0
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md
    ChangeLog.md

source-repository head
  type: git
  location: https://SaKa1979@bitbucket.org/SaKa1979/haskellanalysisprogram

executable HaskellAnalysisProgram
  main-is: Main.hs
  other-modules:
      Analyse
      CsvData
      FileOperation
      MetaHS.DataModel.Extractor.Module.Contains
      MetaHS.DataModel.Extractor.Module.Imports
      MetaHS.DataModel.Extractor.Module.Source
      MetaHS.DataModel.Extractor.Module.Uses
      MetaHS.DataModel.Extractor.Program.Contains
      MetaHS.DataModel.MetaModel
      MetaHS.DataModel.Utils
      MetaHS.DataModel.Utils.File.FileUtils
      MetaHS.DataModel.Utils.Find
      MetaHS.DataModel.Utils.Language.Haskell.Exts.SrcLoc
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.ConDecl
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.Decl
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.DeclHead
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.Module
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.Name
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.QName
      MetaHS.DataModel.Utils.Name
      MetaHS.DataModel.Utils.NameResolution
      MetaHS.EDSL
      MetaHS.EDSL.Graph
      MetaHS.EDSL.Graph.Types
      MetaHS.EDSL.Graph.UsesGraph
      MetaHS.EDSL.Graph.Utils
      MetaHS.EDSL.MetaModel
      MetaHS.EDSL.Utils
      MetaHS.Extensions.CBO
      MetaHS.Extensions.LCOM
      MetaHS.Extensions.LOC
      MetaHS.Extensions.MacroLevelAggregation.Average
      MetaHS.Extensions.MacroLevelAggregation.Distribution
      MetaHS.Extensions.MacroLevelAggregation.GiniCoefficient
      MetaHS.Extensions.MacroLevelAggregation.IdealValueDeviation
      MetaHS.Extensions.MacroLevelAggregation.Median
      MetaHS.Extensions.MacroLevelAggregation.Population
      MetaHS.Extensions.MacroLevelAggregation.Utils
      ModuleLevelAnalysis
      ProgramLevelAnalysis
      Settings
      Paths_HaskellAnalysisProgram
  hs-source-dirs:
      src
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.9.1 && <5
    , bytestring >=0.10 && <0.11
    , cassava >=0.5 && <0.6
    , containers >=0.6 && <0.7
    , csv >=0.1.2 && <0.2
    , directory >=1.3 && <1.4
    , fgl >=5.7 && <5.8
    , filepath >=1.4.1 && <1.5
    , graphviz >=2999.20.0 && <2999.21
    , haskell-src-exts >=1.20 && <1.21
    , pretty >=1.1.3 && <1.2
    , split >=0.2.3 && <0.3
    , syb >=0.7 && <0.8
    , text >=1.2.3 && <1.3
    , vector >=0.12.0 && <0.13
  default-language: Haskell2010

test-suite test-metahs
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Analyse
      CsvData
      FileOperation
      Main
      MetaHS.DataModel.Extractor.Module.Contains
      MetaHS.DataModel.Extractor.Module.Imports
      MetaHS.DataModel.Extractor.Module.Source
      MetaHS.DataModel.Extractor.Module.Uses
      MetaHS.DataModel.Extractor.Program.Contains
      MetaHS.DataModel.MetaModel
      MetaHS.DataModel.Utils
      MetaHS.DataModel.Utils.File.FileUtils
      MetaHS.DataModel.Utils.Find
      MetaHS.DataModel.Utils.Language.Haskell.Exts.SrcLoc
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.ConDecl
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.Decl
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.DeclHead
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.Module
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.Name
      MetaHS.DataModel.Utils.Language.Haskell.Exts.Syntax.QName
      MetaHS.DataModel.Utils.Name
      MetaHS.DataModel.Utils.NameResolution
      MetaHS.EDSL
      MetaHS.EDSL.Graph
      MetaHS.EDSL.Graph.Types
      MetaHS.EDSL.Graph.UsesGraph
      MetaHS.EDSL.Graph.Utils
      MetaHS.EDSL.MetaModel
      MetaHS.EDSL.Utils
      MetaHS.Extensions.CBO
      MetaHS.Extensions.LCOM
      MetaHS.Extensions.LOC
      MetaHS.Extensions.MacroLevelAggregation.Average
      MetaHS.Extensions.MacroLevelAggregation.Distribution
      MetaHS.Extensions.MacroLevelAggregation.GiniCoefficient
      MetaHS.Extensions.MacroLevelAggregation.IdealValueDeviation
      MetaHS.Extensions.MacroLevelAggregation.Median
      MetaHS.Extensions.MacroLevelAggregation.Population
      MetaHS.Extensions.MacroLevelAggregation.Utils
      ModuleLevelAnalysis
      ProgramLevelAnalysis
      Settings
      Paths_HaskellAnalysisProgram
  hs-source-dirs:
      test
      src
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      HUnit
    , base >=4.9.1 && <5
    , bytestring >=0.10.8 && <0.11
    , cassava >=0.5.1 && <0.6
    , containers >=0.6 && <0.7
    , csv >=0.1.2 && <0.2
    , directory >=1.3.0 && <1.4
    , fgl >=5.7.0 && <5.8
    , filepath >=1.4.1 && <1.5
    , graphviz >=2999.20.0 && <2999.21
    , haskell-src-exts >=1.20 && <1.21
    , pretty >=1.1.3 && <1.2
    , split >=0.2.3 && <0.3
    , syb >=0.7 && <0.8
    , text >=1.2.3 && <1.3
    , vector >=0.12.0 && <0.13
  default-language: Haskell2010