Files
sharpemu/src/SharpEmu.HLE/SharpEmu.HLE.csproj
T
Berk 2b6bd5a532 Sdl backend (#670)
* [audio] added sdl audio backend and in-tree atrac9 decoder

* [input] replaced per-platform pad readers with sdl gamepad input

* [video] added sdl window and host display plumbing

* [gui] added host display options and per-game render settings

* [bink] synced host movie playback to the guest audio clock

* [cpu] hooked windows write faults into guest image tracking

* [perf] added guest and render profiling, reserved host cpu lanes

* [kernel] fixed stale pthread mutex handle alias

* [host] wired the sdl session, save-data paths and project references

* [audio] hoisted ajm trace stackalloc out of its loop

* [video] Add guest image sync setting

* [build] Strip native symbols

* reuse
2026-07-28 03:33:26 +03:00

77 lines
3.3 KiB
XML

<!--
Copyright (C) 2026 SharpEmu Emulator Project
SPDX-License-Identifier: GPL-2.0-or-later
-->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup>
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<InternalsVisibleTo Include="SharpEmu.Core" />
<InternalsVisibleTo Include="SharpEmu.Libs.Tests" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SharpEmu.Logging\SharpEmu.Logging.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="ppy.SDL3-CS" />
</ItemGroup>
<ItemGroup>
<!-- Forces build ordering for the aerolib task below; loaded as a build component,
never a runtime dependency. -->
<ProjectReference Include="..\SharpEmu.SourceGenerators\SharpEmu.SourceGenerators.csproj"
ReferenceOutputAssembly="false" />
</ItemGroup>
<!-- aerolib.bin (the runtime NID -> name catalog) is derived data: generated here
from scripts/ps5_names.txt via the same Ps5Nid implementation the analyzers use,
embedded from the intermediate directory, and never committed. Replaces
scripts/generate_aerolib_binary.py. -->
<PropertyGroup>
<SharpEmuAerolibNamesFile>$(MSBuildThisFileDirectory)..\..\scripts\ps5_names.txt</SharpEmuAerolibNamesFile>
<SharpEmuAerolibTaskAssembly>$(MSBuildThisFileDirectory)..\..\artifacts\bin\$(Configuration)\netstandard2.0\SharpEmu.SourceGenerators.dll</SharpEmuAerolibTaskAssembly>
</PropertyGroup>
<UsingTask TaskName="SharpEmu.SourceGenerators.GenerateAerolibBinaryTask"
TaskFactory="TaskHostFactory"
AssemblyFile="$(SharpEmuAerolibTaskAssembly)" />
<!-- Runs after ResolveProjectReferences (which builds the task assembly) and before
resource processing embeds the output. Skipped for design-time builds: the IDE
resolves project references without compiling them, so on a fresh clone the task
assembly does not exist yet and loading it would break the design-time build. -->
<Target Name="GenerateAerolibBinary"
DependsOnTargets="ResolveProjectReferences"
Inputs="$(SharpEmuAerolibNamesFile);$(SharpEmuAerolibTaskAssembly)"
Outputs="$(IntermediateOutputPath)aerolib.bin">
<GenerateAerolibBinaryTask NamesFile="$(SharpEmuAerolibNamesFile)"
OutputFile="$(IntermediateOutputPath)aerolib.bin" />
</Target>
<!-- The resource item is created inside a target (not statically) so design-time
builds never reference a file that was not generated, and in a separate target
from the generation so an up-to-date skip of GenerateAerolibBinary cannot drop
the item (an up-to-date target skips its whole body, ItemGroups included).
Hooked before AssignTargetPaths: dynamic EmbeddedResource items added later
than that miss the resource pipeline entirely. -->
<Target Name="EmbedAerolibBinary"
BeforeTargets="AssignTargetPaths"
DependsOnTargets="GenerateAerolibBinary"
Condition="'$(DesignTimeBuild)' != 'true'">
<ItemGroup>
<EmbeddedResource Include="$(IntermediateOutputPath)aerolib.bin"
LogicalName="SharpEmu.HLE.Aerolib.aerolib.bin"
Visible="false" />
</ItemGroup>
</Target>
</Project>