-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsearch.xml
More file actions
37 lines (31 loc) · 1.3 KB
/
Copy pathsearch.xml
File metadata and controls
37 lines (31 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<Project DefaultTargets="Build">
<Import Project="$(MSBuildThisFileDirectory)Directory.Build.targets" Condition="Exists('$(MSBuildThisFileDirectory)Directory.Build.targets')" />
<Target Name="Build">
<MSBuild Projects="$(MSBuildProjectFullPath)"
Targets="Search"
Properties="Min=$(Min);Max=$(Max);N=$(N)">
<Output TaskParameter="TargetOutputs" ItemName="Milestones" />
</MSBuild>
<Message Text="RESULT=@(Milestones)" Importance="high" />
</Target>
<Target Name="Search" Returns="@(Result)">
<PropertyGroup>
<_Mid>$([System.Convert]::ToInt32($([MSBuild]::Divide($([MSBuild]::Add($(Min), $(Max))), 2))))</_Mid>
</PropertyGroup>
<ItemGroup>
<Result Include="$(_Mid)" />
</ItemGroup>
<MSBuild Projects="$(MSBuildProjectFullPath)"
Targets="Search"
Properties="Min=$(Min);Max=$(_Mid);N=$(N)"
Condition="$(_Mid) > $(N)">
<Output TaskParameter="TargetOutputs" ItemName="Result" />
</MSBuild>
<MSBuild Projects="$(MSBuildProjectFullPath)"
Targets="Search"
Properties="Min=$([MSBuild]::Add($(_Mid), 1));Max=$(Max);N=$(N)"
Condition="$(_Mid) < $(N)">
<Output TaskParameter="TargetOutputs" ItemName="Result" />
</MSBuild>
</Target>
</Project>