summaryrefslogtreecommitdiffhomepage
path: root/xmobar.cabal
blob: 02e618ff75ce3b0e2829b36bcbc39a8ddaddd5a6 (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
174
175
name:               xmobar
version:            0.15
homepage:           http://projects.haskell.org/xmobar/
bug-reports:        http://code.google.com/p/xmobar/issues
synopsis:           A Minimalistic Text Based Status Bar
description: 	    Xmobar is a minimalistic text based status bar.
		    .
                    Inspired by the Ion3 status bar, it supports similar
                    features, like dynamic color management, output templates,
                    and extensibility through plugins.
category:           System
license:            BSD3
license-file:       LICENSE
author:             Andrea Rossato
maintainer:         Jose A. Ortega Ruiz <jao@gnu.org>
cabal-version:      >= 1.6
build-type:         Simple

extra-source-files: readme.md, news.md,
                    samples/xmobar.config, samples/xmonadpropwrite.hs
                    samples/Plugins/helloworld.config,
                    samples/Plugins/HelloWorld.hs

source-repository head
  type:      git
  location:  git://github.com/jaor/xmobar.git
  branch:    master

flag small_base
  description: Choose the new smaller, split-up base package.

flag with_xft
  description: Use Xft to render text. UTF-8 support included.
  default: False

flag with_utf8
  description: With UTF-8 support.
  default: True

flag with_inotify
  description: inotify support (modern Linux only). Required for the Mail and MBox plugins.
  default: False

flag with_iwlib
  description: Wireless info support. Required for the Wireless plugin, needs iwlib installed.
  default: False

flag with_mpd
  description: MPD support. Needs libmpd installed.
  default: False

flag with_mpd_07
  description: MPD 0.7.* support.
  default: False

flag all_extensions
  description: Includes all optional extensions.
  default: False

flag with_alsa
  description: Use alsa-mixer to get the volume from soundcards.
  default: False

flag with_datezone
  description: Enables localized date support
  default: False

flag with_mpris
  description: MPRIS v1, v2 support
  default: False

flag with_threaded
  description: Use threaded runtime
  default: False

executable xmobar
    hs-source-dirs:     src
    main-is:            Main.hs
    other-modules:
      Xmobar, Config, Parsers, Commands, Localize, XUtil, StatFS, Runnable,
      Plugins, Plugins.CommandReader, Plugins.Date, Plugins.EWMH,
      Plugins.PipeReader, Plugins.StdinReader, Plugins.XMonadLog,
      Plugins.Utils, Plugins.Kbd, Plugins.Monitors,
      Plugins.Monitors.Batt, Plugins.Monitors.Common,
      Plugins.Monitors.CoreCommon, Plugins.Monitors.CoreTemp,
      Plugins.Monitors.CpuFreq, Plugins.Monitors.Cpu,
      Plugins.Monitors.Disk, Plugins.Monitors.Mem,
      Plugins.Monitors.MultiCpu, Plugins.Monitors.Net,
      Plugins.Monitors.Swap, Plugins.Monitors.Thermal,
      Plugins.Monitors.ThermalZone, Plugins.Monitors.Top,
      Plugins.Monitors.Uptime, Plugins.Monitors.Weather,
      Plugins.Monitors.Bright

    ghc-prof-options:   -prof -auto-all

    if true
       ghc-options: -funbox-strict-fields -Wall
       extra-libraries: Xrandr

    if flag(with_threaded)
       -- -threaded is a workaround 100% CPU busy loop
       -- (http://hackage.haskell.org/trac/ghc/ticket/4934)
       -- See also comments in https://github.com/jaor/xmobar/pull/36
       ghc-options: -threaded
       cpp-options: -DTHREADED_RUNTIME

    if impl (ghc >= 6.12.1)
       ghc-options: -fno-warn-unused-do-bind

    --  for instance declaration in src/Plugins/Monitors/CoreCommon.hs
    if impl (ghc < 7)
       cpp-options: -DGHC6

    build-depends:
      unix,
      time,
      filepath,
      X11 == 1.6.*,
      mtl == 2.0.*,
      parsec == 3.1.*,
      stm == 2.3.*

    if flag(small_base)
       build-depends:
         base == 4.*,
         containers,
         process,
         old-locale,
         bytestring,
         directory
    else
       build-depends: base < 3

    if flag(with_xft) || flag(all_extensions)
       build-depends: utf8-string == 0.3.*, X11-xft >= 0.2 && < 0.4
       cpp-options: -DXFT

    if flag(with_utf8) || flag(all_extensions)
       build-depends: utf8-string == 0.3.*
       cpp-options: -DUTF8

    if flag(with_inotify) || flag(all_extensions)
       build-depends: hinotify == 0.3.*
       other-modules: Plugins.Mail, Plugins.MBox
       cpp-options: -DINOTIFY

    if flag(with_iwlib) || flag(all_extensions)
       extra-libraries: iw
       other-modules: IWlib, Plugins.Monitors.Wireless
       cpp-options: -DIWLIB

    if flag(with_mpd) || flag(all_extensions)
       other-modules: Plugins.Monitors.MPD
       cpp-options: -DLIBMPD
       if flag(with_mpd_07)
          build-depends: libmpd == 0.7.*
          cpp-options: -DLIBMPD_07
       else
          build-depends: libmpd == 0.8.*

    if flag(with_alsa) || flag(all_extensions)
       build-depends: alsa-mixer == 0.1.*
       build-depends: alsa-core == 0.5.*
       other-modules: Plugins.Monitors.Volume
       cpp-options: -DALSA

    if flag(with_datezone) || flag(all_extensions)
       build-depends: timezone-olson == 0.1.*, timezone-series == 0.1.*
       other-modules: Plugins.DateZone
       cpp-options: -DDATEZONE

    if flag(with_mpris) || flag(all_extensions)
       build-depends: dbus-core >= 0.9.2.1, text >= 0.11.1.5 && < 0.12
       other-modules: Plugins.Monitors.Mpris
       cpp-options: -DMPRIS