Ryujinx.csproj
1 <Project Sdk="Microsoft.NET.Sdk"> 2 <PropertyGroup> 3 <TargetFramework>net8.0</TargetFramework> 4 <RuntimeIdentifiers>win-x64;osx-x64;linux-x64</RuntimeIdentifiers> 5 <OutputType>Exe</OutputType> 6 <AllowUnsafeBlocks>true</AllowUnsafeBlocks> 7 <Version>1.0.0-dirty</Version> 8 <DefineConstants Condition=" '$(ExtraDefineConstants)' != '' ">$(DefineConstants);$(ExtraDefineConstants)</DefineConstants> 9 <SigningCertificate Condition=" '$(SigningCertificate)' == '' ">-</SigningCertificate> 10 <ApplicationIcon>Ryujinx.ico</ApplicationIcon> 11 <TieredPGO>true</TieredPGO> 12 <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault> 13 <ApplicationManifest>app.manifest</ApplicationManifest> 14 </PropertyGroup> 15 16 <Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="$([MSBuild]::IsOSPlatform('OSX'))"> 17 <Exec Command="codesign --entitlements '$(ProjectDir)..\..\distribution\macos\entitlements.xml' -f --deep -s $(SigningCertificate) '$(TargetDir)$(TargetName)'" /> 18 </Target> 19 20 <PropertyGroup Condition="'$(RuntimeIdentifier)' != ''"> 21 <PublishSingleFile>true</PublishSingleFile> 22 <TrimmerSingleWarn>false</TrimmerSingleWarn> 23 <PublishTrimmed>true</PublishTrimmed> 24 <TrimMode>partial</TrimMode> 25 </PropertyGroup> 26 27 <!-- 28 FluentAvalonia, used in the Avalonia UI, requires a workaround for the json serializer used internally when using .NET 8+ System.Text.Json. 29 See: 30 https://github.com/amwx/FluentAvalonia/issues/481 31 https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-8/ 32 --> 33 <PropertyGroup> 34 <JsonSerializerIsReflectionEnabledByDefault>true</JsonSerializerIsReflectionEnabledByDefault> 35 </PropertyGroup> 36 37 <ItemGroup> 38 <PackageReference Include="Avalonia" /> 39 <PackageReference Include="Avalonia.Desktop" /> 40 <PackageReference Include="Avalonia.Diagnostics" Condition="'$(Configuration)'=='Debug'" /> 41 <PackageReference Include="Avalonia.Controls.DataGrid" /> 42 <PackageReference Include="Avalonia.Markup.Xaml.Loader" /> 43 <PackageReference Include="Avalonia.Svg" /> 44 <PackageReference Include="Avalonia.Svg.Skia" /> 45 <PackageReference Include="DynamicData" /> 46 <PackageReference Include="FluentAvaloniaUI" /> 47 48 <PackageReference Include="OpenTK.Core" /> 49 <PackageReference Include="Ryujinx.Audio.OpenAL.Dependencies" Condition="'$(RuntimeIdentifier)' != 'linux-x64' AND '$(RuntimeIdentifier)' != 'linux-arm64' AND '$(RuntimeIdentifier)' != 'osx-x64' AND '$(RuntimeIdentifier)' != 'osx-arm64'" /> 50 <PackageReference Include="Ryujinx.Graphics.Nvdec.Dependencies" /> 51 <PackageReference Include="Ryujinx.Graphics.Vulkan.Dependencies.MoltenVK" Condition="'$(RuntimeIdentifier)' != 'linux-x64' AND '$(RuntimeIdentifier)' != 'linux-arm64' AND '$(RuntimeIdentifier)' != 'win-x64'" /> 52 <PackageReference Include="Silk.NET.Vulkan" /> 53 <PackageReference Include="Silk.NET.Vulkan.Extensions.EXT" /> 54 <PackageReference Include="Silk.NET.Vulkan.Extensions.KHR" /> 55 <PackageReference Include="SPB" /> 56 <PackageReference Include="SharpZipLib" /> 57 </ItemGroup> 58 59 <ItemGroup> 60 <ProjectReference Include="..\Ryujinx.Audio.Backends.SDL2\Ryujinx.Audio.Backends.SDL2.csproj" /> 61 <ProjectReference Include="..\Ryujinx.Graphics.Vulkan\Ryujinx.Graphics.Vulkan.csproj" /> 62 <ProjectReference Include="..\Ryujinx.Input\Ryujinx.Input.csproj" /> 63 <ProjectReference Include="..\Ryujinx.Input.SDL2\Ryujinx.Input.SDL2.csproj" /> 64 <ProjectReference Include="..\Ryujinx.Audio.Backends.OpenAL\Ryujinx.Audio.Backends.OpenAL.csproj" /> 65 <ProjectReference Include="..\Ryujinx.Audio.Backends.SoundIo\Ryujinx.Audio.Backends.SoundIo.csproj" /> 66 <ProjectReference Include="..\Ryujinx.Common\Ryujinx.Common.csproj" /> 67 <ProjectReference Include="..\Ryujinx.HLE\Ryujinx.HLE.csproj" /> 68 <ProjectReference Include="..\ARMeilleure\ARMeilleure.csproj" /> 69 <ProjectReference Include="..\Ryujinx.Graphics.OpenGL\Ryujinx.Graphics.OpenGL.csproj" /> 70 <ProjectReference Include="..\Ryujinx.Graphics.Gpu\Ryujinx.Graphics.Gpu.csproj" /> 71 <ProjectReference Include="..\Ryujinx.UI.Common\Ryujinx.UI.Common.csproj" /> 72 <ProjectReference Include="..\Ryujinx.UI.LocaleGenerator\Ryujinx.UI.LocaleGenerator.csproj" 73 OutputItemType="Analyzer" ReferenceOutputAssembly="false" /> 74 </ItemGroup> 75 76 <ItemGroup> 77 <Content Include="..\..\distribution\windows\alsoft.ini" Condition="'$(RuntimeIdentifier)' != 'linux-x64' AND '$(RuntimeIdentifier)' != 'linux-arm64' AND '$(RuntimeIdentifier)' != 'osx-x64'"> 78 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 79 <TargetPath>alsoft.ini</TargetPath> 80 </Content> 81 <Content Include="..\..\distribution\legal\THIRDPARTY.md"> 82 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 83 <TargetPath>THIRDPARTY.md</TargetPath> 84 </Content> 85 <Content Include="..\..\LICENSE.txt"> 86 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 87 <TargetPath>LICENSE.txt</TargetPath> 88 </Content> 89 </ItemGroup> 90 91 <ItemGroup Condition="'$(RuntimeIdentifier)' == 'linux-x64' OR '$(RuntimeIdentifier)' == 'linux-arm64' OR ('$(RuntimeIdentifier)' == '' AND $([MSBuild]::IsOSPlatform('Linux')))"> 92 <Content Include="..\..\distribution\linux\Ryujinx.sh"> 93 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 94 </Content> 95 <Content Include="..\..\distribution\linux\mime\Ryujinx.xml"> 96 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 97 <TargetPath>mime\Ryujinx.xml</TargetPath> 98 </Content> 99 </ItemGroup> 100 101 <ItemGroup> 102 <AvaloniaResource Include="UI\**\*.xaml"> 103 <SubType>Designer</SubType> 104 </AvaloniaResource> 105 <AvaloniaResource Include="Assets\Fonts\SegoeFluentIcons.ttf" /> 106 <AvaloniaResource Include="Assets\Styles\Themes.xaml"> 107 <Generator>MSBuild:Compile</Generator> 108 </AvaloniaResource> 109 <AvaloniaResource Include="Assets\Styles\Styles.xaml" /> 110 </ItemGroup> 111 112 <ItemGroup> 113 <None Remove="Assets\Locales\ar_SA.json" /> 114 <None Remove="Assets\Locales\el_GR.json" /> 115 <None Remove="Assets\Locales\en_US.json" /> 116 <None Remove="Assets\Locales\es_ES.json" /> 117 <None Remove="Assets\Locales\fr_FR.json" /> 118 <None Remove="Assets\Locales\he_IL.json" /> 119 <None Remove="Assets\Locales\de_DE.json" /> 120 <None Remove="Assets\Locales\it_IT.json" /> 121 <None Remove="Assets\Locales\ja_JP.json" /> 122 <None Remove="Assets\Locales\ko_KR.json" /> 123 <None Remove="Assets\Locales\pl_PL.json" /> 124 <None Remove="Assets\Locales\pt_BR.json" /> 125 <None Remove="Assets\Locales\ru_RU.json" /> 126 <None Remove="Assets\Locales\th_TH.json" /> 127 <None Remove="Assets\Locales\tr_TR.json" /> 128 <None Remove="Assets\Locales\uk_UA.json" /> 129 <None Remove="Assets\Locales\zh_CN.json" /> 130 <None Remove="Assets\Locales\zh_TW.json" /> 131 <None Remove="Assets\Styles\Styles.xaml" /> 132 <None Remove="Assets\Styles\Themes.xaml" /> 133 <None Remove="Assets\Icons\Controller_JoyConLeft.svg" /> 134 <None Remove="Assets\Icons\Controller_JoyConPair.svg" /> 135 <None Remove="Assets\Icons\Controller_JoyConRight.svg" /> 136 <None Remove="Assets\Icons\Controller_ProCon.svg" /> 137 </ItemGroup> 138 139 <ItemGroup> 140 <EmbeddedResource Include="Assets\Locales\ar_SA.json" /> 141 <EmbeddedResource Include="Assets\Locales\el_GR.json" /> 142 <EmbeddedResource Include="Assets\Locales\en_US.json" /> 143 <EmbeddedResource Include="Assets\Locales\es_ES.json" /> 144 <EmbeddedResource Include="Assets\Locales\fr_FR.json" /> 145 <EmbeddedResource Include="Assets\Locales\he_IL.json" /> 146 <EmbeddedResource Include="Assets\Locales\de_DE.json" /> 147 <EmbeddedResource Include="Assets\Locales\it_IT.json" /> 148 <EmbeddedResource Include="Assets\Locales\ja_JP.json" /> 149 <EmbeddedResource Include="Assets\Locales\ko_KR.json" /> 150 <EmbeddedResource Include="Assets\Locales\pl_PL.json" /> 151 <EmbeddedResource Include="Assets\Locales\pt_BR.json" /> 152 <EmbeddedResource Include="Assets\Locales\ru_RU.json" /> 153 <EmbeddedResource Include="Assets\Locales\th_TH.json" /> 154 <EmbeddedResource Include="Assets\Locales\tr_TR.json" /> 155 <EmbeddedResource Include="Assets\Locales\uk_UA.json" /> 156 <EmbeddedResource Include="Assets\Locales\zh_CN.json" /> 157 <EmbeddedResource Include="Assets\Locales\zh_TW.json" /> 158 <EmbeddedResource Include="Assets\Styles\Styles.xaml" /> 159 <EmbeddedResource Include="Assets\Icons\Controller_JoyConLeft.svg" /> 160 <EmbeddedResource Include="Assets\Icons\Controller_JoyConPair.svg" /> 161 <EmbeddedResource Include="Assets\Icons\Controller_JoyConRight.svg" /> 162 <EmbeddedResource Include="Assets\Icons\Controller_ProCon.svg" /> 163 </ItemGroup> 164 <ItemGroup> 165 <AdditionalFiles Include="Assets\Locales\en_US.json" /> 166 </ItemGroup> 167 </Project>