lean4-htt/examples/ffi/lib/lakefile.lean
2022-12-02 14:17:56 -05:00

24 lines
602 B
Text

import Lake
open System Lake DSL
package ffi {
srcDir := "lean"
precompileModules := true
}
lean_lib FFI
@[default_target] lean_exe test {
root := `Main
}
target ffi.o (pkg : Package) : FilePath := do
let oFile := pkg.buildDir / "c" / "ffi.o"
let srcJob ← inputFile <| pkg.dir / "c" / "ffi.cpp"
let flags := #["-I", (← getLeanIncludeDir).toString, "-fPIC"]
buildO "ffi.cpp" oFile srcJob flags "c++"
extern_lib libleanffi (pkg : Package) := do
let name := nameToStaticLib "leanffi"
let ffiO ← fetch <| pkg.target ``ffi.o
buildStaticLib (pkg.buildDir / "c" / name) #[ffiO]