Hi Edward,
I can do with current Cabal, it is just a lot of boilerplate and inconvenience.
What I would like to have as an ideal solution for my problem is a preprocessor interface similar to PPSuffixHandler, but with extra capabilities.
It should receive one file as an input, but be able to generate multiple modules with the names of its own choosing. And I want the resulting modules to be added to all build steps automatically. So it should looks approximately like this:
data SmartPreProcessor = SmartPreProcessor {
platformIndependent :: Bool,
runPreProcessor :: (FilePath, FilePath) -- Location of the source file relative to a base dir
-> Verbosity -- verbosity
-> FilePath -- output base dir
-> IO [FilePath] -- output sources files. Should exit if the preprocessor fails
}
There may be design objections to such preprocessor, but again, this is an ideal solution to my problem.