Consuming Libuv from NuGet package

Fixes #50
This commit is contained in:
moozzyk 2015-09-26 15:04:45 -07:00
parent e3f141fcde
commit d2f282f54f
11 changed files with 126 additions and 12 deletions

1
.gitignore vendored
View File

@ -26,3 +26,4 @@ nuget.exe
*.*sdf
*.ipch
project.lock.json
runtimes/

View File

@ -31,6 +31,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{327F7880
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.StandardsPolice", "tools\Microsoft.StandardsPolice\Microsoft.StandardsPolice.xproj", "{82295647-7C1C-4671-BAB6-0FEF58F949EC}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Server.Kestrel.LibuvCopier", "tools\Microsoft.AspNet.Server.Kestrel.LibuvCopier\Microsoft.AspNet.Server.Kestrel.LibuvCopier.xproj", "{8CBA6FE3-3CC9-4420-8AA3-123E983734C2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -61,6 +63,10 @@ Global
{82295647-7C1C-4671-BAB6-0FEF58F949EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82295647-7C1C-4671-BAB6-0FEF58F949EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{82295647-7C1C-4671-BAB6-0FEF58F949EC}.Release|Any CPU.Build.0 = Release|Any CPU
{8CBA6FE3-3CC9-4420-8AA3-123E983734C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8CBA6FE3-3CC9-4420-8AA3-123E983734C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8CBA6FE3-3CC9-4420-8AA3-123E983734C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8CBA6FE3-3CC9-4420-8AA3-123E983734C2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -72,5 +78,6 @@ Global
{B35D4D31-E74C-4646-8A11-7A7A40F0021E} = {8A3D00B8-1CCF-4BE6-A060-11104CE2D9CE}
{BD2D4D29-1BD9-40D0-BB31-337D5416B63C} = {327F7880-D9AF-46BD-B45C-3B7E34A01DFD}
{82295647-7C1C-4671-BAB6-0FEF58F949EC} = {327F7880-D9AF-46BD-B45C-3B7E34A01DFD}
{8CBA6FE3-3CC9-4420-8AA3-123E983734C2} = {327F7880-D9AF-46BD-B45C-3B7E34A01DFD}
EndGlobalSection
EndGlobal

View File

@ -34,22 +34,22 @@ namespace Microsoft.AspNet.Server.Kestrel
{
var architecture = IntPtr.Size == 4
? "x86"
: "amd64";
: "x64";
libraryPath = Path.Combine(
libraryPath,
"runtimes",
"win7-" + architecture,
"native",
"windows",
architecture,
"libuv.dll");
}
else if (Libuv.IsDarwin)
{
libraryPath = Path.Combine(
libraryPath,
"runtimes",
"osx",
"native",
"darwin",
"universal",
"libuv.dylib");
}
else

View File

@ -13,6 +13,14 @@
"Microsoft.StandardsPolice": {
"version": "1.0.0-*",
"type": "build"
},
"Microsoft.AspNet.Internal.libuv-Darwin": {
"version": "1.0.0-*",
"type":"build"
},
"Microsoft.AspNet.Internal.libuv-Windows": {
"version": "1.0.0-*",
"type": "build"
}
},
"frameworks": {
@ -44,13 +52,19 @@
"scripts": {
"prepare": [
"dnu restore ../../tools/Microsoft.AspNet.Server.Kestrel.GeneratedCode",
"dnx --appbase ../../tools/Microsoft.AspNet.Server.Kestrel.GeneratedCode Microsoft.Dnx.ApplicationHost run Http/FrameHeaders.Generated.cs"
"dnx -p ../../tools/Microsoft.AspNet.Server.Kestrel.GeneratedCode run Http/FrameHeaders.Generated.cs"
],
"postrestore": [
"dnu restore ../../tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier",
"dnx -p ../../tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier run"
]
},
"packInclude": {
"/": "../../content/thirdpartynotices.txt",
"native/darwin/universal/": "native/darwin/universal/*",
"native/windows/amd64/": "native/windows/amd64/*",
"native/windows/x86/": "native/windows/x86/*"
"runtimes/win7-x64/native/": "runtimes/win7-x64/native/*",
"runtimes/win7-x86/native/": "runtimes/win7-x86/native/*",
"runtimes/win10-arm/native/": "runtimes/win10-arm/native/*",
"runtimes/osx/native/": "runtimes/osx/native/*"
}
}

View File

@ -41,7 +41,7 @@ namespace Microsoft.AspNet.Server.KestrelTests
}
}
[Fact]
[Fact(Skip = "Waiting for adding support for multi loop in libuv")]
public void InitAndCloseServerPipe()
{
var loop = new UvLoopHandle(_logger);
@ -59,7 +59,7 @@ namespace Microsoft.AspNet.Server.KestrelTests
}
[Fact]
[Fact(Skip = "Waiting for adding support for multi loop in libuv")]
public void ServerPipeListenForConnections()
{
var loop = new UvLoopHandle(_logger);
@ -132,7 +132,7 @@ namespace Microsoft.AspNet.Server.KestrelTests
}
[Fact]
[Fact(Skip = "Waiting for adding support for multi loop in libuv")]
public void ServerPipeDispatchConnections()
{
var pipeName = @"\\.\pipe\ServerPipeDispatchConnections" + Guid.NewGuid().ToString("n");

View File

@ -0,0 +1,20 @@
<?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>8cba6fe3-3cc9-4420-8aa3-123e983734c2</ProjectGuid>
<RootNamespace>Microsoft.AspNet.Server.Kestrel.LibuvCopier</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>

View File

@ -0,0 +1,42 @@
using System;
using System.IO;
using System.Linq;
using Newtonsoft.Json.Linq;
namespace Microsoft.AspNet.Server.Kestrel.LibuvCopier
{
public class Program
{
public void Main(string[] args)
{
try
{
var dnxFolder = Environment.GetEnvironmentVariable("DNX_HOME");
if (string.IsNullOrEmpty(dnxFolder))
{
dnxFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".dnx");
}
var lockJson = JObject.Parse(File.ReadAllText("project.lock.json"));
foreach (var libuvLib in lockJson["libraries"].OfType<JProperty>().Where(
p => p.Name.StartsWith("Microsoft.AspNet.Internal.libuv", StringComparison.Ordinal)))
{
foreach (var filePath in libuvLib.Value["files"].Select(v => v.Value<string>()))
{
if (filePath.ToString().StartsWith("runtimes/", StringComparison.Ordinal))
{
Directory.CreateDirectory(Path.GetDirectoryName(filePath));
File.Copy(Path.Combine(dnxFolder, "packages", libuvLib.Name, filePath), filePath, overwrite: true);
}
}
}
}
catch(Exception ex)
{
Console.WriteLine(ex);
throw;
}
}
}
}

View File

@ -0,0 +1,30 @@
{
"version": "1.0.0-*",
"description": "Microsoft.AspNet.Server.Kestrel.LibuvCopier Console Application",
"authors": [ "pawelka" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"dependencies": {
"Newtonsoft.Json" : "7.0.1"
},
"commands": {
"Microsoft.AspNet.Server.Kestrel.LibuvCopier": "Microsoft.AspNet.Server.Kestrel.LibuvCopier"
},
"frameworks": {
"dnx451": { },
"dnxcore50": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23225",
"System.Collections": "4.0.11-beta-23225",
"System.Console": "4.0.0-beta-23225",
"System.Linq": "4.0.1-beta-23225",
"System.Threading": "4.0.11-beta-23225",
"System.IO.FileSystem": "4.0.1-beta-23225"
}
}
}
}