summaryrefslogtreecommitdiffhomepage
path: root/xmobar.cabal
blob: 7dcb4b1d254632ef7a2f1281dc46ccea937eeb0d (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
name:               xmobar
version:            0.18
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, Jose A. Ortega Ruiz
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 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 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_dbus
  description: Publish a service on the session bus for controlling xmobar.
  default: False

flag with_threaded
  description: Use threaded runtime.
  default: False

executable xmobar
    hs-source-dirs:     src
    main-is:            Main.hs
    other-modules:
      Xmobar, Actions, Bitmap, Config, Parsers, Commands, Localize,
      XUtil, StatFS, Runnable, ColorCache, Window, Signal,
      Plugins, Plugins.BufferedPipeReader,
      Plugins.CommandReader, Plugins.Date, Plugins.EWMH,
      Plugins.PipeReader, Plugins.StdinReader, Plugins.XMonadLog,
      Plugins.Utils, Plugins.Kbd, Plugins.Locks, 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
    ghc-options: -funbox-strict-fields -Wall -fno-warn-unused-do-bind
    extra-libraries: Xrandr

    build-depends:
      base == 4.*,
      containers,
      regex-compat,
      regex-posix,
      process,
      old-locale,
      bytestring,
      directory,
      unix,
      time,
      filepath,
      X11 >= 1.6.1,
      mtl >= 2.0 && < 2.2,
      parsec == 3.1.*,
      stm >= 2.3 && < 2.5

    if flag(with_threaded)
       -- -threaded is a workaround for 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 < 7)
       cpp-options: -DGHC6

    if flag(with_xft) || flag(all_extensions)
       build-depends: utf8-string == 0.3.*, X11-xft >= 0.2 && < 0.4
       other-modules: MinXft
       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)
       build-depends: libmpd == 0.8.*
       other-modules: Plugins.Monitors.MPD
       cpp-options: -DLIBMPD

    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 >= 0.10
       other-modules: Plugins.Monitors.Mpris
       cpp-options: -DMPRIS

    if flag(with_dbus) || flag(all_extensions)
       build-depends: dbus >= 0.10
       other-modules: IPC.DBus
       cpp-options: -DDBUS