pkg:ui: fix wasteful double-building of hledger-ui modules

This commit is contained in:
Simon Michael 2023-11-07 09:04:50 -08:00
parent 96117ae514
commit 4813e3fc5f
4 changed files with 39 additions and 38 deletions

View File

@ -56,8 +56,8 @@ writeChan :: BC.BChan a -> a -> IO ()
writeChan = BC.writeBChan
main :: IO ()
main = withProgName "hledger-ui.log" $ do -- force Hledger.Utils.Debug.* to log to hledger-ui.log
hledgerUiMain :: IO ()
hledgerUiMain = withProgName "hledger-ui.log" $ do -- force Hledger.Utils.Debug.* to log to hledger-ui.log
traceLogAtIO 1 "\n\n\n\n==== hledger-ui start"
dbg1IO "args" progArgs
dbg1IO "debugLevel" debugLevel

View File

@ -0,0 +1,4 @@
import Hledger.UI.Main (hledgerUiMain)
main :: IO ()
main = hledgerUiMain

View File

@ -1,7 +0,0 @@
module Main (main)
where
-- import Hledger.UI (main)
-- workaround for GHC 9.0.1 https://gitlab.haskell.org/ghc/ghc/-/issues/19397, #1503
import qualified Hledger.UI.Main (main)
main :: IO ()
main = Hledger.UI.Main.main

View File

@ -50,6 +50,33 @@ ghc-options:
dependencies:
- base >=4.14 && <4.19
when:
# curses is required to build terminfo for vty for hledger-ui.
# On POSIX systems it might be not present.
# On windows it's very likely not present, but possibly it could be.
# Ideally we'd like to
# on POSIX: give a clear error ("install your system libcurses-dev package") if not present
# on windows: quietly skip building if not present, build if it is present
# curses
# default: True
# description:
# For now, just don't build hledger-ui on windows
- condition: os(windows)
then:
buildable: false
else:
buildable: true
library:
source-dirs: .
cpp-options: -DVERSION="1.31.99"
exposed-modules:
- Hledger.UI
- Hledger.UI.Main
- Hledger.UI.Theme
- Hledger.UI.UIOptions
dependencies:
- hledger-lib >=1.31.99 && <1.32
- hledger >=1.31.99 && <1.32
- ansi-terminal >=0.9
@ -79,36 +106,13 @@ dependencies:
- vty >=5.15
- unix
when:
# curses is required to build terminfo for vty for hledger-ui.
# On POSIX systems it might be not present.
# On windows it's very likely not present, but possibly it could be.
# Ideally we'd like to
# on POSIX: give a clear error ("install your system libcurses-dev package") if not present
# on windows: quietly skip building if not present, build if it is present
# curses
# default: True
# description:
# For now, just don't build hledger-ui on windows
- condition: os(windows)
then:
buildable: false
else:
buildable: true
library:
source-dirs: .
cpp-options: -DVERSION="1.31.99"
exposed-modules:
- Hledger.UI
- Hledger.UI.Main
- Hledger.UI.Theme
- Hledger.UI.UIOptions
executables:
hledger-ui:
source-dirs: .
source-dirs: app
main: hledger-ui.hs
dependencies:
- base >=4.14 && <4.19
- hledger-ui
when:
- condition: flag(threaded)
ghc-options: -threaded