2011-11-21 11 views
6

tengo una .fsproj (y .sln) a partir de un proyecto # F que se desarrolló en Windows que yo quiero construir en el Mac.edificio F # .fsproj en Mac (Mono)

he construido varios programas de código en archivos sola F # con Mono, y es genial. Desafortunadamente, este .fsproj no es trivial, ya que hay varios archivos fuente y varias referencias.

Diseñar la línea de comandos para construir el proyecto a mano no parece divertido.

¿Existe una herramienta que analizará el .sln/.fsproj y dar a la línea de comandos correcta? ¿O tal vez solo hacer la compilación desde .sln/.fsproj?

me gustaría hacer esto sin MonoDevelop o SharpDevelop si es posible, a pesar de respuestas a lo largo de esas líneas son bienvenidos.

+0

Ver http://stackoverflow.com/questions/254722/how-can-i-build-a-visual-studio-solution-using-xbuild-from-mono como F # proyectos deben ser proyectos normales msbuild. – JPW

+0

Tiendo a usar makefiles. Una vez que haya escrito algunos, es muy fácil –

+0

@JohnPalmer ¿tiene un ejemplo o plantilla para compartir? – Harold

Respuesta

3

Aquí es un makefile simple que utilizo

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 

nota que las líneas después de cada objetivo - compiler.exe:... necesitan tener una sangría con un TAB en lugar de espacios. Si necesita reembolsos, simplemente agregue -r "Somefile.dll" a la línea de comandos.

+0

Interesante. Y decididamente más mínimo que el archivo .fsproj. Gracias por compartir esto. Parece que tener una herramienta para producir esto desde el archivo .fsproj sería útil, actualizar ambos a mano parece propenso a errores. – Harold

+0

@Harold - No conozco ninguna herramienta automática para convertir archivos .fsproj y makefiles, pero he descubierto que actualizar los archivos make a mano es bastante fácil –

2

Es posible que desee mirar xbuild, que leen directamente los archivos sln y fsproj y compilarlos en la plataforma Mono.

Como @JPW mencionado en el comentario, también works on Mac OS X. Aunque el soporte F # de xbuild parece ser inmaduro, alguien ha logrado build F# projects with xbuild on Linux. Con suerte, es útil que configure el entorno de compilación en Mac.