mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-12-24 13:57:27 -05:00
128 lines
7.0 KiB
XML
128 lines
7.0 KiB
XML
<Project Sdk="Microsoft.NET.Sdk.Web">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net5.0</TargetFramework>
|
|
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
|
|
<TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
|
|
<IsPackable>false</IsPackable>
|
|
<SpaRoot>../Kyoo.WebApp/</SpaRoot>
|
|
<LoginRoot>../Kyoo.WebLogin/</LoginRoot>
|
|
<TranscoderRoot>../Kyoo.Transcoder/</TranscoderRoot>
|
|
<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules/**</DefaultItemExcludes>
|
|
|
|
<!-- Set this to true if you enable server-side prerendering -->
|
|
<BuildServerSideRenderer>false</BuildServerSideRenderer>
|
|
|
|
<Company>SDG</Company>
|
|
<Authors>Zoe Roux</Authors>
|
|
<RepositoryUrl>https://github.com/AnonymusRaccoon/Kyoo</RepositoryUrl>
|
|
<StartupObject>Kyoo.Program</StartupObject>
|
|
<LangVersion>default</LangVersion>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<IsWindows Condition="$([MSBuild]::IsOSPlatform('Windows'))">true</IsWindows>
|
|
<IsOSX Condition="$([MSBuild]::IsOSPlatform('OSX'))">true</IsOSX>
|
|
<IsLinux Condition="$([MSBuild]::IsOSPlatform('Linux'))">true</IsLinux>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<TranscoderBinary Condition="'$(IsWindows)' == 'true'">transcoder.dll</TranscoderBinary>
|
|
<TranscoderBinary Condition="'$(IsOSX)' == 'true'">libtranscoder.dylib</TranscoderBinary>
|
|
<TranscoderBinary Condition="'$(IsLinux)' == 'true'">libtranscoder.so</TranscoderBinary>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="../Kyoo.Common/Kyoo.Common.csproj" />
|
|
<ProjectReference Include="../Kyoo.CommonAPI/Kyoo.CommonAPI.csproj" />
|
|
<PackageReference Include="IdentityServer4" Version="4.1.1" />
|
|
<PackageReference Include="IdentityServer4.AspNetIdentity" Version="4.1.1" />
|
|
<PackageReference Include="IdentityServer4.EntityFramework" Version="4.1.1" />
|
|
<PackageReference Include="IdentityServer4.EntityFramework.Storage" Version="4.1.1" />
|
|
<PackageReference Include="IdentityServer4.Storage" Version="4.1.1" />
|
|
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.1" />
|
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.3" />
|
|
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.2" />
|
|
<PackageReference Include="Portable.BouncyCastle" Version="1.8.9" />
|
|
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
|
|
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="5.0.3" />
|
|
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.3" />
|
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.3" />
|
|
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="3.1.12" />
|
|
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="5.0.3" />
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.3" />
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" Version="5.0.3" />
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.3">
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
<PrivateAssets>all</PrivateAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="5.0.3" />
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.3" />
|
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="$(SpaRoot)**" Exclude="$(SpaRoot)node_modules/**" Visible="false" />
|
|
<StaticFiles Include="$(SpaRoot)static/**" Visible="false" />
|
|
<LoginFiles Include="$(LoginRoot)**" Visible="false" />
|
|
<Content Remove="$(SpaRoot)**" />
|
|
</ItemGroup>
|
|
|
|
<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish" Condition="'$(SkipWebApp)' != 'true'">
|
|
<Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
|
|
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build -- --prod" />
|
|
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build:ssr -- --prod" Condition="'$(BuildServerSideRenderer)' == 'true'" />
|
|
|
|
<ItemGroup>
|
|
<DistFiles Include="$(SpaRoot)dist/**; $(SpaRoot)dist-server/**" />
|
|
<DistFiles Include="$(SpaRoot)node_modules/**" Condition="'$(BuildServerSideRenderer)' == 'true'" />
|
|
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
|
|
<RelativePath>wwwroot/%(DistFiles.Filename)%(DistFiles.Extension)</RelativePath>
|
|
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
|
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
|
</ResolvedFileToPublish>
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<Target Name="Publish static and login" AfterTargets="ComputeFilesToPublish">
|
|
<ItemGroup>
|
|
<ResolvedFileToPublish Include="@(StaticFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
|
|
<RelativePath>wwwroot/%(StaticFiles.RecursiveDir)%(StaticFiles.Filename)%(StaticFiles.Extension)</RelativePath>
|
|
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
|
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
|
</ResolvedFileToPublish>
|
|
<ResolvedFileToPublish Include="@(LoginFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
|
|
<RelativePath>wwwroot/login/%(LoginFiles.RecursiveDir)%(LoginFiles.Filename)%(LoginFiles.Extension)</RelativePath>
|
|
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
|
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
|
</ResolvedFileToPublish>
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<Target Name="Prepare the web app" AfterTargets="Build" Condition="$(Configuration) == 'Debug' and '$(SkipWebApp)' != 'true'">
|
|
<Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
|
|
</Target>
|
|
|
|
<Target Name="Prepare static and login pages" AfterTargets="Build" Condition="$(Configuration) == 'Debug'">
|
|
<Copy SourceFiles="@(StaticFiles)" DestinationFolder="$(OutputPath)/wwwroot/%(RecursiveDir)" />
|
|
<Copy SourceFiles="@(LoginFiles)" DestinationFolder="$(OutputPath)/wwwroot/login/%(RecursiveDir)" />
|
|
</Target>
|
|
|
|
<Target Name="Symlink views to output - Linux" AfterTargets="Build" Condition="$(Configuration) == 'Debug' And $(OS) == 'Unix'">
|
|
<Exec WorkingDirectory="$(OutputPath)" Command="ln -fs $(ProjectDir)/$(SpaRoot)" />
|
|
</Target>
|
|
|
|
<Target Name="BuildTranscoder" BeforeTargets="BeforeBuild" Condition="'$(SkipTranscoder)' != 'true'">
|
|
<Exec WorkingDirectory="$(TranscoderRoot)" Condition="'$(IsWindows)' != 'true'" Command="mkdir -p build %26%26 cd build %26%26 cmake .. %26%26 make -j" />
|
|
<Exec WorkingDirectory="$(TranscoderRoot)" Condition="'$(IsWindows)' == 'true'" Command="(if not exist build mkdir build) %26%26 cd build %26%26 cmake .. -G "NMake Makefiles" %26%26 nmake" />
|
|
<Copy SourceFiles="$(TranscoderRoot)/build/$(TranscoderBinary)" DestinationFolder="." />
|
|
</Target>
|
|
|
|
<ItemGroup Condition="'$(SkipTranscoder)' != 'true'">
|
|
<None Include="$(TranscoderBinary)">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
</ItemGroup>
|
|
</Project>
|