modified readme and added missing files

This commit is contained in:
emmaus 2018-06-16 15:49:03 +00:00
parent f309876d16
commit a8696f0664
4 changed files with 53 additions and 7 deletions

View file

@ -1,7 +1,7 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14 # Visual Studio 15
VisualStudioVersion = 14.0.25123.0 VisualStudioVersion = 15.0.27703.2000
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generator.Bind", "src\Generator.Bind\Generator.Bind.csproj", "{31D19132-0000-0000-0000-000000000000}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generator.Bind", "src\Generator.Bind\Generator.Bind.csproj", "{31D19132-0000-0000-0000-000000000000}"
EndProject EndProject
@ -29,10 +29,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{F1A570
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "project", "project", "{5EEEC96B-BD2F-45B0-935D-19E9E6D7D969}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "project", "project", "{5EEEC96B-BD2F-45B0-935D-19E9E6D7D969}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
.gitignore = .gitignore
build.fsx = build.fsx build.fsx = build.fsx
README.md = README.md README.md = README.md
RELEASE_NOTES.md = RELEASE_NOTES.md RELEASE_NOTES.md = RELEASE_NOTES.md
.gitignore = .gitignore
EndProjectSection EndProjectSection
EndProject EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "OpenTK.Tests", "tests\OpenTK.Tests\OpenTK.Tests.fsproj", "{6801C263-ADDA-4A7B-979D-649BCB5A1DF7}" Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "OpenTK.Tests", "tests\OpenTK.Tests\OpenTK.Tests.fsproj", "{6801C263-ADDA-4A7B-979D-649BCB5A1DF7}"
@ -43,6 +43,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTK.Tests.Math", "tests\
EndProject EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "OpenTK.Tests.Generators", "tests\OpenTK.Tests.Generators\OpenTK.Tests.Generators.fsproj", "{2B11AAEB-D8AC-4356-938F-532D720E0C30}" Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "OpenTK.Tests.Generators", "tests\OpenTK.Tests.Generators\OpenTK.Tests.Generators.fsproj", "{2B11AAEB-D8AC-4356-938F-532D720E0C30}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTK.Standard", "src\OpenTK\OpenTK.Standard.csproj", "{67F02FD3-8F7F-4D89-8551-359993271CA3}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -97,6 +99,10 @@ Global
{2B11AAEB-D8AC-4356-938F-532D720E0C30}.Debug|Any CPU.Build.0 = Debug|Any CPU {2B11AAEB-D8AC-4356-938F-532D720E0C30}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2B11AAEB-D8AC-4356-938F-532D720E0C30}.Release|Any CPU.ActiveCfg = Release|Any CPU {2B11AAEB-D8AC-4356-938F-532D720E0C30}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2B11AAEB-D8AC-4356-938F-532D720E0C30}.Release|Any CPU.Build.0 = Release|Any CPU {2B11AAEB-D8AC-4356-938F-532D720E0C30}.Release|Any CPU.Build.0 = Release|Any CPU
{67F02FD3-8F7F-4D89-8551-359993271CA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{67F02FD3-8F7F-4D89-8551-359993271CA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{67F02FD3-8F7F-4D89-8551-359993271CA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{67F02FD3-8F7F-4D89-8551-359993271CA3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -107,4 +113,7 @@ Global
{C2B07CD9-B388-4FC3-AF31-C648F7EA904E} = {1857BB8E-1A35-4EBF-9F6D-685F11DC025B} {C2B07CD9-B388-4FC3-AF31-C648F7EA904E} = {1857BB8E-1A35-4EBF-9F6D-685F11DC025B}
{2B11AAEB-D8AC-4356-938F-532D720E0C30} = {1857BB8E-1A35-4EBF-9F6D-685F11DC025B} {2B11AAEB-D8AC-4356-938F-532D720E0C30} = {1857BB8E-1A35-4EBF-9F6D-685F11DC025B}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CFF5ADCD-8B5E-4C07-ACCA-304C81D4D839}
EndGlobalSection
EndGlobal EndGlobal

View file

@ -59,8 +59,8 @@ cd opentk # Enter the source directory
./build.sh # Build on Mono (Linux / Mac OS X) ./build.sh # Build on Mono (Linux / Mac OS X)
``` ```
After this is done at least once, you can build OpenTK normally through After this is done at least once, you can build OpenTK.Standard project normally through
your IDE. your IDE. This fork is only for building opentk for .Net Standard, and not for .Net Framework.
News News
==== ====

View file

@ -35,5 +35,12 @@ namespace OpenTK.Rewrite
[Option("dllimport", Default = false, [Option("dllimport", Default = false,
HelpText = "Force native calls to use DllImport instead of GetProcAddress.")] HelpText = "Force native calls to use DllImport instead of GetProcAddress.")]
public bool UseDLLImport { get; set; } public bool UseDLLImport { get; set; }
/// <summary>
/// Toggles rewriting for NetStandard.
/// </summary>
[Option('n', "netstandard", Default = false,
HelpText = "Toggles rewriting for NetStandard.")]
public bool IsNetStandard { get; set; }
} }
} }

View file

@ -55,6 +55,8 @@ namespace OpenTK.Rewrite
program.Rewrite(); program.Rewrite();
} }
private static string GetCoreAssemblyName() => Options.IsNetStandard ? "netstandard" : "mscorlib";
// mscorlib types // mscorlib types
private static AssemblyDefinition mscorlib; private static AssemblyDefinition mscorlib;
@ -93,6 +95,21 @@ namespace OpenTK.Rewrite
Console.Error.WriteLine("No keyfile specified or keyfile missing."); Console.Error.WriteLine("No keyfile specified or keyfile missing.");
} }
if (Options.IsNetStandard)
{
DefaultAssemblyResolver resolver = new DefaultAssemblyResolver();
string searchPath = GetNetstandardRefPath();
if (!Directory.Exists(searchPath))
{
Console.Error.WriteLine(
"Could not locate .NET Standard reference assemblies. This is necessary for binary rewriting to proceed.");
return;
}
resolver.AddSearchDirectory(searchPath);
read_params.AssemblyResolver = resolver;
}
// Load assembly and process all modules // Load assembly and process all modules
try try
{ {
@ -108,7 +125,7 @@ namespace OpenTK.Rewrite
try try
{ {
var resolved = module.AssemblyResolver.Resolve(reference); var resolved = module.AssemblyResolver.Resolve(reference);
if (reference.Name == "mscorlib") if (reference.Name == GetCoreAssemblyName())
{ {
mscorlib = resolved; mscorlib = resolved;
} }
@ -122,7 +139,7 @@ namespace OpenTK.Rewrite
if (mscorlib == null) if (mscorlib == null)
{ {
Console.Error.WriteLine("Failed to locate mscorlib"); Console.Error.WriteLine("Failed to locate " + GetCoreAssemblyName());
return; return;
} }
TypeMarshal = mscorlib.MainModule.GetType("System.Runtime.InteropServices.Marshal"); TypeMarshal = mscorlib.MainModule.GetType("System.Runtime.InteropServices.Marshal");
@ -1073,5 +1090,18 @@ namespace OpenTK.Rewrite
{ {
il.Emit(OpCodes.Call, reference); il.Emit(OpCodes.Call, reference);
} }
private string GetNetstandardRefPath()
{
return Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
".nuget",
"packages",
"netstandard.library",
"2.0.1",
"build",
"netstandard2.0",
"ref");
}
} }
} }