$(LibrariesNativeArtifactsPath)dotnet.timezones.blat;
$(LibrariesNativeArtifactsPath)*.dat;"
IsNative="true" />
+ <LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'Browser'"
+ Include="
+ $(LibrariesNativeArtifactsPath)src\*.c;
+ $(LibrariesNativeArtifactsPath)src\*.js;"
+ NativeSubDirectory="src"
+ IsNative="true" />
+ <LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'Browser'"
+ Include="
+ $(LibrariesNativeArtifactsPath)include\wasm\*.h;"
+ NativeSubDirectory="include\wasm"
+ IsNative="true" />
</ItemGroup>
<Error Condition="'@(LibrariesRefAssemblies)' == ''" Text="The 'libs' subset must be built before building this project." />
SYSTEM_NATIVE_LIBDIR?=$(TOP)/src/libraries/Native/Unix/System.Native
ENABLE_ES6?=false
-all: build-native icu-data
+all: build-native icu-files source-files header-files
#
# EMSCRIPTEN SETUP
$(NATIVE_BIN_DIR):
mkdir -p $$@
+$(NATIVE_BIN_DIR)/src:
+ mkdir -p $$@
+
+$(NATIVE_BIN_DIR)/include/wasm:
+ mkdir -p $$@
+
$(BUILDS_OBJ_DIR):
mkdir -p $$@
# Helper targets
.PHONY: runtime
-icu-data:
- cp $(ICU_LIBDIR)/*.dat $(NATIVE_BIN_DIR)
+icu-files: $(wildcard $(ICU_LIBDIR)/*.dat) $(ICU_LIBDIR)/libicuuc.a $(ICU_LIBDIR)/libicui18n.a | $(NATIVE_BIN_DIR)
+ cp $^ $(NATIVE_BIN_DIR)
+
+source-files: runtime/driver.c runtime/pinvoke.c runtime/corebindings.c runtime/binding_support.js runtime/dotnet_support.js runtime/library_mono.js $(SYSTEM_NATIVE_LIBDIR)/pal_random.js | $(NATIVE_BIN_DIR)/src
+ cp $^ $(NATIVE_BIN_DIR)/src
+
+header-files: runtime/pinvoke.h $(BUILDS_OBJ_DIR)/pinvoke-table.h | $(NATIVE_BIN_DIR)/include/wasm
+ cp $^ $(NATIVE_BIN_DIR)/include/wasm
build:
EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono+libs.pretest -os Browser -c $(CONFIG) /p:ContinueOnError=false /p:StopOnFirstFailure=true
AfterTargets="Build"
DependsOnTargets="BuildPInvokeTable;BundleTimeZones">
- <Exec Command="make -C $(MonoProjectRoot)wasm all SHELL=/bin/bash BINDIR=$(ArtifactsBinDir) MONO_BIN_DIR=$(MonoArtifactsPath) OBJDIR=$(ArtifactsObjDir) NATIVE_BIN_DIR=$(NativeBinDir) CONFIG=$(Configuration) PINVOKE_TABLE=$(WasmPInvokeTablePath) ICU_LIBDIR=$(PkgMicrosoft_NETCore_Runtime_ICU_Transport)/runtimes/browser-wasm/native/lib ENABLE_ES6=$(WasmEnableES6)"
+ <PropertyGroup>
+ <_IcuLibdir>$(PkgMicrosoft_NETCore_Runtime_ICU_Transport)/runtimes/browser-wasm/native/lib</_IcuLibdir>
+ </PropertyGroup>
+
+ <Exec Command="make -C $(MonoProjectRoot)wasm all SHELL=/bin/bash BINDIR=$(ArtifactsBinDir) MONO_BIN_DIR=$(MonoArtifactsPath) OBJDIR=$(ArtifactsObjDir) NATIVE_BIN_DIR=$(NativeBinDir) CONFIG=$(Configuration) PINVOKE_TABLE=$(WasmPInvokeTablePath) ICU_LIBDIR=$(_IcuLibdir) ENABLE_ES6=$(WasmEnableES6)"
IgnoreStandardErrorWarningFormat="true" />
+ <ItemGroup>
+ <IcuDataFiles Include="$(NativeBinDir)*.dat" />
+ <WasmSrcFiles Include="$(NativeBinDir)src\*.c;
+ $(NativeBinDir)src\*.js;" />
+ <WasmHeaderFiles Include="$(NativeBinDir)include\wasm\*.h" />
+ </ItemGroup>
+
<Copy SourceFiles="$(NativeBinDir)dotnet.js;
$(NativeBinDir)dotnet.wasm;
- $(NativeBinDir)dotnet.timezones.blat"
+ $(NativeBinDir)dotnet.timezones.blat;
+ $(NativeBinDir)libicuuc.a;
+ $(NativeBinDir)libicui18n.a"
DestinationFolder="$(MicrosoftNetCoreAppRuntimePackNativeDir)"
SkipUnchangedFiles="true" />
- <ItemGroup>
- <IcuDataFiles Include="$(NativeBinDir)*.dat"/>
- </ItemGroup>
<Copy SourceFiles="@(IcuDataFiles)"
DestinationFolder="$(MicrosoftNetCoreAppRuntimePackNativeDir)"
SkipUnchangedFiles="true" />
+
+ <Copy SourceFiles="@(WasmSrcFiles)"
+ DestinationFolder="$(MicrosoftNetCoreAppRuntimePackNativeDir)src"
+ SkipUnchangedFiles="true" />
+
+ <Copy SourceFiles="@(WasmHeaderFiles)"
+ DestinationFolder="$(MicrosoftNetCoreAppRuntimePackNativeDir)include\wasm"
+ SkipUnchangedFiles="true" />
</Target>
</Project>