<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 "$(MSBuildThisFileDirectory)../../Tools/NativeInputPatch/NativeInputPatch.csproj" -c Release -- "$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref/Cosmos.Kernel.System.dll" "$(MSBuildThisFileDirectory)$(OutputPath)XFESystem.Kernel.dll"" />
</Target>
<Target Name="XfeRestoreNativeJintCleanup" AfterTargets="XfeCaptureNativeKeyboard" BeforeTargets="WriteIlcRsp">
<Exec Command="dotnet run --project "$(MSBuildThisFileDirectory)../../Tools/JintCleanupPatch/JintCleanupPatch.csproj" -c Release -- "$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref/Jint.dll" --bind-and-cleanup" />
</Target>
<Target Name="XfeRestorePreciseGcTail" AfterTargets="XfeRestoreNativeJintCleanup" BeforeTargets="WriteIlcRsp" Condition="'$(XfeEnableGcTailPatch)' == 'true'">
<Exec Command="dotnet run --project "$(MSBuildThisFileDirectory)../../Tools/GcRuntimePatch/GcRuntimePatch.csproj" -c Release -- "$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref/Cosmos.Kernel.Core.dll"" />
</Target>
<Target Name="XfeBindSingleCpuBootPlatform" AfterTargets="XfeRestorePreciseGcTail" BeforeTargets="WriteIlcRsp">
<Exec Command="dotnet run --project "$(MSBuildThisFileDirectory)../../Tools/BootPlatformPatch/BootPlatformPatch.csproj" -c Release -- "$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref"" />
</Target>
</Project>
<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 "$(MSBuildThisFileDirectory)../../Tools/NativeInputPatch/NativeInputPatch.csproj" -c Release -- "$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref/Cosmos.Kernel.System.dll" "$(MSBuildThisFileDirectory)$(OutputPath)XFESystem.Kernel.dll"" />
</Target>
<Target Name="XfeRestoreNativeJintCleanup" AfterTargets="XfeCaptureNativeKeyboard" BeforeTargets="WriteIlcRsp">
<Exec Command="dotnet run --project "$(MSBuildThisFileDirectory)../../Tools/JintCleanupPatch/JintCleanupPatch.csproj" -c Release -- "$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref/Jint.dll" --bind-and-cleanup" />
</Target>
<Target Name="XfeRestorePreciseGcTail" AfterTargets="XfeRestoreNativeJintCleanup" BeforeTargets="WriteIlcRsp" Condition="'$(XfeEnableGcTailPatch)' == 'true'">
<Exec Command="dotnet run --project "$(MSBuildThisFileDirectory)../../Tools/GcRuntimePatch/GcRuntimePatch.csproj" -c Release -- "$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref/Cosmos.Kernel.Core.dll"" />
</Target>
<Target Name="XfeBindSingleCpuBootPlatform" AfterTargets="XfeRestorePreciseGcTail" BeforeTargets="WriteIlcRsp">
<Exec Command="dotnet run --project "$(MSBuildThisFileDirectory)../../Tools/BootPlatformPatch/BootPlatformPatch.csproj" -c Release -- "$(MSBuildThisFileDirectory)$(IntermediateOutputPath)/cosmos/ref"" />
</Target>
</Project>