2011-11-21 12 views
6

पर F # .fsproj बिल्डिंग मेरे पास एक एफ # प्रोजेक्ट से एक .fsproj (और .sln) है जो विंडोज़ पर विकसित किया गया था जिसे मैं मैक पर बनाना चाहता हूं।मैक (मोनो)

मैंने मोनो के साथ कई एकल-स्रोत-फ़ाइल F # प्रोग्राम बनाए हैं, और यह बहुत अच्छा है। दुर्भाग्यवश, यह .fsproj गैर-तुच्छ है, क्योंकि कई स्रोत फ़ाइलें और कई संदर्भ हैं।

हाथ से परियोजना बनाने के लिए कमांड लाइन को तैयार करना मजेदार नहीं लगता है।

क्या कोई ऐसा उपकरण है जो .sln/.fsproj का विश्लेषण करेगा और सही कमांड लाइन देगा? या शायद .sln/.fsproj से निर्माण करें?

यदि संभव हो तो मैं मोनो डेवलपमेंट या शार्प डेवलपमेंट के बिना ऐसा करना चाहता हूं, हालांकि उन पंक्तियों के साथ उत्तर स्वागत है। compiler.exe:... एक TAB बजाय रिक्त स्थान के साथ इंडेंट करने की आवश्यकता है -

+0

देखें http://stackoverflow.com/questions/254722/how-can-i-build-a-visual-studio-solution-using-xbuild-from-mono F # परियोजनाओं के रूप में सामान्य msbuild परियोजनाएं होनी चाहिए। – JPW

+0

मैं सिर्फ मेकफ़ाइल का उपयोग करता हूं - एक बार जब आप कुछ लिखते हैं तो यह बहुत आसान हो जाता है –

+0

@ जॉन पामर क्या आपके पास साझा करने के लिए कोई उदाहरण या टेम्पलेट है? – Harold

उत्तर

3

यहाँ है कि मैं का उपयोग

FSC=/home/john/FSharp-2.0.0.0/bin/fsc.exe 
FSFILES= tokenizer.fs BuildTree.fs symtable.fs mkVMCommands.fs codegen.fs 
compiler: compiler.exe 

compiler.exe: $(FSFILES) 
    $(FSC) --define:LINUX --debug:full --debug+ $(FSFILES) -o:compiler.exe --sig:sigfile.fs 

run: compiler 
    mono compiler.exe 

ध्यान दें कि प्रत्येक लक्ष्य के बाद लाइनों एक सरल makefile है। यदि आपको रीरेंस की आवश्यकता है, तो आप कमांडलाइन पर -r "Somefile.dll" जोड़ें।

+0

दिलचस्प। और निश्चित रूप से .fsproj फ़ाइल से अधिक न्यूनतम। इसे साझा करने के लिए धन्यवाद। ऐसा लगता है कि .fsproj से इसे उत्पन्न करने के लिए एक उपकरण होने के लिए उपयोगी होगा, हाथ से दोनों को अपडेट करना त्रुटि प्रवण लगता है। – Harold

+0

@ हैरॉल्ड - मुझे .fsproj फ़ाइलों और मेकफ़ाइल के बीच कनवर्ट करने के लिए किसी भी स्वचालित उपकरण की जानकारी नहीं है, लेकिन मुझे पता चला है कि हाथ से मेकफ़ाइल अपडेट करना बहुत आसान है –

2

आप xbuild पर देख सकते हैं, जो सीधे sln और fsproj फ़ाइलों को पढ़ते हैं और उन्हें मोनो प्लेटफ़ॉर्म पर बनाते हैं।

टिप्पणी में उल्लिखित @JPW के रूप में, यह भी works on Mac OS X है। हालांकि xbuild का F # समर्थन अपरिपक्व प्रतीत होता है, लेकिन किसी ने build F# projects with xbuild on Linux प्रबंधित किया है। उम्मीद है कि मैक पर बिल्ड वातावरण स्थापित करना आपके लिए सहायक है।