diff options
author | John MacFarlane <jgm@berkeley.edu> | 2017-03-26 17:22:00 +0200 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2017-03-26 17:22:00 +0200 |
commit | 10d91c147968d2e4d63b99b5b0342624827f416f (patch) | |
tree | 3a739ffa0b56d3fa6b5e1524820a79031a996e67 /Setup.hs | |
parent | 604c824d38f255dd44fec9bb69052002b5a59495 (diff) | |
download | pandoc-10d91c147968d2e4d63b99b5b0342624827f416f.tar.gz |
Use file-embed instead of hsb2hs to embed data files.
I think template haskell is robust enough now across platforms
that this will work.
Motivation: file-embed gives us better dependency tracking: if a data
file changes, ghc/stack/cabal know to recompile the Data module.
This also removes hsb2hs as a build dependency.
Diffstat (limited to 'Setup.hs')
-rw-r--r-- | Setup.hs | 28 |
1 files changed, 2 insertions, 26 deletions
@@ -20,41 +20,17 @@ import Distribution.Simple import Distribution.Simple.PreProcess import Distribution.Simple.Setup (ConfigFlags(..), CopyFlags(..), fromFlag) import Distribution.PackageDescription (PackageDescription(..), FlagName(..)) -import Distribution.Simple.Utils ( rawSystemExitCode, findProgramVersion ) import System.Exit -import Distribution.Simple.Utils (info, notice, installOrdinaryFiles) +import Distribution.Simple.Utils (notice, installOrdinaryFiles) import Distribution.Simple.Program (simpleProgram, Program(..)) import Distribution.Simple.LocalBuildInfo import Control.Monad (when) main :: IO () main = defaultMainWithHooks $ simpleUserHooks { - -- enable hsb2hs preprocessor for .hsb files - hookedPreProcessors = [ppBlobSuffixHandler] - , hookedPrograms = [(simpleProgram "hsb2hs"){ - programFindVersion = \verbosity fp -> - findProgramVersion "--version" id verbosity fp }] - , postCopy = installManPage + postCopy = installManPage } -ppBlobSuffixHandler :: PPSuffixHandler -ppBlobSuffixHandler = ("hsb", \_ lbi -> - PreProcessor { - platformIndependent = True, - runPreProcessor = mkSimplePreProcessor $ \infile outfile verbosity -> - do let embedData = case lookup (FlagName "embed_data_files") - (configConfigurationsFlags (configFlags lbi)) of - Just True -> True - _ -> False - when embedData $ - do info verbosity $ "Preprocessing " ++ infile ++ " to " ++ outfile - ec <- rawSystemExitCode verbosity "hsb2hs" - [infile, infile, outfile] - case ec of - ExitSuccess -> return () - ExitFailure _ -> error "hsb2hs is needed to build this program" - }) - installManPage :: Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO () installManPage _ flags pkg lbi = do |