Возможно ли каким-то образом сконфигурировать проект cabal для использования другого компилятора, чем GHC? Можно ли это контролировать некоторыми флагами?Заменить компилятор при создании проекта Haskell с помощью Cabal
Я хочу скомпилировать свой проект с помощью GHC или Haste (на JavaScript) на основе некоторых флагов компиляции.
Было бы идеально, если бы я мог установить мою конфигурацию Cabal или мой собственный сценарий, чтобы сделать что-то вроде:
-- target JS
cabal configure --target=js
cabal build
-- target Native
cabal configure --target=native
cabal build
Спасибо! Могу ли я использовать разные опции «project.cabal»? В коде я могу использовать '# ifdef', и я хочу, например, чтобы JS-версия не имела' build-depends' 'graphviz'? –
дополнительный - does '{- # LANGUAGE CPP # -}' как-то связан с 'ghc cpp backend'? Я хочу использовать бэкэнд LLVM. –
@ danilo2 Чтобы ответить на второй вопрос: прагма CPP не должна ничего делать с C++. Он позволяет использовать препроцессор [C] (http://en.wikipedia.org/wiki/C_preprocessor) - aka «cpp». Cpp выполняет только условную _preprocessing_ (включая или исключая части кода) с использованием '# if' и' # ifdef', но обычно (в случае Haskell) не влияет на компиляцию. – phg