diff --git a/build.fsx b/build.fsx
index 0928d0f036..1f5fd1d832 100644
--- a/build.fsx
+++ b/build.fsx
@@ -1,12 +1,12 @@
// --------------------------------------------------------------------------------------
-// FAKE build script
+// FAKE build script
// --------------------------------------------------------------------------------------
#I "packages/FAKE/tools"
#r "packages/FAKE/tools/FakeLib.dll"
#load "packages/SourceLink.Fake/tools/SourceLink.fsx"
open System
-open Fake
+open Fake
open Fake.Git
open Fake.ReleaseNotesHelper
open Fake.AssemblyInfoFile
@@ -22,8 +22,9 @@ let summary = "F# compiler services for creating IDE tools, language extensions
let description = """
The F# compiler services package contains a custom build of the F# compiler that
exposes additional functionality for implementing F# language bindings, additional
- tools based on the compiler or refactoring tools. The package also includes F#
+ tools based on the compiler or refactoring tools. The package also includes F#
interactive service that can be used for embedding F# scripting into your applications."""
+let standalone = "This is a standalone version of the package that bundles MSBUILD assemblies."
let tags = "F# fsharp interactive compiler editor"
let gitHome = "https://github.com/fsharp"
@@ -31,15 +32,18 @@ let gitName = "FSharp.Compiler.Service"
let gitRaw = environVarOrDefault "gitRaw" "https://raw.githubusercontent.com/fsharp"
let netFrameworks = ["v4.0"; "v4.5"]
+let nugetPackages =
+ [ "FSharp.Compiler.Service", summary, description
+ "FSharp.Compiler.Service.Standalone", summary + standalone, description + standalone]
// --------------------------------------------------------------------------------------
-// The rest of the code is standard F# build script
+// The rest of the code is standard F# build script
// --------------------------------------------------------------------------------------
// Read release notes & version info from RELEASE_NOTES.md
let release = LoadReleaseNotes "RELEASE_NOTES.md"
let isAppVeyorBuild = environVar "APPVEYOR" <> null
-let nugetVersion =
+let nugetVersion =
if isAppVeyorBuild then sprintf "%s-a%s" release.NugetVersion (DateTime.UtcNow.ToString "yyMMddHHmm")
else release.NugetVersion
@@ -52,7 +56,7 @@ Target "AssemblyInfo" (fun _ ->
let fileName = "src/assemblyinfo/assemblyinfo.shared.fs"
CreateFSharpAssemblyInfo fileName
[ Attribute.Version release.AssemblyVersion
- Attribute.FileVersion release.AssemblyVersion]
+ Attribute.FileVersion release.AssemblyVersion]
)
// --------------------------------------------------------------------------------------
@@ -71,9 +75,9 @@ Target "CleanDocs" (fun _ ->
// --------------------------------------------------------------------------------------
// Build library & test project
-Target "GenerateFSIStrings" (fun _ ->
+Target "GenerateFSIStrings" (fun _ ->
// Generate FSIStrings using the FSSrGen tool
- execProcess (fun p ->
+ execProcess (fun p ->
let dir = __SOURCE_DIRECTORY__ @@ "src/fsharp/fsi"
p.Arguments <- "FSIstrings.txt FSIstrings.fs FSIstrings.resx"
p.WorkingDirectory <- dir
@@ -83,7 +87,7 @@ Target "GenerateFSIStrings" (fun _ ->
Target "Build" (fun _ ->
netFrameworks
- |> List.iter (fun framework ->
+ |> List.iter (fun framework ->
let outputPath = "bin/" + framework
!! (project + ".sln")
|> MSBuild outputPath "Build" ["Configuration","Release"; "TargetFrameworkVersion", framework]
@@ -95,13 +99,13 @@ Target "SourceLink" (fun _ ->
()
#else
netFrameworks
- |> List.iter (fun framework ->
+ |> List.iter (fun framework ->
let f = !! "src/fsharp/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj" |> Seq.head
use repo = new GitRepo(__SOURCE_DIRECTORY__)
let outputPath = __SOURCE_DIRECTORY__ @@ "bin/" + framework
let proj = VsProj.Load f ["Configuration","Release"; "TargetFrameworkVersion",framework; "OutputPath",outputPath]
logfn "indexing %s" proj.OutputFilePdb
- let compiles = proj.Compiles.SetBaseDirectory __SOURCE_DIRECTORY__
+ let compiles = proj.Compiles.SetBaseDirectory __SOURCE_DIRECTORY__
let gitFiles =
compiles
-- "src/assemblyinfo/assemblyinfo*.fs" // not source indexed
@@ -111,7 +115,7 @@ Target "SourceLink" (fun _ ->
-- "src/fsharp/FSharp.Compiler.Service/lex.fs"
-- "src/fsharp/FSharp.Compiler.Service/pars.fs"
repo.VerifyChecksums gitFiles
- let pdbFiles =
+ let pdbFiles =
compiles
// generated, not in the fsproj as Compile, not source indexed
++ "src/absil/illex.fsl"
@@ -131,7 +135,7 @@ Target "SourceLink" (fun _ ->
// Run the unit tests using test runner
Target "RunTests" (fun _ ->
- !! (if isAppVeyorBuild then "./bin/v4.5/FSharp.Compiler.Service.Tests.dll"
+ !! (if isAppVeyorBuild then "./bin/v4.5/FSharp.Compiler.Service.Tests.dll"
else "./bin/**/FSharp.Compiler.Service.Tests.dll")
|> NUnit (fun p ->
{ p with
@@ -145,19 +149,20 @@ Target "RunTests" (fun _ ->
// Build a NuGet package
Target "NuGet" (fun _ ->
- NuGet (fun p ->
- { p with
- Authors = authors
- Project = project
- Summary = summary
- Description = description
- Version = nugetVersion
- ReleaseNotes = release.Notes |> toLines
- Tags = tags
- OutputPath = "bin"
- AccessKey = getBuildParamOrDefault "nugetkey" ""
- Publish = hasBuildParam "nugetkey" })
- ("nuget/" + project + ".nuspec")
+ for package, summary, description in nugetPackages do
+ NuGet (fun p ->
+ { p with
+ Authors = authors
+ Project = project
+ Summary = summary
+ Description = description
+ Version = nugetVersion
+ ReleaseNotes = release.Notes |> toLines
+ Tags = tags
+ OutputPath = "bin"
+ AccessKey = getBuildParamOrDefault "nugetkey" ""
+ Publish = hasBuildParam "nugetkey" })
+ ("nuget/" + package + ".nuspec")
)
// --------------------------------------------------------------------------------------
@@ -176,7 +181,7 @@ Target "GenerateDocsJa" (fun _ ->
Target "ReleaseDocs" (fun _ ->
let tempDocsDir = "temp/gh-pages"
- if not (System.IO.Directory.Exists tempDocsDir) then
+ if not (System.IO.Directory.Exists tempDocsDir) then
Repository.cloneSingleBranch "" (gitHome + "/" + gitName + ".git") "gh-pages" tempDocsDir
fullclean tempDocsDir
@@ -206,7 +211,7 @@ Target "All" DoNothing
==> "All"
"All"
- ==> "PrepareRelease"
+ ==> "PrepareRelease"
==> "SourceLink"
==> "NuGet"
==> "Release"
diff --git a/nuget/FSharp.Compiler.Service.Standalone.nuspec b/nuget/FSharp.Compiler.Service.Standalone.nuspec
new file mode 100644
index 0000000000..e6a6be105e
--- /dev/null
+++ b/nuget/FSharp.Compiler.Service.Standalone.nuspec
@@ -0,0 +1,39 @@
+
+
+
+ @project@
+ @build.number@
+ @authors@
+ @authors@
+ https://github.com/fsharp/FSharp.Compiler.Service/blob/master/LICENSE
+ https://github.com/fsharp/FSharp.Compiler.Service
+ https://raw.github.com/fsharp/FSharp.Compiler.Service/master/misc/logo.png
+ false
+ @summary@
+ @description@
+ @releaseNotes@
+ Copyright 2013
+ @tags@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/nuget/FSharp.Compiler.Service.nuspec b/nuget/FSharp.Compiler.Service.nuspec
index 861427cefb..eedcfdbd87 100644
--- a/nuget/FSharp.Compiler.Service.nuspec
+++ b/nuget/FSharp.Compiler.Service.nuspec
@@ -22,5 +22,5 @@
-
-
\ No newline at end of file
+
+
diff --git a/src/fsharp/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj b/src/fsharp/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
index cfce6b5912..98395263f8 100644
--- a/src/fsharp/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
+++ b/src/fsharp/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
@@ -1,10 +1,10 @@
-
+