FsToml is new, lighweight project file for F#.
Warning! FsToml is experimental project, not recommended to use in production environment
Name = 'FantasticApp'
OutputType = 'Exe'
FrameworkVersion = '4.5'
Files = [
{ Compile = "src/file.fs" },
{ Compile = "src/file2.fs", Link = "src/uselessLink.fs" },
{ Compile = "src/file3.fs", Sig = "src/file3.fsi" },
{ None = "src/script.fsx", Private = true },
]
References = [
{ Reference = "System" },
{ Reference = "FSharp.Core" },
{ Project = "Deppy.fstoml" },
{ Reference = "lib/Fable.Core.dll", Private = true },
{ Package = "Nett" }
]
DebugSymbols = true
DebugType = 'full'
Optimize = false
NoWarn = [52, 40]
OtherFlags = [ '--warnon:1182' ]
[ net ]
DebugSymbols = false
[ net.Release ]
Constants = [ 'RELEASE', 'FABLE' ]
DebugType = 'pdbonly'
Optimize = true
[ net."4_5".Release.x86 ]
OutputPath = "bin/Release/x86"
[ net."4_5".Release.x64 ]
OutputPath = "bin/Release/x64"
- Sane syntax
- Removing all moving parts of normal MsBuild files that makes it imposible to parse without using MsBuild (conditional statements, variable assigments, functions calls inside of project file)
- Declarative way of defining conditional parts of project
- Deeper integration with Paket
- Better set of CLI tooling for project managment [which will make editor integration much easier]
fstoml
is abstraction layer on top of MsBuild providing more declarative, high level way of defining projects. Under the hood it's translated to normal MsBuild XML .props
file and imported by MsBuild whenever it's called. That makes fstoml
100% compatiable with all existing tooling, such as dotnet
CLI and different editors.
The project is hosted on GitHub where you can report issues, fork the project and submit pull requests.
The library is available under MIT license, which allows modification and redistribution for both commercial and non-commercial purposes.
- Alfonso Garcia-Caro @alfonsogarciacaro
- Jared Hester @cloudRoutine
- Krzysztof Cieślak @Krzysztof-Cieslak
- Matthias Dittrich @matthid
- Steffen Forkmann @forki