[Haskell] cabal로 프로젝트 관리하기

[원본 링크]

권장사항대로 하스켈 패키지를 설치했다면, cabal이라는 프로젝트 관리 도구도 함께 설치가 되었을 것이다.

다른 언어에서 쓰는 npm, cargo 같은 프로젝트 매니저와 비슷한 역할을 한다.




프로젝트 생성

프로젝트 초기화를 하려면 프로젝트 루트 폴더 위치에서 init 명령을 사용한다.

그러면 뭐 밑도끝도 없이 계속 뭘 물어본다.
이렇게 길게 물어보는 프로젝트 초기화는 처음 본다.


그럼 이런 식으로 프로젝트 구성이 초기화된다.




프로젝트 실행

기본 코드에는 이런 코드가 들어있을 것이다.

그냥 프로젝트 루트 경로에 들어가서 cabal run을 치면 자동으로 컴파일과 실행을 수행해준다.




프로젝트 빌드

결과물을 바이너리로 만들고 싶다면 build 명령을 사용한다.

그러면 dist... 경로에

결과물을 방출한다.
아티팩트 디렉토리가 좀 심하게 지저분한 편이다.




종속성 설치

종속성을 직접 설치하고 싶다면 install 명령어를 쓸 수 있으나

별로 권장하는 형태는 아니고

*.cabal 파일에 종속성을 추가해서 설치시키는 것이 좀더 관리가 편하다.

build-depends:       base >=4.7 && <5
                   , conduit
                   , conduit-extra

이렇게 적당히 추가해주면 된다.
지금 내게 필요한건 conduit라는 서드파티다.

그리고 실행만 해도 자동으로 종속성을 다운받고 링크한다.



참조
https://wikidocs.net/6678
https://cabal.readthedocs.io/en/stable/developing-packages.html