Add fsc to distribution (#6508)
* Add fsc to distribution * update package * Update compiler version * I'm not sure these do anything usefull * Reenable f# new project tests * Revert "Reenable f# new project tests" This reverts commit 34d294ec8c42145cf8cf0af166f9dfc8ee51b6f8. * merge * Update fsharp version * Update compiler version * Review feedback * review feedback * Update DependencyVersions.props
This commit is contained in:
parent
947c8daabc
commit
cf9967bcd2
15 changed files with 134 additions and 192 deletions
|
@ -1,20 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
|
|
||||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>a666217d-2aca-4866-b109-ea476e51c7aa</ProjectGuid>
|
|
||||||
<RootNamespace>FSharpTestApp</RootNamespace>
|
|
||||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
|
||||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
|
|
||||||
</Project>
|
|
|
@ -1,16 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
|
||||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
||||||
|
|
||||||
namespace TestApp
|
|
||||||
|
|
||||||
open System
|
|
||||||
open System.Diagnostics
|
|
||||||
|
|
||||||
module Program =
|
|
||||||
|
|
||||||
open TestLibrary
|
|
||||||
|
|
||||||
[<EntryPoint>]
|
|
||||||
let Main (args: string array) =
|
|
||||||
printfn "%s" (TestLibrary.Helper.GetMessage())
|
|
||||||
0
|
|
|
@ -1,48 +0,0 @@
|
||||||
{
|
|
||||||
"version": "1.0.0-*",
|
|
||||||
"buildOptions": {
|
|
||||||
"emitEntryPoint": true,
|
|
||||||
"compilerName": "fsc",
|
|
||||||
"compile": {
|
|
||||||
"includeFiles": [
|
|
||||||
"Program.fs"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"TestLibrary": {
|
|
||||||
"version": "1.0.0-*",
|
|
||||||
"target": "project"
|
|
||||||
},
|
|
||||||
"Microsoft.NETCore.App": "1.1.0",
|
|
||||||
"Microsoft.FSharp.Core.netcore": "1.0.0-alpha-160509"
|
|
||||||
},
|
|
||||||
"tools": {
|
|
||||||
"dotnet-compile-fsc": {
|
|
||||||
"version": "1.0.0-preview2-*",
|
|
||||||
"imports": [
|
|
||||||
"dnxcore50",
|
|
||||||
"portable-net45+win81",
|
|
||||||
"netstandard1.3"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"frameworks": {
|
|
||||||
"netcoreapp1.1": {
|
|
||||||
"imports": "dnxcore50"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"runtimes": {
|
|
||||||
"win7-x64": {},
|
|
||||||
"win7-x86": {},
|
|
||||||
"osx.10.10-x64": {},
|
|
||||||
"osx.10.11-x64": {},
|
|
||||||
"ubuntu.14.04-x64": {},
|
|
||||||
"ubuntu.16.04-x64": {},
|
|
||||||
"centos.7-x64": {},
|
|
||||||
"rhel.7.2-x64": {},
|
|
||||||
"debian.8-x64": {},
|
|
||||||
"fedora.23-x64": {},
|
|
||||||
"opensuse.13.2-x64": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
|
|
||||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>ec801982-096b-4af3-a42b-7881b1a7380e</ProjectGuid>
|
|
||||||
<RootNamespace>FSharpTestLibrary</RootNamespace>
|
|
||||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
|
||||||
<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
|
|
||||||
</Project>
|
|
|
@ -1,12 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
|
||||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
||||||
|
|
||||||
namespace TestLibrary
|
|
||||||
|
|
||||||
open Lib
|
|
||||||
|
|
||||||
type Helper() =
|
|
||||||
|
|
||||||
static member GetMessage () = Lib.message ()
|
|
||||||
|
|
||||||
static member SayHi () = Lib.sayHi ()
|
|
|
@ -1,12 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
|
||||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
||||||
|
|
||||||
module Lib
|
|
||||||
|
|
||||||
open System
|
|
||||||
|
|
||||||
let message () =
|
|
||||||
"This string came from the test library!"
|
|
||||||
|
|
||||||
let sayHi () =
|
|
||||||
Console.WriteLine("Hello there!")
|
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
"version": "1.0.0-*",
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.FSharp.Core.netcore": "1.0.0-alpha-160509",
|
|
||||||
"NETStandard.Library": "1.6.0"
|
|
||||||
},
|
|
||||||
"tools": {
|
|
||||||
"dotnet-compile-fsc": {
|
|
||||||
"version": "1.0.0-preview2-*",
|
|
||||||
"imports": [
|
|
||||||
"dnxcore50",
|
|
||||||
"portable-net45+win81",
|
|
||||||
"netstandard1.3"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"frameworks": {
|
|
||||||
"netcoreapp1.0": {
|
|
||||||
"imports": "dnxcore50"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"buildOptions": {
|
|
||||||
"compilerName": "fsc",
|
|
||||||
"compile": {
|
|
||||||
"includeFiles": [
|
|
||||||
"Helper2.fs",
|
|
||||||
"Helper.fs"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -4,6 +4,7 @@
|
||||||
<CLI_SharedFrameworkVersion>2.0.0-preview2-25319-02</CLI_SharedFrameworkVersion>
|
<CLI_SharedFrameworkVersion>2.0.0-preview2-25319-02</CLI_SharedFrameworkVersion>
|
||||||
<CLI_MSBuild_Version>15.3.0-preview-000234-01</CLI_MSBuild_Version>
|
<CLI_MSBuild_Version>15.3.0-preview-000234-01</CLI_MSBuild_Version>
|
||||||
<CLI_Roslyn_Version>2.0.0-rc4-61325-08</CLI_Roslyn_Version>
|
<CLI_Roslyn_Version>2.0.0-rc4-61325-08</CLI_Roslyn_Version>
|
||||||
|
<CLI_FSharp_Version>1.0.0-rc-170511-0</CLI_FSharp_Version>
|
||||||
<CLI_NETSDK_Version>2.0.0-preview2-20170506-1</CLI_NETSDK_Version>
|
<CLI_NETSDK_Version>2.0.0-preview2-20170506-1</CLI_NETSDK_Version>
|
||||||
<CLI_NuGet_Version>4.3.0-preview1-2500</CLI_NuGet_Version>
|
<CLI_NuGet_Version>4.3.0-preview1-2500</CLI_NuGet_Version>
|
||||||
<CLI_WEBSDK_Version>1.0.0-rel-20170501-473</CLI_WEBSDK_Version>
|
<CLI_WEBSDK_Version>1.0.0-rel-20170501-473</CLI_WEBSDK_Version>
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
<SdkOutputDirectory>$(OutputDirectory)/sdk/$(SdkVersion)</SdkOutputDirectory>
|
<SdkOutputDirectory>$(OutputDirectory)/sdk/$(SdkVersion)</SdkOutputDirectory>
|
||||||
<SymbolsDirectory>$(BaseOutputDirectory)/stage2symbols</SymbolsDirectory>
|
<SymbolsDirectory>$(BaseOutputDirectory)/stage2symbols</SymbolsDirectory>
|
||||||
<RoslynDirectory>$(SdkOutputDirectory)/Roslyn</RoslynDirectory>
|
<RoslynDirectory>$(SdkOutputDirectory)/Roslyn</RoslynDirectory>
|
||||||
|
<FSharpDirectory>$(SdkOutputDirectory)/FSharp</FSharpDirectory>
|
||||||
<CompilationDirectory>$(BaseOutputDirectory)/stage2compilation</CompilationDirectory>
|
<CompilationDirectory>$(BaseOutputDirectory)/stage2compilation</CompilationDirectory>
|
||||||
<IntermediateDirectory>$(BaseOutputDirectory)/intermediate</IntermediateDirectory>
|
<IntermediateDirectory>$(BaseOutputDirectory)/intermediate</IntermediateDirectory>
|
||||||
<PackagesDirectory>$(BaseOutputDirectory)/packages</PackagesDirectory>
|
<PackagesDirectory>$(BaseOutputDirectory)/packages</PackagesDirectory>
|
||||||
|
|
|
@ -70,6 +70,14 @@
|
||||||
ProjectPath="$(SrcDirectory)/tool_roslyn/tool_roslyn.csproj" />
|
ProjectPath="$(SrcDirectory)/tool_roslyn/tool_roslyn.csproj" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="PublishFSharp"
|
||||||
|
BeforeTargets="Publish">
|
||||||
|
|
||||||
|
<DotNetPublish ToolPath="$(Stage0Directory)"
|
||||||
|
Configuration="$(Configuration)"
|
||||||
|
ProjectPath="$(SrcDirectory)/tool_fsharp/tool_fsc.csproj" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
<Target Name="GenerateCliRuntimeConfigurationFiles"
|
<Target Name="GenerateCliRuntimeConfigurationFiles"
|
||||||
AfterTargets="Publish">
|
AfterTargets="Publish">
|
||||||
<RemoveAssetFromDepsPackages DepsFile="$(PublishDir)/$(TargetName).deps.json"
|
<RemoveAssetFromDepsPackages DepsFile="$(PublishDir)/$(TargetName).deps.json"
|
||||||
|
|
6
src/tool_fsharp/RunFsc.cmd
Normal file
6
src/tool_fsharp/RunFsc.cmd
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
REM Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
|
REM Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
"%~dp0..\..\..\dotnet" "%~dp0fsc.exe" %*
|
17
src/tool_fsharp/RunFsc.sh
Normal file
17
src/tool_fsharp/RunFsc.sh
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
|
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
#
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SOURCE="${BASH_SOURCE[0]}"
|
||||||
|
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||||
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||||
|
SOURCE="$(readlink "$SOURCE")"
|
||||||
|
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||||
|
done
|
||||||
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||||
|
|
||||||
|
"$DIR/../../../dotnet" "$DIR/fsc.exe" "$@"
|
67
src/tool_fsharp/tool_fsc.csproj
Normal file
67
src/tool_fsharp/tool_fsc.csproj
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
|
||||||
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.tasks" />
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<VersionPrefix>$(CliVersionPrefix)</VersionPrefix>
|
||||||
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
|
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
|
||||||
|
<PublishDir>$(FSharpDirectory)</PublishDir>
|
||||||
|
<VersionSuffix>$(CommitCount)</VersionSuffix>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NetCore.App" Version="$(CLI_SharedFrameworkVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.FSharp.Core.netcore" Version="$(CLI_FSharp_Version)" />
|
||||||
|
<PackageReference Include="Microsoft.FSharp.Compiler.netcore" Version="$(CLI_FSharp_Version)" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="RunFsc.sh;RunFsc.cmd">
|
||||||
|
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||||
|
</Content>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<Target Name="MakeFscRunnableAndMoveToPublishDir"
|
||||||
|
AfterTargets="Publish"
|
||||||
|
BeforeTargets="RemoveFilesAfterPublish">
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<AssetsToRemoveFromDeps Include="tool_fsc.dll"
|
||||||
|
SectionName="runtime"/>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<RemoveAssetFromDepsPackages DepsFile="$(PublishDir)/$(TargetName).deps.json"
|
||||||
|
SectionName="%(AssetsToRemoveFromDeps.SectionName)"
|
||||||
|
AssetPath="%(AssetsToRemoveFromDeps.Identity)" />
|
||||||
|
|
||||||
|
<Copy SourceFiles="$(PublishDir)/runtimes/any/native/default.win32manifest;
|
||||||
|
$(PublishDir)/runtimes/any/native/Microsoft.FSharp.Targets;
|
||||||
|
$(PublishDir)/runtimes/any/native/Microsoft.Portable.FSharp.Targets;
|
||||||
|
$(PublishDir)/runtimes/any/native/Microsoft.FSharp.NetSdk.props;
|
||||||
|
$(PublishDir)/runtimes/any/native/Microsoft.FSharp.NetSdk.targets;
|
||||||
|
$(PublishDir)/runtimes/any/native/FSharp.Core.optdata;
|
||||||
|
$(PublishDir)/runtimes/any/native/FSharp.Core.sigdata;
|
||||||
|
$(PublishDir)/runtimes/any/native/FSharp.Core.xml;
|
||||||
|
$(PublishDir)/$(TargetName).runtimeconfig.json;
|
||||||
|
$(PublishDir)/$(TargetName).deps.json;"
|
||||||
|
DestinationFiles="$(PublishDir)/default.win32manifest;
|
||||||
|
$(PublishDir)/Microsoft.FSharp.Targets;
|
||||||
|
$(PublishDir)/Microsoft.Portable.FSharp.Targets;
|
||||||
|
$(PublishDir)/Microsoft.FSharp.NetSdk.props;
|
||||||
|
$(PublishDir)/Microsoft.FSharp.NetSdk.targets;
|
||||||
|
$(PublishDir)/FSharp.Core.optdata;
|
||||||
|
$(PublishDir)/FSharp.Core.sigdata;
|
||||||
|
$(PublishDir)/FSharp.Core.xml;
|
||||||
|
$(PublishDir)/fsc.runtimeconfig.json;
|
||||||
|
$(PublishDir)/fsc.deps.json;"/>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="RemoveFilesAfterPublish"
|
||||||
|
AfterTargets="Publish">
|
||||||
|
<Delete Files="$(PublishDir)/$(TargetName).dll" />
|
||||||
|
<Delete Files="$(PublishDir)/$(TargetName).pdb" />
|
||||||
|
<Delete Files="$(PublishDir)/$(TargetName).runtimeconfig.json" />
|
||||||
|
<Delete Files="$(PublishDir)/$(TargetName).deps.json" />
|
||||||
|
</Target>
|
||||||
|
</Project>
|
Loading…
Reference in a new issue