Skip to content

Commit

Permalink
Fix binplacing WASM files for in-tree runtime pack
Browse files Browse the repository at this point in the history
It got broken by dotnet#36781.
  • Loading branch information
akoeplinger committed May 25, 2020
1 parent d0e2281 commit b6cad58
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 20 deletions.
9 changes: 6 additions & 3 deletions eng/liveBuilds.targets
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@
$(LibrariesAllBinArtifactsPath)*.dll;
$(LibrariesAllBinArtifactsPath)*.pdb"
IsNative="" />
<LibrariesRuntimeFiles Condition="'$(TargetsMobile)' != 'true'" Include="
<LibrariesRuntimeFiles Include="
$(LibrariesNativeArtifactsPath)*.dll;
$(LibrariesNativeArtifactsPath)*.dylib;
$(LibrariesNativeArtifactsPath)*.a;
Expand All @@ -185,9 +185,12 @@
$(LibrariesNativeArtifactsPath)*.dwarf;
$(LibrariesNativeArtifactsPath)*.pdb"
IsNative="true" />
<LibrariesRuntimeFiles Condition="'$(TargetsMobile)' == 'true'"
<LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'Browser'"
Include="
$(LibrariesNativeArtifactsPath)**\*.*"
$(LibrariesNativeArtifactsPath)wasm\runtimes\debug\dotnet.js;
$(LibrariesNativeArtifactsPath)wasm\runtimes\debug\dotnet.wasm;
$(LibrariesNativeArtifactsPath)wasm\runtimes\release\dotnet.js;
$(LibrariesNativeArtifactsPath)wasm\runtimes\release\dotnet.wasm"
IsNative="true" />
</ItemGroup>

Expand Down
6 changes: 6 additions & 0 deletions src/libraries/Native/native-binplace.proj
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@
<NativeBinPlaceItem Include="$(NativeBinDir)*.dbg" />
<NativeBinPlaceItem Include="$(NativeBinDir)*.dylib" />
<NativeBinPlaceItem Include="$(NativeBinDir)*.dwarf" />
<NativeBinPlaceItem Condition="'$(TargetOS)' == 'Browser'" Include="$(NativeBinDir)wasm\runtimes\debug\dotnet.js;$(NativeBinDir)wasm\runtimes\debug\dotnet.wasm">
<DestinationSubDirectory>wasm\runtimes\debug\</DestinationSubDirectory>
</NativeBinPlaceItem>
<NativeBinPlaceItem Condition="'$(TargetOS)' == 'Browser'" Include="$(NativeBinDir)wasm\runtimes\release\dotnet.js;$(NativeBinDir)wasm\runtimes\release\dotnet.wasm">
<DestinationSubDirectory>wasm\runtimes\release\</DestinationSubDirectory>
</NativeBinPlaceItem>

<BinPlaceItem Condition="'$(BinPlaceTestRuntimePack)' != 'true'" Include="@(NativeBinPlaceItem)" />
<FileWrites Include="@(NativeBinPlaceItem)" />
Expand Down
1 change: 0 additions & 1 deletion src/libraries/pretest.proj
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

<ProjectReference Include="$(CommonTestPath)AppleTestRunner\AppleTestRunner.csproj" Condition="'$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'tvOS'"/>
<ProjectReference Include="$(CommonTestPath)AndroidTestRunner\AndroidTestRunner.csproj" Condition="'$(TargetOS)' == 'Android'" />
<ProjectReference Include="$(MonoProjectRoot)wasm\wasm.proj" Condition="'$(TargetOS)' == 'Browser'" />
</ItemGroup>

<Target Name="RestoreTestHost"
Expand Down
3 changes: 0 additions & 3 deletions src/libraries/restore/runtime/runtime.depproj
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,6 @@
<NativeBinPlaceItem Include="@(MonoIncludeFiles)">
<DestinationSubDirectory>include/%(RecursiveDir)</DestinationSubDirectory>
</NativeBinPlaceItem>
<NativeBinPlaceItem Include="@(WasmDistFiles)">
<DestinationSubDirectory>wasm/%(RecursiveDir)</DestinationSubDirectory>
</NativeBinPlaceItem>
</ItemGroup>
<ItemGroup Condition="'$(TargetsMobile)' != 'true'">
<TestHostBinPlaceItem Include="@(RuntimeFiles)" />
Expand Down
6 changes: 5 additions & 1 deletion src/libraries/src.proj
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

<PropertyGroup>
<TraversalGlobalProperties>BuildAllProjects=true</TraversalGlobalProperties>
<NativeBinPlaceDependsOnTargets Condition="'$(TargetOS)' == 'Browser'">BuildWasmRuntimes</NativeBinPlaceDependsOnTargets>
</PropertyGroup>

<ItemGroup>
Expand All @@ -24,8 +25,11 @@
<ProjectReference Include="$(MSBuildThisFileDirectory)*\src\*.vbproj" Exclude="@(ProjectExclusions)" />
</ItemGroup>

<Import Condition="'$(TargetOS)' == 'Browser'" Project="$(MonoProjectRoot)wasm\wasm.targets" />

<Target Name="NativeBinPlace"
BeforeTargets="Build">
AfterTargets="Build"
DependsOnTargets="$(NativeBinPlaceDependsOnTargets)">
<MSBuild Targets="Build"
Projects="@(NativeBinPlaceProject)"
Properties="$(TraversalGlobalProperties)" />
Expand Down
4 changes: 2 additions & 2 deletions src/mono/wasm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ BINDIR?=$(TOP)/artifacts/bin
OBJDIR?=$(TOP)/artifacts/obj
PINVOKE_TABLE?=$(TOP)/artifacts/obj/mono/Browser.wasm.$(CONFIG)/wasm/pinvoke-table.h
MONO_BIN_DIR?=$(BINDIR)/mono/Browser.wasm.$(CONFIG)
SYS_NATIVE_DIR?=$(BINDIR)/native/net5.0-Browser-$(CONFIG)-wasm/
SYS_NATIVE_DIR?=$(OBJDIR)/native/net5.0-Browser-$(CONFIG)-wasm/System.Native
BUILDS_BIN_DIR?=$(BINDIR)/native/net5.0-Browser-$(CONFIG)-wasm/wasm/runtimes

all: build-native

Expand Down Expand Up @@ -44,7 +45,6 @@ emsdk_env.sh: | provision-wasm

MONO_OBJ_DIR=$(OBJDIR)/mono/Browser.wasm.$(CONFIG)
MONO_INCLUDE_DIR=$(MONO_BIN_DIR)/include/mono-2.0
BUILDS_BIN_DIR=$(SYS_NATIVE_DIR)/wasm/runtimes
BUILDS_OBJ_DIR=$(MONO_OBJ_DIR)/wasm/runtimes
MONO_LIBS = \
$(MONO_BIN_DIR)/{libmono-ee-interp.a,libmonosgen-2.0.a,libmono-ilgen.a,libmono-icall-table.a} \
Expand Down
13 changes: 4 additions & 9 deletions src/mono/wasm/wasm.proj → src/mono/wasm/wasm.targets
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
<Project Sdk="Microsoft.Build.Traversal">
<PropertyGroup>
<TargetFramework>$(NetCoreAppCurrent)</TargetFramework>
</PropertyGroup>
<Project>

<UsingTask TaskName="PInvokeTableGenerator"
AssemblyFile="$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'WasmAppBuilder', 'Debug', '$(NetCoreAppCurrent)', 'publish', 'WasmAppBuilder.dll'))"/>

<PropertyGroup>
<WasmPInvokeTablePath>$(MonoObjDir)wasm/pinvoke-table.h</WasmPInvokeTablePath>
<RuntimePackDir>$(ArtifactsDir)bin\lib-runtime-packs\runtimes\browser-wasm\lib\$(NetCoreAppCurrent)</RuntimePackDir>
<WasmPInvokeTablePath>$(ArtifactsObjDir)wasm/pinvoke-table.h</WasmPInvokeTablePath>
</PropertyGroup>

<ItemGroup>
Expand All @@ -29,7 +25,7 @@
</Target>

<Target Name="BuildPInvokeTable" DependsOnTargets="CheckEnv">
<MakeDir Directories="$(MonoObjDir)wasm"/>
<MakeDir Directories="$(ArtifactsObjDir)wasm"/>
<PInvokeTableGenerator
Modules="@(WasmPInvokeModules)"
Assemblies="@(WasmPInvokeAssemblies)"
Expand All @@ -38,9 +34,8 @@
</Target>

<Target Name="BuildWasmRuntimes"
AfterTargets="Build"
DependsOnTargets="BuildPInvokeTable">
<Exec Command="make -C $(MonoProjectRoot)wasm all SHELL=/bin/bash BINDIR=$(ArtifactsBinDir) MONO_BIN_DIR=$(MonoArtifactsPath) OBJDIR=$(ArtifactsObjDir) SYS_NATIVE_DIR=$(ArtifactsBinDir)/native/$(NetCoreAppCurrent)-$(TargetOS)-$(Configuration)-$(TargetArchitecture) CONFIG=$(Configuration) PINVOKE_TABLE=$(WasmPInvokeTablePath)" IgnoreStandardErrorWarningFormat="true"/>
<Exec Command="make -C $(MonoProjectRoot)wasm all SHELL=/bin/bash BINDIR=$(ArtifactsBinDir) MONO_BIN_DIR=$(MonoArtifactsPath) OBJDIR=$(ArtifactsObjDir) BUILDS_BIN_DIR=$(NativeBinDir)/wasm/runtimes SYS_NATIVE_DIR=$(ArtifactsObjDir)/native/$(NetCoreAppCurrent)-$(TargetOS)-$(Configuration)-$(TargetArchitecture)/System.Native CONFIG=$(Configuration) PINVOKE_TABLE=$(WasmPInvokeTablePath)" IgnoreStandardErrorWarningFormat="true"/>
</Target>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public override bool Execute () {
foreach (var assembly in Assemblies!.Values)
File.Copy (assembly.Location, Path.Join (AppDir, "managed", Path.GetFileName (assembly.Location)), true);
foreach (var f in new string [] { "dotnet.wasm", "dotnet.js" })
File.Copy (Path.Join (RuntimePackDir, "native", "wasm", "release", f), Path.Join (AppDir, f), true);
File.Copy (Path.Join (RuntimePackDir, "native", "wasm", "runtimes", "release", f), Path.Join (AppDir, f), true);
File.Copy (MainJS!, Path.Join (AppDir, Path.GetFileName (MainJS!)), true);

using (var sw = File.CreateText (Path.Join (AppDir, "mono-config.js"))) {
Expand Down

0 comments on commit b6cad58

Please sign in to comment.