2011-09-01 3 views
6

프로젝트 리포지토리 내에서 빌드되고 참조되는 모든 주요 타사 라이브러리 종속성을 포함하여 자체 프로젝트를 독립적으로 유지하려고합니다. 내 프로젝트의 주요 부분은 ocamlbuild에 의존합니다.ocamlfind/ocamlbuild 툴체인을 패키지의 프로젝트 로컬 복사본에 어떻게 사용할 수 있습니까?

그러나 배터리가 포함 된 복잡한 패키지의 경우 ocamlfind를 통해 프로젝트에 연결될 것으로 예상됩니다. ocamlfind는 패키지가 전 세계적으로 설치 될 것으로 가정합니다. (환경 변수와 conf가 대체 위치를 가리킬 수 있다는 것을 알고 있지만 근본적으로 패키지가 전역 적으로 구성되었다는 가정하에 빌드 된 것 같습니다. -I 또는 -L 플래그와 동등하지 않습니다. 환경 변수를 설정하여 ocamlfind 설정을 동적으로 오버라이드하여 프로젝트 - 로컬 트리를 검색하는 것이 가능할 수도 있지만 이것은 단순한 주장보다 훨씬 어색하며, 동시에 도 필요할 수 있습니다 차 site-lib, 메인 시스템 패키지의 검색 기능을 제거하는 단계를 포함한다.) 사소 3 파에 대한 건물과 건물을위한 온전한 전략은 무엇

ocamlbuild를 사용하는 프로젝트를위한 프로젝트 - 로컬 트리 내의 패키지들?

답변

3

환경 변수 (또는 별도의 findlib.conf)를 사용하는 것은 쉬운 방법입니다. 또한 글로벌 패키지의 검색 가능성을 제거 할 필요가 없습니다. pathdestdir에 대한 참조 설명서 (OCAMLPATHOCAMLFIND_DESTDIR 각각의 환경 변수)를 참조하십시오.

은 기본적으로 당신은 프로젝트 - 로컬 패키지를 설치할 때 로컬 경로에 destdir를 설정하고 앞에 추가을 사용하는 경우 path에 (destdir에서 stublibs를 작성하는 것을 잊지 마세요 (당신이 바이트 코드를 구축하는 경우 stdlibld.conf에 추가 바이너리)).

추신 : ocsigen-bundler에서 사용 된 접근 방식이라고 생각합니다.

문제가 발생하면 알려주십시오 (동일한 접근 방식을 사용하고 싶기 때문에).

+0

나는 지금까지이 길을 걸어 다닐 필요가 없으므로 나는 성공을 천천히 지켜 왔지만 그것이 효과가있을 것으로 기대한다. – jrk