summaryrefslogtreecommitdiff
path: root/erebos.cabal
blob: 545acb23dadf79615cf2321d0509077daed08755 (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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
Cabal-Version:       2.2

Name:                erebos
Version:             0.1.0.0
-- synopsis:
-- description:
License:             BSD-3-Clause
License-File:        LICENSE
Author:              Roman Smrž
Maintainer:          roman.smrz@seznam.cz
-- copyright:
-- category:
Build-type:          Simple
Extra-Source-Files:
    src/Erebos/ICE/pjproject.h

common common
    ghc-options:         -Wall

    build-depends:
        base >=4.13 && <4.17,

    default-extensions:
        DefaultSignatures
        ExistentialQuantification
        FlexibleContexts
        FlexibleInstances
        FunctionalDependencies
        GeneralizedNewtypeDeriving
        ImportQualifiedPost
        LambdaCase
        MultiWayIf
        RankNTypes
        RecordWildCards
        ScopedTypeVariables
        StandaloneDeriving
        TypeOperators
        TupleSections
        TypeApplications
        TypeFamilies
        TypeFamilyDependencies

    other-extensions:
        ForeignFunctionInterface
        OverloadedStrings
        RecursiveDo
        UndecidableInstances

library
    import: common
    default-language:    Haskell2010

    hs-source-dirs:      src
    exposed-modules:
        Erebos.Attach
        Erebos.Channel
        Erebos.Contact
        Erebos.Discovery
        Erebos.ICE
        Erebos.Identity
        Erebos.Message
        Erebos.Network
        Erebos.Network.Protocol
        Erebos.Pairing
        Erebos.PubKey
        Erebos.Service
        Erebos.Set
        Erebos.State
        Erebos.Storage
        Erebos.Storage.Key
        Erebos.Storage.Merge
        Erebos.Sync

        -- Used by test tool:
        Erebos.Storage.Internal
    other-modules:
        Erebos.Flow
        Erebos.Storage.List
        Erebos.Util

    c-sources:
        src/Erebos/ICE/pjproject.c
        src/Erebos/Network/ifaddrs.c
    include-dirs:
        src/Erebos/ICE
        src
    includes:
        src/Erebos/ICE/pjproject.h
    build-tool-depends:  c2hs:c2hs
    pkgconfig-depends:   libpjproject >= 2.9

    build-depends:
        async >=2.2 && <2.3,
        binary >=0.8 && <0.11,
        bytestring >=0.10 && <0.12,
        cereal >= 0.5 && <0.6,
        clock >=0.8 && < 0.9,
        containers >= 0.6 && <0.7,
        cryptonite >=0.25 && <0.31,
        deepseq >= 1.4 && <1.5,
        directory >= 1.3 && <1.4,
        filepath >=1.4 && <1.5,
        hashable >=1.3 && <1.5,
        hashtables >=1.2 && <1.4,
        hinotify >=0.4 && <0.5,
        iproute >=1.7 && <1.8,
        memory >=0.14 && <0.18,
        mime >= 0.4 && < 0.5,
        mtl >=2.2 && <2.3,
        network >= 3.1 && <3.2,
        stm >=2.5 && <2.6,
        tagged >= 0.8 && <0.9,
        text >= 1.2 && <2.1,
        time >= 1.8 && <1.14,
        unix >=2.7 && <2.8,
        uuid >=1.3 && <1.4,
        zlib >=0.6 && <0.7

executable erebos
    import: common
    default-language:    Haskell2010
    hs-source-dirs:      main
    ghc-options:         -threaded

    main-is:             Main.hs
    other-modules:
        Test

    build-depends:
        bytestring,
        cryptonite,
        erebos,
        haskeline >=0.7 && <0.9,
        mtl,
        network,
        text,
        time,
        transformers >= 0.5 && <0.7,