2011-09-01 7 views
6

मैं प्रोजेक्ट रिपोजिटरी के भीतर निर्मित और संदर्भित सभी प्रमुख तृतीय पक्ष लाइब्रेरी निर्भरताओं के साथ, मेरी परियोजना को स्वयं निहित रखने की कोशिश कर रहा हूं। मेरे प्रोजेक्ट का मुख्य ओकंपल भाग ओकम्बुबिल्ड पर भरोसा करता है।ओकंप्लिंड/ओकम्बुबिल्ड टूलचेन का उपयोग पैकेज की परियोजना-स्थानीय प्रतियों के साथ कैसे किया जा सकता है?

लेकिन बैटरियों जैसे जटिल पैकेजों के लिए, एक मजबूत उम्मीद है कि उन्हें ओकंप्लिंड के माध्यम से एक परियोजना में जोड़ा जा सकता है। ओकंप्लिंड मानते हैं कि पैकेज वैश्विक स्तर पर स्थापित किए जाएंगे। (मुझे एहसास है कि यह पर्यावरण चर और इसकी जगहों को वैकल्पिक स्थानों पर इंगित करने की अनुमति देता है, लेकिन यह मूल रूप से अभी भी अनुमान लगाया गया है कि संकुल वैश्विक रूप से कॉन्फ़िगर किए गए हैं - इसके पास -I या -L झंडे के बराबर नहीं है ताकि गतिशील रूप से खोज पथ का विस्तार किया जा सके पैकेज, उदाहरण के लिए। परियोजना-स्थानीय पेड़ को खोजने के लिए ocamlfind कॉन्फ़िगरेशन को गतिशील रूप से ओवरराइड करने के लिए पर्यावरण चर सेट करना संभव हो सकता है, लेकिन यह केवल तर्कों से कहीं अधिक अजीब है, और ऐसा लगता है कि ऐसा करने के लिए ऐसा करना चुनौतीपूर्ण होगा एक साथ प्राथमिक site-lib है, जो भी जरूरत हो सकती है में मुख्य प्रणाली संकुल की खोज क्षमता को हटाने के।)

क्या निर्माण और nontrivial 3 सममूल्य के खिलाफ निर्माण के लिए एक समझदार रणनीति है ocamlbuild का उपयोग कर एक परियोजना के लिए एक परियोजना-स्थानीय पेड़ के भीतर ty पैकेज?

उत्तर

3

पर्यावरण चर (या अलग findlib.conf) का उपयोग करना (और आसान) जाने का एक तरीका है। और इसे वैश्विक पैकेजों की खोज क्षमता को हटाने की आवश्यकता नहीं है, path और destdirfindlib.conf (OCAMLPATH और OCAMLFIND_DESTDIR क्रमशः पर्यावरण चर के क्रम में संदर्भ पुस्तिका देखें)।

मूल रूप से आप स्थानीय पथ के लिए destdir सेट जब परियोजना स्थानीय संकुल स्थापित करने, और आगे जोड़तेpath जब उन्हें प्रयोग करने के लिए (destdir में stublibs बनाने के लिए मत भूलना (और stdlib में ld.conf में जोड़ने अगर तुम बाईटकोड निर्माण कर रहे हैं बाइनरी))।

पीएस मुझे लगता है कि यह ocsigen-bundler में उपयोग किया जाने वाला दृष्टिकोण है।

कृपया बताएं कि क्या आपको कोई समस्या है (क्योंकि मुझे भी इसी दृष्टिकोण का उपयोग करने में दिलचस्पी है)।

+0

मैंने अब तक इस मार्ग पर जाने से घायल नहीं किया है, इसलिए मैं सफलता की पुष्टि करने में धीमा रहा हूं, लेकिन मुझे उम्मीद है कि इसे काम करना चाहिए। – jrk

संबंधित मुद्दे