Awesome
Xake is a make utility made for .NET on F# language. Xake is inspired by shake build tool.
Unlike NAnt, Fake and similar tools with imperative script style, Xake is declarative:
- you define targets (either files or actions)
- you describe rules on how to make particular target and which targets it depends on
- build tool identifies dependencies and build your targets
See documentation for more details.
The script
The simple script looks like:
#r @"Xake.dll"
open Xake
do xakeScript {
rules [
"main" ==> ["helloworld.exe"; "hello.dll"]
"hello.dll" ..> csc {src (fileset {includes "hello.cs"})}
"*.exe" ..> recipe {
let! exe = getTargetFullName()
do! csc {src !!(exe -. "cs")}
}
]
}
This script compiles helloworld assembly from helloworld.cs file.
References
- wiki documentation for more details
- Old documentation for some details.
- implementation notes
- Shake manual