From 0c4d525eb8f5caec6e32c5713cb4268e46bb8eb8 Mon Sep 17 00:00:00 2001 From: Kenneth Pouncey Date: Wed, 16 Jan 2019 05:40:37 -0500 Subject: [PATCH] [wasm] Build target fixes (#12418) - Add linker xml descriptor to WebAssembly.Bindings and WebAssembly.Net.Http - The XML linker descriptor will keep the full assembly for these assemblies during link. - Fix Link Assemblies command line. - Miscellaneous fixes for how the assemblies are linked whether they are framework or facades. - Add the Facades directory to the resolve paths. --- sdks/wasm/Makefile | 8 +++++++- sdks/wasm/framework/.gitignore | 4 +++- .../WebAssembly.Bindings/LinkDescriptor/WebAssembly.Bindings.xml | 7 +++++++ .../src/WebAssembly.Bindings/WebAssembly.Bindings.csproj | 8 ++++++++ .../WebAssembly.Net.Http/LinkDescriptor/WebAssembly.Net.Http.xml | 7 +++++++ .../src/WebAssembly.Net.Http/WebAssembly.Net.Http.csproj | 9 +++++++++ sdks/wasm/sdk/Mono.WebAssembly.Build/WasmLinkAssemblies.cs | 5 ++++- .../WebAssembly.Net.Http.Framework/WebAssembly.Net.Http.csproj | 3 +++ 8 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 sdks/wasm/framework/src/WebAssembly.Bindings/LinkDescriptor/WebAssembly.Bindings.xml create mode 100644 sdks/wasm/framework/src/WebAssembly.Net.Http/LinkDescriptor/WebAssembly.Net.Http.xml diff --git a/sdks/wasm/Makefile b/sdks/wasm/Makefile index b59c32b29db..479c07eb56c 100644 --- a/sdks/wasm/Makefile +++ b/sdks/wasm/Makefile @@ -268,14 +268,16 @@ clean: $(RM) -r binding-tests.dll $(RM) -r sdk/**/bin $(RM) -r sdk/**/obj + $(RM) -r sdk/**/**/bin + $(RM) -r sdk/**/**/obj $(RM) -r sdk/packages $(RM) -r $(WASM_FRAMEWORK)/.stamp-framework + $(RM) -r $(WASM_FRAMEWORK)/netstandard2.0 $(RM) $(WASM_FRAMEWORK)/WebAssembly.Bindings.dll $(RM) $(WASM_FRAMEWORK)/WebAssembly.Bindings.pdb $(RM) $(WASM_FRAMEWORK)/WebAssembly.Net.Http.dll $(RM) $(WASM_FRAMEWORK)/WebAssembly.Net.Http.pdb - package: build build-dbg-proxy rm -rf tmp mkdir tmp @@ -329,3 +331,7 @@ canary: /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --remote-debugging-port=9222 check-aot: do-aot-sample + +build-sdk: $(WASM_FRAMEWORK)/.stamp-framework + msbuild /r sdk/Mono.WebAssembly.Sdk + msbuild /r sdk \ No newline at end of file diff --git a/sdks/wasm/framework/.gitignore b/sdks/wasm/framework/.gitignore index 17acd0fab4b..1a2fc3d4db6 100644 --- a/sdks/wasm/framework/.gitignore +++ b/sdks/wasm/framework/.gitignore @@ -1,2 +1,4 @@ *.xml -*.json \ No newline at end of file +*.json +!src/WebAssembly.Bindings/LinkDescriptor/* +!src/WebAssembly.Net.Http/LinkDescriptor/* \ No newline at end of file diff --git a/sdks/wasm/framework/src/WebAssembly.Bindings/LinkDescriptor/WebAssembly.Bindings.xml b/sdks/wasm/framework/src/WebAssembly.Bindings/LinkDescriptor/WebAssembly.Bindings.xml new file mode 100644 index 00000000000..3279e37a7e5 --- /dev/null +++ b/sdks/wasm/framework/src/WebAssembly.Bindings/LinkDescriptor/WebAssembly.Bindings.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/sdks/wasm/framework/src/WebAssembly.Bindings/WebAssembly.Bindings.csproj b/sdks/wasm/framework/src/WebAssembly.Bindings/WebAssembly.Bindings.csproj index 823cb633f73..de07e0f3ff8 100644 --- a/sdks/wasm/framework/src/WebAssembly.Bindings/WebAssembly.Bindings.csproj +++ b/sdks/wasm/framework/src/WebAssembly.Bindings/WebAssembly.Bindings.csproj @@ -15,4 +15,12 @@ ..\..\ ..\..\netstandard2.0\WebAssembly.Bindings.xml + + + + + + WebAssembly.Bindings.xml + + diff --git a/sdks/wasm/framework/src/WebAssembly.Net.Http/LinkDescriptor/WebAssembly.Net.Http.xml b/sdks/wasm/framework/src/WebAssembly.Net.Http/LinkDescriptor/WebAssembly.Net.Http.xml new file mode 100644 index 00000000000..b7f3db84b8b --- /dev/null +++ b/sdks/wasm/framework/src/WebAssembly.Net.Http/LinkDescriptor/WebAssembly.Net.Http.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/sdks/wasm/framework/src/WebAssembly.Net.Http/WebAssembly.Net.Http.csproj b/sdks/wasm/framework/src/WebAssembly.Net.Http/WebAssembly.Net.Http.csproj index 9f5353b75ec..c5b7e053fea 100644 --- a/sdks/wasm/framework/src/WebAssembly.Net.Http/WebAssembly.Net.Http.csproj +++ b/sdks/wasm/framework/src/WebAssembly.Net.Http/WebAssembly.Net.Http.csproj @@ -18,4 +18,13 @@ + + + + + + WebAssembly.Net.Http.xml + + + diff --git a/sdks/wasm/sdk/Mono.WebAssembly.Build/WasmLinkAssemblies.cs b/sdks/wasm/sdk/Mono.WebAssembly.Build/WasmLinkAssemblies.cs index b2b19dc9e5f..d796687a9a2 100644 --- a/sdks/wasm/sdk/Mono.WebAssembly.Build/WasmLinkAssemblies.cs +++ b/sdks/wasm/sdk/Mono.WebAssembly.Build/WasmLinkAssemblies.cs @@ -118,7 +118,7 @@ namespace Mono.WebAssembly.Build sb.AppendFormat (" -c {0} -u {1}", coremode, usermode); //the linker doesn't consider these core by default - sb.AppendFormat (" -p {0} netstandard -p {1} WebAssembly.Bindings -p {1} WebAssembly.Net.Http", coremode, usermode); + sb.AppendFormat (" -p {0} netstandard -p {0} WebAssembly.Bindings -p {0} WebAssembly.Net.Http", coremode); if (!string.IsNullOrEmpty (LinkSkip)) { var skips = LinkSkip.Split (new[] { ';', ',', ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); @@ -129,6 +129,7 @@ namespace Mono.WebAssembly.Build sb.AppendFormat (" -out \"{0}\"", OutputDir); sb.AppendFormat (" -d \"{0}\"", FrameworkDir); + sb.AppendFormat (" -d \"{0}\"", Path.Combine(FrameworkDir, "Facades")); sb.AppendFormat (" -b {0} -v {0}", Debug); sb.AppendFormat (" -a \"{0}\"", RootAssembly[0].GetMetadata("FullPath")); @@ -146,10 +147,12 @@ namespace Mono.WebAssembly.Build //add references for non-framework assemblies if (Assemblies != null) { foreach (var asm in Assemblies) { + var p = asm.GetMetadata ("FullPath"); if (frameworkAssemblies.Contains(Path.GetFileNameWithoutExtension(p))) { continue; } + sb.AppendFormat (" -r \"{0}\"", p); } } diff --git a/sdks/wasm/sdk/WebAssembly.Net.Http.Framework/WebAssembly.Net.Http.csproj b/sdks/wasm/sdk/WebAssembly.Net.Http.Framework/WebAssembly.Net.Http.csproj index 4ec2e262d27..09cff606e40 100644 --- a/sdks/wasm/sdk/WebAssembly.Net.Http.Framework/WebAssembly.Net.Http.csproj +++ b/sdks/wasm/sdk/WebAssembly.Net.Http.Framework/WebAssembly.Net.Http.csproj @@ -10,4 +10,7 @@ + + + \ No newline at end of file -- 2.11.4.GIT