Browse Source

Build: try to fix doc generation on OS X #346

Adapt and apply patch from fsprojects/ProjectScaffold#217
netstandard
Christoph Ruegg 11 years ago
parent
commit
58e09fea8c
  1. 1
      .gitignore
  2. 42
      build.fsx
  3. 2
      docs/tools/build-docs.fsx
  4. 2
      docs/tools/templates/template.cshtml

1
.gitignore

@ -36,6 +36,7 @@ _TeamCity*
*.aps *.aps
*.opensdf *.opensdf
*.cachefile *.cachefile
*.swp
# Upgrades # Upgrades
_UpgradeReport_Files/ _UpgradeReport_Files/

42
build.fsx

@ -750,15 +750,41 @@ let provideDocExtraFiles() =
ReadFileAsString fileName ] ReadFileAsString fileName ]
|> ReplaceFile ("docs/content" </> docName) |> ReplaceFile ("docs/content" </> docName)
let buildDocumentationTarget fsiargs target =
trace (sprintf "Building documentation (%s), this could take some time, please wait..." target)
let fakePath = "packages" @@ "FAKE" @@ "tools" @@ "FAKE.exe"
let fakeStartInfo script workingDirectory args fsiargs environmentVars =
(fun (info: System.Diagnostics.ProcessStartInfo) ->
info.FileName <- System.IO.Path.GetFullPath fakePath
info.Arguments <- sprintf "%s --fsiargs -d:FAKE %s \"%s\"" args fsiargs script
info.WorkingDirectory <- workingDirectory
let setVar k v =
info.EnvironmentVariables.[k] <- v
for (k, v) in environmentVars do
setVar k v
setVar "MSBuild" msBuildExe
setVar "GIT" Git.CommandHelper.gitPath
setVar "FSI" fsiPath)
let executeFAKEWithOutput workingDirectory script fsiargs envArgs =
let exitCode =
ExecProcessWithLambdas
(fakeStartInfo script workingDirectory "" fsiargs envArgs)
TimeSpan.MaxValue false ignore ignore
System.Threading.Thread.Sleep 1000
exitCode
let exit = executeFAKEWithOutput "docs/tools" "build-docs.fsx" fsiargs ["target", target]
if exit <> 0 then
failwith "Generating documentation failed"
()
let generateDocs fail local = let generateDocs fail local =
let args = if local then [] else ["--define:RELEASE"] let args = if local then "" else "--define:RELEASE"
if executeFSIWithArgs "docs/tools" "build-docs.fsx" args [] then try
traceImportant "Docs generated" buildDocumentationTarget args "Default"
else traceImportant "Documentation generated"
if fail then with
failwith "Generating documentation failed" | e when not fail ->
else failwith "Generating documentation failed"
traceImportant "generating documentation failed"
Target "Docs" (fun _ -> Target "Docs" (fun _ ->
provideDocExtraFiles () provideDocExtraFiles ()

2
docs/tools/build-docs.fsx

@ -60,7 +60,7 @@ let layoutRoots =
let copyFiles() = let copyFiles() =
CopyRecursive files output true |> Log "Copying file: " CopyRecursive files output true |> Log "Copying file: "
ensureDirectory (output @@ "content") ensureDirectory (output @@ "content")
CopyRecursive (formatting @@ "styles") (output @@ "content") true CopyRecursive (formatting @@ "styles") (output @@ "content") true
|> Log "Copying styles and scripts: " |> Log "Copying styles and scripts: "
// Build API reference from XML comments // Build API reference from XML comments

2
docs/tools/templates/template.cshtml

@ -37,7 +37,7 @@
<script type="text/javascript" src="@Root/content/tips.js"></script> <script type="text/javascript" src="@Root/content/tips.js"></script>
<!-- HTML5 shim, for IE6-8 support of HTML5 elements --> <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js"></script> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<![endif]--> <![endif]-->
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

Loading…
Cancel
Save