2011-11-21 17 views
6

Mam .fsproj (i .sln) z projektu F #, który został opracowany na Windowsie, który chcę zbudować na Macu.Budowanie F # .fsproj na Macu (Mono)

Zbudowałem kilka programów F # z pojedynczym źródłem z Mono i jest świetnie. Niestety ten plik .fsproj nie jest trywialny, ponieważ istnieje kilka plików źródłowych i wiele odniesień.

Tworzenie linii poleceń w celu ręcznego zbudowania projektu nie wydaje się zabawne.

Czy istnieje narzędzie do analizy pliku .sln/.fsproj i podania poprawnej linii poleceń? A może po prostu zrobić kompilację z .sln/.fsproj?

Chciałbym zrobić to bez MonoDevelop lub SharpDevelop, jeśli to możliwe, chociaż odpowiedzi w tych liniach są mile widziane.

+0

Zobacz http://stackoverflow.com/questions/254722/how-can-i-build-a-visual-studio-solution-using-xbuild-from-mono, ponieważ projekty F # powinny być normalnymi projektami msbuild. – JPW

+0

Po prostu używam plików Makefile - gdy już napisałeś kilka, staje się to bardzo łatwe –

+0

@JohnPalmer czy masz przykład lub szablon do udostępnienia? – Harold

Odpowiedz

3

Oto prosty makefile że używam

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 

uwagę, że linie po każdym Target - compiler.exe:... trzeba być wcięte z TAB zamiast spacji. Jeśli potrzebujesz reereferencji, po prostu dodaj -r "Somefile.dll" do linii poleceń.

+0

Interesujące. I zdecydowanie bardziej minimalny niż plik .fsproj. Dziękuję za udostępnienie tego. Wygląda na to, że posiadanie narzędzia do generowania tego z .fsproj byłoby przydatne, a ręczne aktualizowanie wydaje się być podatne na błędy. – Harold

+0

@Harold - Nie znam żadnych automatycznych narzędzi do konwersji plików .fsproj i plików Makefile, ale odkryłem, że ręczne aktualizowanie plików Makefile jest dość proste –

2

Możesz odszukać xbuild, które bezpośrednio czytają pliki sln i fsproj i budują je na platformie Mono.

Jako @JPW wymienione w komentarzu, to również works on Mac OS X. Mimo że obsługa xbuilda F # wydaje się być niedojrzała, ktoś zdołał uzyskać build F# projects with xbuild on Linux. Mamy nadzieję, że pomocne będzie skonfigurowanie środowiska kompilacji na komputerze Mac.