2026-09-14 17:38:20 +02:00
<Project>
2026-09-24 19:17:40 +02:00
<!-- One pin per CultLib package, mirroring Packages/manifest.json, which pins each Unity package at its
own tag. The headless build must compile the same revisions Unity consumes, so a package moves
here only when its manifest tag moves. -->
<ItemGroup>
<PinnedCultLib Include="CultMath"
Root="$(CultMathRoot)"
Revision="$(CultMathRevision)"
Project="packages\cultmath\src\CultMath\CultMath.csproj"
RootProperty="CultMathRoot" />
<PinnedCultLib Include="CultCache"
Root="$(CultLibRoot)"
Revision="$(CultLibRevision)"
Project="src\GameCult.Caching\GameCult.Caching.csproj"
RootProperty="CultLibRoot" />
</ItemGroup>
2026-09-14 17:38:20 +02:00
<Target Name="VerifyCultLibRevision"
BeforeTargets="ResolveProjectReferences"
2026-09-24 19:17:40 +02:00
Outputs="%(PinnedCultLib.Identity)"
2026-10-09 14:02:36 +02:00
Condition="'$(SkipCultLibRevisionCheck)' != 'true' and '@(ProjectReference->WithMetadataValue('Filename','CultMath'))' != ''">
2026-09-24 19:17:40 +02:00
<Error Condition="!Exists('%(PinnedCultLib.Root)\%(PinnedCultLib.Project)')"
Text="%(PinnedCultLib.RootProperty) '%(PinnedCultLib.Root)' does not contain %(PinnedCultLib.Project)." />
<Exec Command=""$(GitExecutable)" -C "%(PinnedCultLib.Root)" rev-parse HEAD"
2026-09-14 17:38:20 +02:00
ConsoleToMSBuild="true"
StandardOutputImportance="Low">
2026-09-24 19:17:40 +02:00
<Output TaskParameter="ConsoleOutput" PropertyName="ActualPinnedRevision" />
2026-09-14 17:38:20 +02:00
</Exec>
2026-09-24 19:17:40 +02:00
<Error Condition="'$([System.String]::Copy($(ActualPinnedRevision)).Trim())' != '%(PinnedCultLib.Revision)'"
Text="%(PinnedCultLib.Identity) must be CultLib revision %(PinnedCultLib.Revision); found $([System.String]::Copy($(ActualPinnedRevision)).Trim()). Set %(PinnedCultLib.RootProperty) to the admitted clean worktree." />
<Exec Command=""$(GitExecutable)" -C "%(PinnedCultLib.Root)" status --porcelain --untracked-files=normal"
2026-09-14 17:38:20 +02:00
ConsoleToMSBuild="true"
StandardOutputImportance="Low">
2026-09-24 19:17:40 +02:00
<Output TaskParameter="ConsoleOutput" PropertyName="PinnedStatus" />
2026-09-14 17:38:20 +02:00
</Exec>
2026-09-24 19:17:40 +02:00
<Error Condition="'$([System.String]::Copy($(PinnedStatus)).Trim())' != ''"
Text="%(PinnedCultLib.RootProperty) must be clean before Aetheria consumes it." />
2026-09-14 17:38:20 +02:00
</Target>
</Project>