XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESystem

【Rust】XFE系统,基于Rust和汇编

公开
关注 0 Fork 0 Star 0
UTF-8
<Project>
  <Import Project="Sdk.props" Sdk="Cosmos.Sdk" Version="3.0.94" />
  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <OutputType>Exe</OutputType>
    <RootNamespace>XFESystem.Kernel</RootNamespace>
    <CosmosKernelClass>XFESystem.Kernel.Kernel</CosmosKernelClass>
    <!-- linux-x64 selects System V / ELF runtime libraries, not a Linux base OS. -->
    <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
    <!-- ManagedHello is build-ordered payload data, never a linked executable reference. -->
    <ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>
    <CosmosEnableNetwork>true</CosmosEnableNetwork>
    <CosmosEnableStorage>false</CosmosEnableStorage>
    <CosmosEnableScheduler>true</CosmosEnableScheduler>
    <!-- This project intentionally consumes the pinned driver's experimental display facet. -->
    <NoWarn>$(NoWarn);COSMOS0003</NoWarn>
    <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
    <NuGetLockFilePath>Packages.lock.json</NuGetLockFilePath>
    <CCPath>$(MSBuildThisFileDirectory)../../.tools/llvm/bin/clang.exe</CCPath>
    <AsmToolPath>$(CCPath)</AsmToolPath>
    <LdLinkerPath>$(MSBuildThisFileDirectory)../../.tools/llvm/bin/ld.lld.exe</LdLinkerPath>
    <CosmosPatcherExe>$(MSBuildThisFileDirectory)../../.tools/CSharpBoot/Tools-3.0.94/cosmos.patcher.exe</CosmosPatcherExe>
    <XfeEnableGcTailPatch Condition="'$(XfeEnableGcTailPatch)' == ''">true</XfeEnableGcTailPatch>
  </PropertyGroup>
  <ItemGroup>
    <!-- The two topology diagnostics are emitted by the project-local HAL patch. -->
    <UnmanagedEntryPointsAssembly Include="Cosmos.Kernel.HAL.X64" />
    <AsmFiles Include="../../Tools/GcRuntimePatch/NativeThreadEh.s" />
    <PackageReference Include="Cosmos.Kernel" Version="3.0.94" />
    <PackageReference Include="Cosmos.Kernel.System" Version="3.0.94" />
    <ProjectReference Include="../XFESystem.Desktop/XFESystem.Desktop.csproj" />
    <ProjectReference Include="../XFESystem.ConsoleDemo/XFESystem.ConsoleDemo.csproj" />
    <ProjectReference Include="../XFESystem.Console/XFESystem.Console.csproj" />
    <ProjectReference Include="../XFESystem.ManagedRuntime/XFESystem.ManagedRuntime.csproj" />
    <ProjectReference Include="../XFESystem.Browser/XFESystem.Browser.csproj" />
    <ProjectReference Include="../../Samples/XFESystem.ManagedHello/XFESystem.ManagedHello.csproj" ReferenceOutputAssembly="false" />
    <EmbeddedResource Include="../../Samples/XFESystem.ManagedHello/bin/$(Configuration)/net10.0/XFESystem.ManagedHello.dll" LogicalName="XFESystem.Programs.ManagedHello.dll" />
    <EmbeddedResource Include="../../assets/fonts/cascadia-mono-2407.24/CascadiaMono-Regular.ttf" LogicalName="XFESystem.Kernel.CascadiaMono.ttf" />
    <EmbeddedResource Include="../../assets/fonts/lato-2.015/Lato-Regular.ttf" LogicalName="XFESystem.Kernel.LatoRegular.ttf" />
    <EmbeddedResource Include="../../assets/fonts/lato-2.015/Lato-Bold.ttf" LogicalName="XFESystem.Kernel.LatoBold.ttf" />
    <EmbeddedResource Include="../../assets/fonts/noto-sans-sc-2.004/XfeWebCjk-Regular.ttf" LogicalName="XFESystem.Kernel.WebCjkRegular.ttf" />
    <EmbeddedResource Include="../../assets/fonts/noto-sans-sc-2.004/XfeWebCjk-Bold.ttf" LogicalName="XFESystem.Kernel.WebCjkBold.ttf" />
    <EmbeddedResource Include="../../assets/fonts/bootstrap-icons-1.11.3/BootstrapIcons.ttf" LogicalName="XFESystem.Kernel.BootstrapIcons.ttf" />
    <EmbeddedResource Include="../../assets/branding/console/xfe-unicode.bin" LogicalName="XFESystem.Kernel.Unifont.bin" />
    <EmbeddedResource Include="../../assets/branding/console/icon.rgba" LogicalName="XFESystem.Kernel.Icon.rgba" />
    <EmbeddedResource Include="../../assets/DesktopIcons/Atlas.rgba" LogicalName="XFESystem.Kernel.DesktopIcons.rgba" />
    <Compile Include="../../Tools/GcRuntimePatch/Fixture/NativeGcRegression.cs" Link="NativeGcRegression.cs" />
  </ItemGroup>
  <Import Project="Sdk.targets" Sdk="Cosmos.Sdk" Version="3.0.94" />
  <!-- Disk packaging is handled by the project's native Windows tools. -->
  <Target Name="BuildISO" />
  <!-- A Cosmos cache hit restores non-plug platform DLLs but retains the
       generated, privately patched CoreLib. Regenerate the complete set from
       official inputs instead of allowing that mixed state into ILC. -->
  <Target Name="XfeRefreshPrivatePlatformInputs" BeforeTargets="SetupPatcher">
    <Error Condition="Exists('$(IntermediateOutputPath)/cosmos/ref/XfeBootPlatformV1.Pending.json')"
           Text="An incomplete private platform transaction requires inspection before rebuilding." />
    <Delete Files="$(IntermediateOutputPath)/cosmos/.patcher-hash"
            Condition="Exists('$(IntermediateOutputPath)/cosmos/ref/XfeBootPlatformV1.json')" />
  </Target>
  <Target Name="XfeCaptureNativeKeyboard" AfterTargets="RunPatcher" BeforeTargets="WriteIlcRsp">
    <Exec Command="dotnet run --project &quot;$(MSBuildThisFileDirectory)../../Tools/NativeInputPatch/NativeInputPatch.csproj&quot; -c Release -- &quot;$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref/Cosmos.Kernel.System.dll&quot; &quot;$(MSBuildThisFileDirectory)$(OutputPath)XFESystem.Kernel.dll&quot;" />
  </Target>
  <Target Name="XfeRestoreNativeJintCleanup" AfterTargets="XfeCaptureNativeKeyboard" BeforeTargets="WriteIlcRsp">
    <Exec Command="dotnet run --project &quot;$(MSBuildThisFileDirectory)../../Tools/JintCleanupPatch/JintCleanupPatch.csproj&quot; -c Release -- &quot;$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref/Jint.dll&quot; --bind-and-cleanup" />
  </Target>
  <Target Name="XfeRestorePreciseGcTail" AfterTargets="XfeRestoreNativeJintCleanup" BeforeTargets="WriteIlcRsp" Condition="'$(XfeEnableGcTailPatch)' == 'true'">
    <Exec Command="dotnet run --project &quot;$(MSBuildThisFileDirectory)../../Tools/GcRuntimePatch/GcRuntimePatch.csproj&quot; -c Release -- &quot;$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref/Cosmos.Kernel.Core.dll&quot;" />
  </Target>
  <Target Name="XfeBindSingleCpuBootPlatform" AfterTargets="XfeRestorePreciseGcTail" BeforeTargets="WriteIlcRsp">
    <Exec Command="dotnet run --project &quot;$(MSBuildThisFileDirectory)../../Tools/BootPlatformPatch/BootPlatformPatch.csproj&quot; -c Release -- &quot;$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref&quot;" />
  </Target>
</Project>