Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #r "paket:
- nuget FSharp.Core ~> 4.6 prerelease
- nuget Fake.Core.Target ~> 5 prerelease
- nuget Fake.IO.FileSystem ~> 5 prerelease
- nuget Fake.DotNet.MSBuild ~> 5 prerelease
- nuget BlackFox.CommandLine ~> 1 prerelease //"
- #load ".fake/build.fsx/intellisense.fsx"
- open BlackFox.CommandLine
- open Fake.Core
- open Fake.Core.TargetOperators
- open Fake.IO
- open Fake.IO.FileSystemOperators
- Target.initEnvironment()
- let srcDir = __SOURCE_DIRECTORY__ </> "llvm"
- let buildDir = __SOURCE_DIRECTORY__ </> "B"
- let ensureBuildDirectory() =
- Directory.ensure buildDir
- use o = new System.IO.StreamWriter(buildDir </> ".BUILDDIR.TAG")
- o.WriteLine "build-dir: 19BBC6F7-3FBF-49BD-BAA4-EA60CE5A0735"
- o.WriteLine "# Excluded from backups"
- Target.create "Clean" <| fun _ -> Directory.delete buildDir
- Target.create "CleanConfigure" <| fun _ ->
- let cmakeCache = buildDir </> "CMakeCache.txt"
- File.delete cmakeCache
- Target.create "Configure" <| fun _ ->
- ensureBuildDirectory()
- CmdLine.empty
- |> CmdLine.appendPrefix "-G" "Ninja"
- |> CmdLine.appendPrefix "-S" srcDir
- |> CmdLine.appendPrefix "-B" buildDir
- |> CmdLine.appendPrefixSeq "-D"
- [| "CMAKE_BUILD_TYPE=Release"
- "CMAKE_C_COMPILER=/usr/local/opt/llvm/bin/clang"
- "CMAKE_CXX_COMPILER=/usr/local/opt/llvm/bin/clang++"
- "CMKAE_EXPORT_COMPILE_COMMANDS=YES"
- "LLVM_TARGETS_TO_BUILD=X86"
- "LLVM_INCLUDE_EXAMPLES=OFF"
- "LLVM_INCLUDE_TESTS=OFF"
- "LLVM_INCLUDE_BENCHMARKS=OFF"
- "LLVM_OPTIMIZED_TABLEGEN=ON"
- "LLVM_ENABLE_PROJECTS=clang;lld" |]
- |> CmdLine.toArray
- |> CreateProcess.fromRawCommand "cmake"
- |> CreateProcess.ensureExitCode
- |> Proc.run
- |> ignore
- Target.create "Reconfigure" ignore
- "CleanConfigure" ?=> "Configure"
- "CleanConfigure"
- "CleanConfigure" ==> "Reconfigure"
- "Configure"
- "Configure" ==> "Reconfigure"
- Target.create "Build" <| fun _ ->
- CmdLine.empty
- |> CmdLine.appendPrefix "--build" buildDir
- |> CmdLine.toArray
- |> CreateProcess.fromRawCommand "cmake"
- |> CreateProcess.ensureExitCode
- |> Proc.run
- |> ignore
- "Clean" ?=> "Configure"
- "Configure"
- "Configure" ?=> "Build"
- Target.create "All" ignore
- "Configure" ==> "All"
- "Build"
- "Build" ==> "All"
- Target.create "Rebuild" ignore
- "Clean" ==> "Rebuild"
- "Configure"
- "Configure" ==> "Rebuild"
- "Build"
- "Build" ==> "Rebuild"
- Target.runOrDefault "All"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement