Files
2026-07-13 13:13:17 +08:00

183 lines
11 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<Import Project="$(SolutionDir)/Tixl.props" />
<PropertyGroup>
<TargetFramework>net10.0-windows</TargetFramework>
<ImplicitUsings>disable</ImplicitUsings>
<Nullable>disable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<RootNamespace>Lib</RootNamespace>
<AssemblyName>$(RootNamespace)</AssemblyName>
<Configurations>Debug;Release</Configurations>
<Platforms>AnyCPU</Platforms>
<VersionPrefix>1.670.999</VersionPrefix>
<HomeGuid>00000000-0000-0000-0000-000000000000</HomeGuid>
<EditorVersion>4.2.0</EditorVersion>
<IsEditorOnly>false</IsEditorOnly>
<DisableTransitiveProjectReferences>true</DisableTransitiveProjectReferences>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<Deterministic>true</Deterministic>
<!-- NU1701 must be suppressed project-wide: it re-fires for net-framework packages arriving
transitively (OpenGL.Net via Mediapipe, Rug.Osc via IoServices), and per-package NoWarn
doesn't flow across project references. Same suppression as Video.csproj. -->
<NoWarn>$(NoWarn);NU1900;NU1701</NoWarn>
<PackageId>55612b33-e330-4730-a981-c2227b4cc904</PackageId>
<IsArchived>false</IsArchived>
<!-- Set the output path based on the version and release mode -->
</PropertyGroup>
<ItemGroup>
<Using Include="System" />
<Using Include="System.Numerics" />
<Using Include="System.Linq" />
<Using Include="System.Linq.Enumerable" Static="True" />
<Using Include="System.Collections" />
<Using Include="System.Linq.Expressions" />
<Using Include="System.Collections.Generic" />
<Using Include="System.Collections.Concurrent" />
<Using Include="System.Collections.ObjectModel" />
<Using Include="System.Diagnostics.CodeAnalysis" />
<Using Include="System.Runtime.CompilerServices" />
<Using Include="System.Text" />
<Using Include="System.Net" />
<Using Include="System.Net.Http" />
<Using Include="System.Threading.Tasks" />
<Using Include="System.IO" />
<Using Include="T3.Core.Logging" />
<Using Include="System.Runtime.InteropServices" />
<Using Include="T3.Core.Operator" />
<Using Include="T3.Core.Operator.Attributes" />
<Using Include="T3.Core.Operator.Slots" />
<Using Include="T3.Core.DataTypes" />
<Using Include="T3.Core.Operator.Interfaces" />
<Using Include="T3.Core.Resource" />
<Using Alias="Buffer" Include="SharpDX.Direct3D11.Buffer" />
<Using Alias="ShaderResourceView" Include="SharpDX.Direct3D11.ShaderResourceView" />
<Using Alias="UnorderedAccessView" Include="SharpDX.Direct3D11.UnorderedAccessView" />
<Using Alias="CullMode" Include="SharpDX.Direct3D11.CullMode" />
<Using Alias="FillMode" Include="SharpDX.Direct3D11.FillMode" />
<Using Alias="TextureAddressMode" Include="SharpDX.Direct3D11.TextureAddressMode" />
<Using Alias="Filter" Include="SharpDX.Direct3D11.Filter" />
<Using Alias="Format" Include="SharpDX.DXGI.Format" />
<Using Alias="Texture2DDescription" Include="SharpDX.Direct3D11.Texture2DDescription" />
<Using Alias="Texture3DDescription" Include="SharpDX.Direct3D11.Texture3DDescription" />
<Using Alias="RenderTargetBlendDescription" Include="SharpDX.Direct3D11.RenderTargetBlendDescription" />
<Using Alias="SamplerState" Include="SharpDX.Direct3D11.SamplerState" />
<Using Alias="UnorderedAccessViewBufferFlags" Include="SharpDX.Direct3D11.UnorderedAccessViewBufferFlags" />
<Using Alias="RawRectangle" Include="SharpDX.Mathematics.Interop.RawRectangle" />
<Using Alias="RawViewportF" Include="SharpDX.Mathematics.Interop.RawViewportF" />
<Using Alias="ResourceUsage" Include="SharpDX.Direct3D11.ResourceUsage" />
<Using Alias="ResourceOptionFlags" Include="SharpDX.Direct3D11.ResourceOptionFlags" />
<Using Alias="InputLayout" Include="SharpDX.Direct3D11.InputLayout" />
<using Alias="PrimitiveTopology" Include="SharpDX.Direct3D.PrimitiveTopology" />
<Using Alias="BlendState" Include="SharpDX.Direct3D11.BlendState" />
<Using Alias="Comparison" Include="SharpDX.Direct3D11.Comparison" />
<Using Alias="BlendOption" Include="SharpDX.Direct3D11.BlendOption" />
<Using Alias="BlendOperation" Include="SharpDX.Direct3D11.BlendOperation" />
<Using Alias="BindFlags" Include="SharpDX.Direct3D11.BindFlags" />
<Using Alias="ColorWriteMaskFlags" Include="SharpDX.Direct3D11.ColorWriteMaskFlags" />
<Using Alias="CpuAccessFlags" Include="SharpDX.Direct3D11.CpuAccessFlags" />
<Using Alias="DepthStencilView" Include="SharpDX.Direct3D11.DepthStencilView" />
<Using Alias="DepthStencilState" Include="SharpDX.Direct3D11.DepthStencilState" />
<Using Alias="RenderTargetView" Include="SharpDX.Direct3D11.RenderTargetView" />
<Using Alias="RasterizerState" Include="SharpDX.Direct3D11.RasterizerState" />
<Using Alias="Point" Include="T3.Core.DataTypes.Point" />
<Using Alias="Texture2D" Include="T3.Core.DataTypes.Texture2D" />
<Using Alias="Texture3D" Include="T3.Core.DataTypes.Texture3D" />
<Using Alias="Vector2" Include="System.Numerics.Vector2" />
<Using Alias="Vector3" Include="System.Numerics.Vector3" />
<Using Alias="Vector4" Include="System.Numerics.Vector4" />
<Using Alias="Matrix4x4" Include="System.Numerics.Matrix4x4" />
<Using Alias="Quaternion" Include="System.Numerics.Quaternion" />
<Using Alias="Int2" Include="T3.Core.DataTypes.Vector.Int2" />
<Using Alias="Int3" Include="T3.Core.DataTypes.Vector.Int3" />
<Using Alias="Int4" Include="T3.Core.DataTypes.Vector.Int4" />
<Using Alias="ResourceManager" Include="T3.Core.Resource.ResourceManager" />
<Using Alias="ComputeShader" Include="T3.Core.DataTypes.ComputeShader" />
<Using Alias="PixelShader" Include="T3.Core.DataTypes.PixelShader" />
<Using Alias="VertexShader" Include="T3.Core.DataTypes.VertexShader" />
<Using Alias="GeometryShader" Include="T3.Core.DataTypes.GeometryShader" />
<Using Alias="SampleDescription" Include="SharpDX.DXGI.SampleDescription" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Mediapipe\Mediapipe.csproj" Private="false" PrivateAssets="all" />
<ProjectReference Include="..\..\Core\Core.csproj" Private="false" PrivateAssets="all" />
<ProjectReference Include="..\..\IoServices\IoServices.csproj" Private="false" PrivateAssets="all" />
<ProjectReference Include="..\..\Serialization\Serialization.csproj" Private="false" PrivateAssets="all" />
<ProjectReference Include="..\..\SystemUi\SystemUi.csproj" Private="false" PrivateAssets="all" />
<ProjectReference Include="..\..\Logging\Logging.csproj" Private="false" PrivateAssets="all" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="DirectShowLib.Standard" Version="2.1.0" />
<PackageReference Include="System.ServiceModel.Primitives" Version="10.0.652802" />
<PackageReference Include="System.ServiceModel.Http" Version="10.0.652802" />
<PackageReference Include="System.Security.Cryptography.Xml" Version="10.0.6" />
<PackageReference Include="System.ServiceModel.Security" Version="6.0.0" />
<PackageReference Include="ManagedBass.Mix" Version="4.0.2" />
<PackageReference Include="OpenCvSharp4" Version="4.11.0.20250507" />
<PackageReference Include="OpenCvSharp4.Extensions" Version="4.11.0.20250507" />
<PackageReference Include="OpenCvSharp4.runtime.win" Version="4.11.0.20250507" />
<PackageReference Include="OpenCvSharp4.Windows" Version="4.11.0.20250507" />
<PackageReference Include="SharpGLTF.Core" Version="1.0.6" />
<PackageReference Include="Svg" Version="3.4.7" />
</ItemGroup>
<!-- Copy package content into this project's own output only (not transitively to other projects).
Uses a custom Target instead of <Content CopyToOutputDirectory> to prevent MSBuild from
propagating these files into every project that builds as part of the same solution. -->
<ItemGroup Condition="'$(Configuration)' == 'Release'">
<PackageAssets Include="Assets/**/*" Exclude="bin/**" />
<PackageSymbols Include="**/*.t3" Exclude="bin/**" />
<PackageSymbolUis Include="**/*.t3ui" Exclude="bin/**" />
<PackageSourceCode Include="**/*.cs" Exclude="bin/**;obj/**" />
<PackageMeta Include=".meta/**/*" />
</ItemGroup>
<Target Name="CopyPackageContent" AfterTargets="AfterBuild" Condition="'$(Configuration)' == 'Release'">
<Copy SourceFiles="@(PackageAssets)" DestinationFiles="@(PackageAssets->'$(OutputPath)/Assets/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
<Copy SourceFiles="@(PackageSymbols)" DestinationFiles="@(PackageSymbols->'$(OutputPath)/Symbols/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
<Copy SourceFiles="@(PackageSymbolUis)" DestinationFiles="@(PackageSymbolUis->'$(OutputPath)/SymbolUis/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
<Copy SourceFiles="@(PackageSourceCode)" DestinationFiles="@(PackageSourceCode->'$(OutputPath)/SourceCode/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
<Copy SourceFiles="@(PackageMeta)" DestinationFiles="@(PackageMeta->'$(OutputPath)/.meta/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
</Target>
<ItemGroup>
<Folder Include="io\video\" />
</ItemGroup>
<Target Name="ClearBuildOutput" BeforeTargets="BeforeBuild">
<!-- Clear previous build output, but keep the FFmpeg native DLLs. A running editor with a video playing has
them loaded, and native libraries can't be unloaded, so a blunt RemoveDir fails with "access denied" and
breaks rebuild / hot-reload. These DLLs come from NuGet and don't change between builds; a stale one is
refreshed by restarting the editor. ContinueOnError so any other transiently-locked file can't fail the build. -->
<ItemGroup>
<_StaleBuildOutput Include="bin/$(Configuration)/**/*" Exclude="bin/$(Configuration)/**/av*.dll;bin/$(Configuration)/**/sw*.dll;bin/$(Configuration)/**/postproc*.dll" />
</ItemGroup>
<Delete Files="@(_StaleBuildOutput)" ContinueOnError="true" />
</Target>
<Target Name="CreatePackageInfo" AfterTargets="AfterBuild">
<ItemGroup Label="Define json structure of referenced operator packages">
<OpPacks Include="@(Operators)">
<OpPackageInfoJson>{
"Identity": "%(Identity)",
"Version": "%(Version)",
"ResourcesOnly": "%(ResourcesOnly)"
}</OpPackageInfoJson>
</OpPacks>
</ItemGroup>
<PropertyGroup>
<OperatorReferenceArray>@(OpPacks -> '%(OpPackageInfoJson)', ',')</OperatorReferenceArray>
<OperatorPackageInfoJson>{
"HomeGuid": "$(HomeGuid)",
"PackageId": "$(PackageId)",
"RootNamespace": "$(RootNamespace)",
"AssemblyFileName": "$(RootNamespace)",
"Version": "$(VersionPrefix)",
"EditorVersion": "$(EditorVersion)",
"IsEditorOnly": "$(IsEditorOnly)",
"OperatorPackages": [$(OperatorReferenceArray)
]
}</OperatorPackageInfoJson>
</PropertyGroup>
<WriteLinesToFile File="$(OutputPath)/OperatorPackage.json" Lines="$(OperatorPackageInfoJson)" Overwrite="True" Encoding="UTF-8" />
</Target>
<!-- OpenCV's FFmpeg video plugin is unused now that VideoStreamInput decodes via FFmpeg directly, so drop
it to avoid shipping a second FFmpeg alongside the LGPL FFmpeg build. -->
<Target Name="DropUnusedOpenCvFfmpegPlugin" AfterTargets="AfterBuild">
<Delete Files="$(OutputPath)/runtimes/win-x64/native/opencv_videoio_ffmpeg4110_64.dll" />
</Target>
</Project>