Хотя вы, безусловно, можете создавать код на Haskell напрямую, используя универсальный инструмент сборки, результат гораздо сложнее поддерживать, гораздо труднее поделиться с сообществом и сложнее построить поверх него, чемкогда вы строите поверх Cabal.
Для системы сборки я отказался от общего выбора для программ на Haskell, главным образом потому, что я хочу узнать, как работает сборка программ на других языках.
Я понимаю намерение, стоящее за этим утверждением, в том, что вы хотите увидеть все отдельные этапы процесса сборки, но читаете иначе, избегая междусобойчиков, вы не видите, как создаются программы на Haskell, вывидя, как больно восстанавливать инструменты, предоставляемые сообществом.
Я бы порекомендовал сделать то, что предложил Дон.Посмотрите на вывод cabal -v
для сборки под вашим конкретным компилятором (возможно, ghc) и репликации этих шагов в CMake.
Но потом, как только вы поймете шаги, я серьезно подумаю над тем, чтобы взять эти знания и переместитьобратно в Кабал.Только для того, чтобы позволить ему решать вопросы поддержки нескольких компиляторов, платформ, управления пакетами и т. Д. Тем самым уменьшая хрупкость вашей системы сборки и упрощая компоновку и совместное использование вашей работы.
Для остроумияЯ не могу вспомнить ни одного пакета или бинарника, созданного не Cabal, который активно используется сообществом, кроме самого ghc.
Однако я желаю вам удачи в вашем путешествии в недрапроцесс сборки!