mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-05-14 03:37:55 -04:00
77 lines
4.8 KiB
XML
77 lines
4.8 KiB
XML
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
|
|
<ItemGroup Condition="'$(EXPERIMENTAL_WASM_AOT)' == '1'">
|
|
<NativeLibrary Include="$(MSBuildThisFileDirectory)..\bindings.c" />
|
|
<UnmanagedEntryPointsAssembly Include="SpacetimeDB.Runtime" />
|
|
|
|
<WasmImport Include="$(SpacetimeNamespace)!table_id_from_name" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!index_id_from_name" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!datastore_table_row_count" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!datastore_table_scan_bsatn" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!datastore_index_scan_range_bsatn" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!datastore_btree_scan_bsatn" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!row_iter_bsatn_advance" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!row_iter_bsatn_close" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!datastore_insert_bsatn" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!datastore_delete_by_index_scan_range_bsatn" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!datastore_delete_by_btree_scan_bsatn" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!datastore_delete_all_by_eq_bsatn" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!bytes_source_read" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!bytes_sink_write" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!console_log" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!console_timer_start" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!console_timer_end" />
|
|
<WasmImport Include="$(SpacetimeNamespace)!volatile_nonatomic_schedule_immediate" />
|
|
|
|
<PackageReference Include="Microsoft.DotNet.ILCompiler.LLVM" Version="8.0.0-*" />
|
|
<PackageReference Include="runtime.win-x64.Microsoft.DotNet.ILCompiler.LLVM" Version="8.0.0-*" />
|
|
<PackageReference Include="Microsoft.NET.ILLink.Tasks" Version="8.0.0-*" Condition="'$(ILLinkTargetsPath)' == ''" />
|
|
|
|
<CustomLinkerArg Include="-DEXPERIMENTAL_WASM_AOT" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(EXPERIMENTAL_WASM_AOT)' != '1'">
|
|
<NativeFileReference Include="$(MSBuildThisFileDirectory)..\bindings.c" />
|
|
<_WasmNativeFileForLinking Include="@(NativeFileReference)" />
|
|
</ItemGroup>
|
|
|
|
<!-- Auto-download WASI SDK on the first run. -->
|
|
<!-- Adapted from https://github.com/dotnet/dotnet-wasi-sdk/blob/2dbb00c779180873d3ed985e59e431f56404d8da/src/Wasi.Sdk/build/Wasi.Sdk.targets#L245-L262 -->
|
|
<!-- Executes before the errors in https://github.com/dotnet/runtime/blob/57fd56a99d4c97ac2f95fe84640f2a3f653f4dd7/src/mono/wasi/build/WasiApp.Native.targets#L41-L50. -->
|
|
<!-- TODO: remove when https://github.com/dotnet/runtime/issues/82788 is resolved. -->
|
|
<Target Name="ObtainWasiSdk" BeforeTargets="_SetupWasiSdk;CheckWasmSdks">
|
|
<PropertyGroup>
|
|
<WasiSdkVersion>24</WasiSdkVersion>
|
|
|
|
<WasiSdkDownloadTempFile>$([System.IO.Path]::Combine($(IntermediateOutputPath), "wasi-sdk.$(WasiSdkVersion).tar.gz"))</WasiSdkDownloadTempFile>
|
|
|
|
<WasiSdkArch Condition="$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture) == X64">x86_64</WasiSdkArch>
|
|
<WasiSdkArch Condition="$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture) == Arm64">arm64</WasiSdkArch>
|
|
|
|
<WasiSdkOS Condition="$([MSBuild]::IsOSPlatform('Windows'))">windows</WasiSdkOS>
|
|
<WasiSdkOS Condition="$([MSBuild]::IsOSPlatform('Linux'))">linux</WasiSdkOS>
|
|
<WasiSdkOS Condition="$([MSBuild]::IsOSPlatform('OSX'))">macos</WasiSdkOS>
|
|
|
|
<WasiSdkUrl>https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$(WasiSdkVersion)/wasi-sdk-$(WasiSdkVersion).0-$(WasiSdkArch)-$(WasiSdkOS).tar.gz</WasiSdkUrl>
|
|
|
|
<WasiSdkRoot>$([System.IO.Path]::Combine($([System.Environment]::GetFolderPath(SpecialFolder.UserProfile)), '.wasi-sdk', "wasi-sdk-$(WasiSdkVersion)"))</WasiSdkRoot>
|
|
<WASI_SDK_PATH>$(WasiSdkRoot)</WASI_SDK_PATH>
|
|
<WasiSysRoot>$([System.IO.Path]::Combine($(WasiSdkRoot), 'share', 'wasi-sysroot'))</WasiSysRoot>
|
|
<WasiClang>$([System.IO.Path]::Combine($(WasiSdkRoot), 'bin', 'clang'))</WasiClang>
|
|
<WasiClang Condition="$([MSBuild]::IsOSPlatform('Windows'))">$(WasiClang).exe</WasiClang>
|
|
</PropertyGroup>
|
|
|
|
<DownloadFile
|
|
SourceUrl="$(WasiSdkUrl)"
|
|
DestinationFolder="$(IntermediateOutputPath)"
|
|
DestinationFileName="$([System.IO.Path]::GetFileName('$(WasiSdkDownloadTempFile)'))"
|
|
Condition="!Exists('$(WasiClang)')" />
|
|
|
|
<Message Importance="high" Text="Extracting $(WasiSdkDownloadTempFile) to $(WasiSdkRoot)..." Condition="!Exists('$(WasiClang)')" />
|
|
<MakeDir Directories="$(WasiSdkRoot)" />
|
|
<!-- Windows 10+ has tar built in, so this should work cross-platform -->
|
|
<Exec Command="tar -xf "$(WasiSdkDownloadTempFile)" -C "$(WasiSdkRoot)" --strip-components=1" Condition="!Exists('$(WasiClang)')" />
|
|
</Target>
|
|
|
|
</Project>
|