Directory.Build.props names CultLibRoot (CULTLIB_ROOT, else the sibling checkout) and pins CultLibRevision to f0605367 (CultMath 0.2.1 on main). Directory.Build.targets carries Delvehold's VerifyCultLibRevision guard, checking for CultMath.csproj: HEAD must equal the pin and the worktree must be clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
22 lines
1.3 KiB
XML
22 lines
1.3 KiB
XML
<Project>
|
|
<Target Name="VerifyCultLibRevision"
|
|
BeforeTargets="ResolveProjectReferences"
|
|
Condition="'$(SkipCultLibRevisionCheck)' != 'true'">
|
|
<Error Condition="!Exists('$(CultLibRoot)\packages\cultmath\src\CultMath\CultMath.csproj')"
|
|
Text="CultLibRoot '$(CultLibRoot)' does not contain the required CultMath project." />
|
|
<Exec Command=""$(GitExecutable)" -C "$(CultLibRoot)" rev-parse HEAD"
|
|
ConsoleToMSBuild="true"
|
|
StandardOutputImportance="Low">
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="ActualCultLibRevision" />
|
|
</Exec>
|
|
<Error Condition="'$([System.String]::Copy($(ActualCultLibRevision)).Trim())' != '$(CultLibRevision)'"
|
|
Text="CultLib must be revision $(CultLibRevision); found $([System.String]::Copy($(ActualCultLibRevision)).Trim()). Set CultLibRoot to the admitted clean worktree." />
|
|
<Exec Command=""$(GitExecutable)" -C "$(CultLibRoot)" status --porcelain --untracked-files=normal"
|
|
ConsoleToMSBuild="true"
|
|
StandardOutputImportance="Low">
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="CultLibStatus" />
|
|
</Exec>
|
|
<Error Condition="'$([System.String]::Copy($(CultLibStatus)).Trim())' != ''"
|
|
Text="CultLibRoot must be clean before Aetheria consumes it." />
|
|
</Target>
|
|
</Project>
|