diff options
author | Joey Hess <joeyh@joeyh.name> | 2017-08-18 10:53:31 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2017-08-18 11:08:58 -0400 |
commit | 257949f2216fea493c81ab6e50130ecf5c1eb08e (patch) | |
tree | bd3e342ef8e4cd72c172819c4e94a0b486009684 /git-annex.cabal | |
parent | 179b562f6d9bd074eb1ac2900ff09b5f1a3e3af9 (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.cabal | 47 |
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 |