aboutsummaryrefslogtreecommitdiff
path: root/chelleport.cabal
blob: f273a39c4c654fcb1d3065b20e259f529119ce06 (plain) (blame)
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
cabal-version:   3.0

name:            chelleport
version:         0.1.0.0
license:         MIT
author:          Akshay Nair <phenax5@gmail.com>
maintainer:      Akshay Nair <phenax5@gmail.com>
build-type:      Simple
synopsis:        Mouse control
description:     Mouse control

source-repository head
  type:     git
  location: https://github.com/phenax/chelleport.git

common common-config
  default-extensions:
    ExplicitForAll
    FlexibleContexts
    FlexibleInstances
    ForeignFunctionInterface
    GADTs
    GeneralizedNewtypeDeriving
    LambdaCase
    NamedFieldPuns
    NumericUnderscores
    OverloadedStrings
    QuasiQuotes
    TemplateHaskell
    TupleSections
    UndecidableInstances
  default-language: Haskell2010
  build-depends:
    base,
    text,
    time,
    mtl == 2.3.1,
    sdl2 == 2.5.5.0,
    array,
    temporary,
    directory,
    containers

common warnings
  ghc-options:
    -Wall -Wincomplete-record-updates -Wincomplete-uni-patterns
    -Wunused-foralls -Wextra -Wno-unused-do-bind -Wname-shadowing
    -fwarn-tabs -fprint-explicit-foralls -fprint-explicit-kinds

common extension
  extra-libraries: stdc++ Xtst X11 tesseract leptonica
  include-dirs: include
  c-sources: cpp/libchelleport.cpp
  extra-source-files:
    cpp/*.cpp
    include/*.h
    static/font.ttf

executable chelleport
  import: common-config, warnings, extension
  hs-source-dirs: bin
  main-is: Main.hs
  build-depends: lib-chelleport

library lib-chelleport
  import: common-config, warnings, extension
  hs-source-dirs: src
  build-depends:
    bytestring,
    file-embed == 0.0.16.0,
    sdl2-ttf == 2.1.3,
    vector == 0.13.1.0,
    X11 == 1.10.3
  exposed-modules:
    Chelleport
    Chelleport.AppShell
    Chelleport.Config
    Chelleport.Context
    Chelleport.Control
    Chelleport.Draw
    Chelleport.KeySequence
    Chelleport.OCR
    Chelleport.Types
    Chelleport.Utils
    Chelleport.View

test-suite specs
  import: common-config, warnings, extension
  type: exitcode-stdio-1.0
  hs-source-dirs: specs
  main-is: Main.hs
  ghc-options: -Wno-name-shadowing
  other-modules:
    Mock
    TestUtils
    Specs.KeySequenceSpec
    Specs.AppStateUpdateSpec
    Specs.AppEventSpec
    Specs.ViewSpec
  build-depends:
    lib-chelleport,
    template-haskell,
    hspec