@@ -20,41 +20,17 @@ import Distribution.Simple
20import Distribution.Simple.PreProcess
20import Distribution.Simple.PreProcess
21import Distribution.Simple.Setup (ConfigFlags(..), CopyFlags(..), fromFlag)
21import Distribution.Simple.Setup (ConfigFlags(..), CopyFlags(..), fromFlag)
22import Distribution.PackageDescription (PackageDescription(..), FlagName(..))
22import Distribution.PackageDescription (PackageDescription(..), FlagName(..))
23−import Distribution.Simple.Utils ( rawSystemExitCode, findProgramVersion )
24import System.Exit
23import System.Exit
25−import Distribution.Simple.Utils (info, notice, installOrdinaryFiles)
24+import Distribution.Simple.Utils (notice, installOrdinaryFiles)
26import Distribution.Simple.Program (simpleProgram, Program(..))
25import Distribution.Simple.Program (simpleProgram, Program(..))
27import Distribution.Simple.LocalBuildInfo
26import Distribution.Simple.LocalBuildInfo
28import Control.Monad (when)
27import Control.Monad (when)
30main :: IO ()
29main :: IO ()
31main = defaultMainWithHooks $ simpleUserHooks {
30main = defaultMainWithHooks $ simpleUserHooks {
32− -- enable hsb2hs preprocessor for .hsb files
33− hookedPreProcessors = [ppBlobSuffixHandler]
34− , hookedPrograms = [(simpleProgram "hsb2hs"){
35− programFindVersion = \verbosity fp ->
36− findProgramVersion "--version" id verbosity fp }]
37− , postCopy = installManPage
31+ postCopy = installManPage
40−ppBlobSuffixHandler :: PPSuffixHandler
41−ppBlobSuffixHandler = ("hsb", \_ lbi ->
43− platformIndependent = True,
44− runPreProcessor = mkSimplePreProcessor $ \infile outfile verbosity ->
45− do let embedData = case lookup (FlagName "embed_data_files")
46− (configConfigurationsFlags (configFlags lbi)) of
50− do info verbosity $ "Preprocessing " ++ infile ++ " to " ++ outfile
51− ec <- rawSystemExitCode verbosity "hsb2hs"
52− [infile, infile, outfile]
54− ExitSuccess -> return ()
55− ExitFailure _ -> error "hsb2hs is needed to build this program"
58installManPage :: Args -> CopyFlags
34installManPage :: Args -> CopyFlags
59 -> PackageDescription -> LocalBuildInfo -> IO ()
35 -> PackageDescription -> LocalBuildInfo -> IO ()
60installManPage _ flags pkg lbi = do
36installManPage _ flags pkg lbi = do