Browse Source

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

Adapt and apply patch from fsprojects/ProjectScaffold#217
pull/362/head
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
*.opensdf
*.cachefile
*.swp
# Upgrades
_UpgradeReport_Files/

42
build.fsx

@ -750,15 +750,41 @@ let provideDocExtraFiles() =
ReadFileAsString fileName ]
|> 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 args = if local then [] else ["--define:RELEASE"]
if executeFSIWithArgs "docs/tools" "build-docs.fsx" args [] then
traceImportant "Docs generated"
else
if fail then
failwith "Generating documentation failed"
else
traceImportant "generating documentation failed"
let args = if local then "" else "--define:RELEASE"
try
buildDocumentationTarget args "Default"
traceImportant "Documentation generated"
with
| e when not fail ->
failwith "Generating documentation failed"
Target "Docs" (fun _ ->
provideDocExtraFiles ()

2
docs/tools/build-docs.fsx

@ -60,7 +60,7 @@ let layoutRoots =
let copyFiles() =
CopyRecursive files output true |> Log "Copying file: "
ensureDirectory (output @@ "content")
CopyRecursive (formatting @@ "styles") (output @@ "content") true
CopyRecursive (formatting @@ "styles") (output @@ "content") true
|> Log "Copying styles and scripts: "
// 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>
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[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]-->
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

Loading…
Cancel
Save