summaryrefslogtreecommitdiff
path: root/git-annex.cabal
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-08-18 10:53:31 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-08-18 11:08:58 -0400
commit257949f2216fea493c81ab6e50130ecf5c1eb08e (patch)
treebd3e342ef8e4cd72c172819c4e94a0b486009684 /git-annex.cabal
parent179b562f6d9bd074eb1ac2900ff09b5f1a3e3af9 (diff)
git-annex.cabal: Deal with breaking changes in Cabal 2.0
https://github.com/haskell/cabal/issues/4655 This means that when a module is conditionally imported via ifdef depending on the OS or build flags, the cabal file has to mirror the same logic there to only list the module then. Since there are lots of OS's and lots of combinations of build flags here, it's rather difficult to know if the cabal file has been completelty correctly updated to match the source code. So I am very unhappy with needing to update things in two places. I've only tested this on linux with most build flags enables; this will probably need significant time and testing to catch every cabal file tweak that this change to Cabal requires. And it will be a continual source of compile failures going forward when the code is modified and the cabal file not also updated. DRY DRY DRY, I repeat myself, but: DRY! Sigh.. (Also, had to remove all Build.* that are standalone programs from the Other-Modules list, because since cabal passes those modules to ghc when building git-annex, it complains that they use module Main. Those modules are only used when building with the Makefile anyway, so this change shouldn't break anything.) This commit was sponsored by Thomas Hochstein on Patreon.
Diffstat (limited to 'git-annex.cabal')
-rw-r--r--git-annex.cabal47
1 files changed, 19 insertions, 28 deletions
diff --git a/git-annex.cabal b/git-annex.cabal
index 4b7eadfb7..7f5047f7e 100644
--- a/git-annex.cabal
+++ b/git-annex.cabal
@@ -409,30 +409,31 @@ Executable git-annex
CPP-Options: -DWITH_ASSISTANT
if flag(Assistant)
- if os(linux)
+ if os(linux) || flag(Android)
Build-Depends: hinotify
CPP-Options: -DWITH_INOTIFY
+ Other-Modules: Utility.DirWatcher.INotify
else
if os(darwin)
Build-Depends: hfsevents
CPP-Options: -DWITH_FSEVENTS
+ Other-Modules: Utility.DirWatcher.FSEvents
else
if os(windows)
Build-Depends: Win32-notify
CPP-Options: -DWITH_WIN32NOTIFY
+ Other-Modules: Utility.DirWatcher.Win32Notify
else
if (! os(solaris) && ! os(linux))
- if flag(Android)
- Build-Depends: hinotify
- CPP-Options: -DWITH_INOTIFY
- else
- CPP-Options: -DWITH_KQUEUE
- C-Sources: Utility/libkqueue.c
+ CPP-Options: -DWITH_KQUEUE
+ C-Sources: Utility/libkqueue.c
+ Other-Modules: Utility.DirWatcher.Kqueue
if flag(Dbus)
if (os(linux))
Build-Depends: dbus (>= 0.10.7), fdo-notify (>= 0.3)
CPP-Options: -DWITH_DBUS -DWITH_DESKTOP_NOTIFY -DWITH_DBUS_NOTIFICATIONS
+ Other-Modules: Utility.DBus
if flag(Android)
Build-Depends: data-endian
@@ -481,6 +482,7 @@ Executable git-annex
if flag(Benchmark)
Build-Depends: criterion, deepseq
CPP-Options: -DWITH_BENCHMARK
+ Other-Modules: Command.Benchmark
Other-Modules:
Annex
@@ -651,20 +653,10 @@ Executable git-annex
Backend.URL
Backend.Utilities
Backend.WORM
- Build.BuildVersion
Build.BundledPrograms
Build.Configure
Build.DesktopFile
- Build.DistributionUpdate
- Build.EvilLinker
- Build.EvilSplicer
- Build.InstallDesktopFile
- Build.LinuxMkLibs
- Build.MakeMans
Build.Mans
- Build.NullSoftInstaller
- Build.OSXMkLibs
- Build.Standalone
Build.TestConfig
Build.Version
BuildInfo
@@ -687,7 +679,6 @@ Executable git-annex
Command.AddUrl
Command.Adjust
Command.Assistant
- Command.Benchmark
Command.CalcKey
Command.CheckPresentKey
Command.Commit
@@ -984,16 +975,11 @@ Executable git-annex
Utility.Bloom
Utility.CoProcess
Utility.CopyFile
- Utility.DBus
Utility.Daemon
Utility.Data
Utility.DataUnits
Utility.DirWatcher
- Utility.DirWatcher.FSEvents
- Utility.DirWatcher.INotify
- Utility.DirWatcher.Kqueue
Utility.DirWatcher.Types
- Utility.DirWatcher.Win32Notify
Utility.Directory
Utility.DiskFree
Utility.Dot
@@ -1016,14 +1002,10 @@ Executable git-annex
Utility.LockFile
Utility.LockFile.LockStatus
Utility.LockFile.PidLock
- Utility.LockFile.Posix
- Utility.LockFile.Windows
Utility.LockPool
Utility.LockPool.LockHandle
Utility.LockPool.PidLock
- Utility.LockPool.Posix
Utility.LockPool.STM
- Utility.LockPool.Windows
Utility.LogFile
Utility.Lsof
Utility.MagicWormhole
@@ -1070,5 +1052,14 @@ Executable git-annex
Utility.UserInfo
Utility.Verifiable
Utility.WebApp
- Utility.WinProcess
Utility.Yesod
+
+ if (os(windows))
+ Other-Modules:
+ Utility.LockFile.Windows
+ Utility.LockPool.Windows
+ Utility.WinProcess
+ else
+ Other-Modules:
+ Utility.LockFile.Posix
+ Utility.LockPool.Posix