mxnet-0.2.0.0: Setup.hs
import Distribution.Simple
import Distribution.Simple.Setup
import Distribution.Types.LocalBuildInfo
import Distribution.Types.GenericPackageDescription
import Distribution.Types.HookedBuildInfo
import Data.List (find)
main :: IO ()
main = defaultMainWithHooks $
simpleUserHooks { confHook = confWithExtraFlags
}
-- | Patch the `-lmxnet` arguments during the build stage for TH phase.
confWithExtraFlags :: (GenericPackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo
confWithExtraFlags desc_info flags =
defaultConfHook desc_info newFlags
where
newFlags = flags { configProgramArgs = defaultOtherArgs ++ [ ("ghc", defaultGhcArgs ++ ["-lmxnet"])
, ("haddock", defaultHaddockArgs ++ ["--optghc=-lmxnet"])
]
}
defaultProgramArgs = configProgramArgs flags
defaultOtherArgs = filter (\(prog, _) -> prog /= "ghc" && prog /= "haddock") defaultProgramArgs
defaultGhcArgs = case find (\(prog, _) -> prog == "ghc") defaultProgramArgs of
Nothing -> []
Just (_, opts) -> opts
defaultHaddockArgs = case find (\(prog, _) -> prog == "haddock") defaultProgramArgs of
Nothing -> []
Just (_, opts) -> opts
defaultConfHook = confHook simpleUserHooks