summaryrefslogtreecommitdiff
path: root/elna.cabal
blob: 4f3fc8e9dc77fbc2102fc387e451cc207e701d4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
cabal-version: 3.4
name: elna
version: 0.1.0.0
synopsis:
    Elna programming language compiles simple mathematical operations to RISC-V code

-- description:
license:            MPL-2.0
license-file:       LICENSE
author:             Eugen Wissner
maintainer:         belka@caraus.de
-- copyright:
category: Language
build-type: Simple
extra-doc-files: TODO README

common warnings
    build-depends:
        base >=4.7 && <5,
        bytestring ^>= 0.12.1,
        megaparsec ^>= 9.6,
        optparse-applicative ^>= 0.18.1,
        vector ^>= 0.13.1,
        text ^>= 2.0
    ghc-options: -Wall
    default-extensions:
        DataKinds,
        ExplicitForAll,
        LambdaCase,
        OverloadedStrings,
        DuplicateRecordFields,
        RecordWildCards
    default-language: GHC2021

library elna-internal
    import: warnings
    exposed-modules:
        Language.Elna.Architecture.RiscV
        Language.Elna.Backend.Allocator
        Language.Elna.Backend.Intermediate
        Language.Elna.CommandLine
        Language.Elna.Frontend.AST
        Language.Elna.Frontend.NameAnalysis
        Language.Elna.Frontend.Parser
        Language.Elna.Frontend.SymbolTable
        Language.Elna.Frontend.TypeAnalysis
        Language.Elna.Frontend.Types
        Language.Elna.Glue
        Language.Elna.Location
        Language.Elna.Object.Elf
        Language.Elna.RiscV.CodeGenerator
        Language.Elna.RiscV.ElfWriter
    build-depends:
        exceptions ^>= 0.10,
        hashable ^>= 1.4.3,
        parser-combinators ^>= 1.3,
        transformers ^>= 0.6.1,
        unordered-containers ^>= 0.2.20
    hs-source-dirs: lib

executable elna
    import: warnings
    main-is: Main.hs
    build-depends:
        elna:elna-internal,
        filepath ^>= 1.5.3
    hs-source-dirs: src

test-suite elna-test
    import: warnings
    type: exitcode-stdio-1.0
    main-is: Spec.hs
    other-modules:
        Language.Elna.NameAnalysisSpec
        Language.Elna.ParserSpec
    hs-source-dirs:
        tests
    ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall

    build-depends:
        elna:elna-internal,
        hspec >= 2.10.9 && < 2.12,
        hspec-expectations ^>= 0.8.2,
        hspec-megaparsec ^>= 2.2.0,
        text
    build-tool-depends:
        hspec-discover:hspec-discover