summaryrefslogtreecommitdiff
path: root/git-annex.cabal
blob: fad2f3d0b592d9e37130b0131a9b5c21b84f2544 (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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
Name: git-annex
Version: 4.20130909
Cabal-Version: >= 1.8
License: GPL-3
Maintainer: Joey Hess <joey@kitenet.net>
Author: Joey Hess
Stability: Stable
Copyright: 2010-2013 Joey Hess
License-File: COPYRIGHT
Homepage: http://git-annex.branchable.com/
Build-type: Custom
Category: Utility
Synopsis: manage files with git, without checking their contents into git
Description:
 git-annex allows managing files with git, without checking the file
 contents into git. While that may seem paradoxical, it is useful when
 dealing with files larger than git can currently easily handle, whether due
 to limitations in memory, time, or disk space.
 .
 Even without file content tracking, being able to manage files with git,
 move files around and delete files with versioned directory trees, and use
 branches and distributed clones, are all very handy reasons to use git. And
 annexed files can co-exist in the same git repository with regularly
 versioned files, which is convenient for maintaining documents, Makefiles,
 etc that are associated with annexed files but that benefit from full
 revision control.

Flag S3
  Description: Enable S3 support

Flag WebDAV
  Description: Enable WebDAV support

Flag Inotify
  Description: Enable inotify support

Flag Dbus
  Description: Enable dbus support

Flag Assistant
  Description: Enable git-annex assistant and watch command

Flag Webapp
  Description: Enable git-annex webapp

Flag Pairing
  Description: Enable pairing

Flag XMPP
  Description: Enable notifications using XMPP

Flag DNS
  Description: Enable the haskell DNS library for DNS lookup

Flag Production
  Description: Enable production build (slower build; faster binary)

Flag Android
  Description: Building for Android
  Default: False

Flag TestSuite
  Description: Embed the test suite into git-annex

Flag TDFA
  Description: Use regex-tdfa for wildcards

Flag Feed
  Description: Enable podcast feed support

Flag Quvi
  Description: Enable use of quvi to download videos

Executable git-annex
  Main-Is: git-annex.hs
  Build-Depends: MissingH, hslogger, directory, filepath,
   containers, utf8-string, network (>= 2.0), mtl (>= 2),
   bytestring, old-locale, time, HTTP,
   extensible-exceptions, dataenc, SHA, process, json,
   base (>= 4.5 && < 4.8), monad-control, MonadCatchIO-transformers,
   IfElse, text, QuickCheck >= 2.1, bloomfilter, edit-distance, process,
   SafeSemaphore, uuid, random, dlist, unix-compat
  -- Need to list these because they're generated from .hsc files.
  Other-Modules: Utility.Touch Utility.Mounts
  Include-Dirs: Utility
  C-Sources: Utility/libdiskfree.c Utility/libmounts.c
  CC-Options: -Wall
  GHC-Options: -Wall
  CPP-Options: -DWITH_CLIBS
  Extensions: PackageImports
  -- Some things don't work with the non-threaded RTS.
  GHC-Options: -threaded

  if flag(Production)
    GHC-Options: -O2

  if os(windows)
    CPP-Options: -D__WINDOWS__
  else
    Build-Depends: unix

  if flag(TestSuite)
    Build-Depends: HUnit
    CPP-Options: -DWITH_TESTSUITE

  if flag(TDFA)
    Build-Depends: regex-tdfa
    CPP-Options: -DWITH_TDFA

  if flag(S3)
    Build-Depends: hS3
    CPP-Options: -DWITH_S3

  if flag(WebDAV)
    Build-Depends: DAV (>= 0.3), http-conduit, xml-conduit, http-types
    CPP-Options: -DWITH_WEBDAV

  if flag(Assistant) && ! os(windows) && ! os(solaris)
    Build-Depends: async, stm (>= 2.3)
    CPP-Options: -DWITH_ASSISTANT

  if flag(Android)
    Build-Depends: data-endian
    CPP-Options: -D__ANDROID__

  if flag(Assistant)
    if os(linux) && flag(Inotify)
      Build-Depends: hinotify
      CPP-Options: -DWITH_INOTIFY
    else
      if os(darwin)
        Build-Depends: hfsevents
        CPP-Options: -DWITH_FSEVENTS
      else
        if (! os(windows) && ! os(solaris) && ! os(linux))
          CPP-Options: -DWITH_KQUEUE
          C-Sources: Utility/libkqueue.c

  if os(linux) && flag(Dbus)
    Build-Depends: dbus (>= 0.10.3)
    CPP-Options: -DWITH_DBUS

  if flag(Webapp)
    Build-Depends:
     yesod, yesod-default, yesod-static, yesod-form, yesod-core,
     case-insensitive, http-types, transformers, wai, wai-logger, warp,
     blaze-builder, crypto-api, hamlet, clientsession,
     template-haskell, data-default, aeson
    CPP-Options: -DWITH_WEBAPP

  if flag(Pairing)
    Build-Depends: network-multicast, network-info
    CPP-Options: -DWITH_PAIRING

  if flag(XMPP)
    Build-Depends: network-protocol-xmpp, gnutls (>= 0.1.4), xml-types
    CPP-Options: -DWITH_XMPP

  if flag(DNS)
    Build-Depends: dns
    CPP-Options: -DWITH_DNS

  if flag(Feed)
    Build-Depends: feed
    CPP-Options: -DWITH_FEED
  
  if flag(Quvi)
    Build-Depends: aeson
    CPP-Options: -DWITH_QUVI

source-repository head
  type: git
  location: git://git-annex.branchable.com/