I’m trying to use the Cabal api to preprocess a .cabal file and have it run the preprocessors.
But preprocessSources takes a PackageDescription (which I get from a GenericPackageDescription) so this does not contain any information on the Executables or Libraries in the cabal file. So nothing gets executed.
What is the correct way to use it?
For reference, my code is
preprocessPackage :: Context -> String -> IO ()
preprocessPackage env file
= do info <- maybeGetPersistBuildConfig configName
outdated <- case info of
Just i -> safeCheckPersistBuildConfig "dist" file
Nothing -> return True
pkg_info <- case outdated of
False -> return $ fromJust info
True -> do new_info <- configurePackage env
writePersistBuildConfig configName new_info
return new_info
withContext env (\cfg -> preprocessSources (packageDescription cfg) pkg_info False deafening knownSuffixHandlers)