От Duncan Coutts ' email :
Вопрос: Как добавить препроцессор?Я пытался
main =
defaultMainWithHooks
simpleUserHooks{hookedPreProcessors=[("foo",transformation)]}
transformation :: BuildInfo -> LocalBuildInfo -> PreProcessor
Это выглядит правильно.Вот как это сделать (пример взят из документации Cabal для пикши для модуля PreProcess):
transformation _ _ =
PreProcessor {
platformIndependent = True,
runPreProcessor =
mkSimplePreProcessor $ \inFile outFile verbosity -> do
fail $ "transformation: " ++ inFile ++ " " ++ outFile
}
, и она отлично работает:
runghc Setup.hs build
Preprocessing library foo-1.0...
Setup.hs: transformation: Abc.foo dist/build/Abc.hs
Но при каких обстоятельствахэта функция будет вызываться?До сих пор
Мне не удалось заставить клику вызвать эту функцию.
Он вызывает его, когда идет, и ищет модуль Abc
(то есть Abc.hs
или .lhs
), и, если он не найден, он проверит списокпрепроцессоры и идите искать соответствующие файлы, т.е. Abc.foo
.