Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

98 lines (79 sloc) 4.516 kb
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="2.0">
<UsingTask TaskName="Perl" AssemblyFile="obj\PerlTask.dll"/>
<PropertyGroup>
<!-- Tool paths -->
<Subversion>svn</Subversion>
<Make>make</Make>
<Perl>perl</Perl>
<!-- Other centralized variables -->
<SpecTestUrl>http://svn.pugscode.org/pugs/t/spec</SpecTestUrl>
<!-- infrastructure -->
<SpecTest_existed Condition="Exists('t/spec')">Y</SpecTest_existed>
</PropertyGroup>
<ItemGroup>
<CompilerPerl Include="src\Body.pm;src\CClass.pm;src\CgOp.pm;src\CompilerDriver.pm;src\Metamodel.pm;src\Op.pm;src\Optimizer\Beta.pm;src\Optimizer\RxSimple.pm;src\Optimizer\Simplifier.pm;src\RxOp.pm;src\Sig.pm;src\Unit.pm;src\Niecza\Actions.pm;src\Niecza\Grammar.pmc"/>
<RTS Include="lib\Kernel.cs;lib\JSYNC.cs;lib\Cursor.cs;lib\Builtins.cs;lib\NieczaCLR.cs"/>
</ItemGroup>
<!-- Meta targets -->
<Target Name="Default" DependsOnTargets="CORE.dll;WriteVersion"/>
<Target Name="SafeMode" DependsOnTargets="SAFE.dll;WriteVersion"/>
<Target Name="Test" DependsOnTargets="CORE.dll;Test.dll;WriteVersion;PerlTask">
<Perl Code="compile(stopafter => 'writenam', file => 'test.pl');"/>
<Exec Command="mono obj/CLRBackend.exe obj MAIN.nam MAIN.exe 1"/>
<Exec Command="prove -e mono obj/MAIN.exe"/>
</Target>
<Target Name="WriteVersion">
<Exec Command="git describe --always &gt; VERSION"/>
</Target>
<!-- Libraries -->
<Target Name="Kernel.dll" Inputs="@(RTS)" Outputs="obj\Kernel.dll">
<Csc Sources="@(RTS)" TargetType="library"
OutputAssembly="obj\Kernel.dll" EmitDebugInformation="true"
AllowUnsafeBlocks="true"/>
</Target>
<Target Name="CLRBackend.exe" DependsOnTargets="Kernel.dll"
Inputs="obj\Kernel.dll;lib\CLRBackend.cs" Outputs="obj\CLRBackend.exe">
<Csc Sources="lib\CLRBackend.cs" TargetType="exe"
References="Kernel.dll" OutputAssembly="obj\CLRBackend.exe"
EmitDebugInformation="true" AdditionalLibPaths="obj"/>
</Target>
<Target Name="CORE.nam" Inputs="@(CompilerPerl);obj\SAFE.store;lib\CORE.setting" Outputs="obj\CORE.nam;obj\CORE.store" DependsOnTargets="SAFE.nam;Grammar;PerlTask">
<Perl Code="compile(stopafter => 'writenam', lang => 'SAFE', setting => 1, name => 'CORE');"/>
</Target>
<Target Name="SAFE.nam" Inputs="@(CompilerPerl);lib\SAFE.setting"
Outputs="obj\SAFE.nam;obj\SAFE.store"
DependsOnTargets="Grammar;PerlTask">
<Perl Code="compile(stopafter => 'writenam', lang => 'NULL', setting => 1, name => 'SAFE');"/>
</Target>
<Target Name="Test.nam" Inputs="@(CompilerPerl);obj\CORE.store;lib\Test.pm6"
Outputs="obj\Test.nam;obj\Test.store"
DependsOnTargets="CORE.nam;Grammar;PerlTask">
<Perl Code="compile(stopafter => 'writenam', name => 'Test');"/>
</Target>
<Target Name="CORE.dll" Inputs="obj\CORE.nam;obj\SAFE.dll;obj\Kernel.dll" Outputs="obj\CORE.dll" DependsOnTargets="CORE.nam;SAFE.dll;Kernel.dll">
<Exec Command="mono obj/CLRBackend.exe obj CORE.nam CORE.dll 0"/>
</Target>
<Target Name="SAFE.dll" Inputs="obj\SAFE.nam;obj\Kernel.dll"
Outputs="obj\SAFE.dll" DependsOnTargets="SAFE.nam;Kernel.dll;CLRBackend.exe">
<Exec Command="mono obj/CLRBackend.exe obj SAFE.nam SAFE.dll 0"/>
</Target>
<Target Name="Test.dll" Inputs="obj\Test.nam;obj\CORE.dll;obj\Kernel.dll" Outputs="obj\Test.dll" DependsOnTargets="Test.nam;CORE.dll;Kernel.dll">
<Exec Command="mono obj/CLRBackend.exe obj Test.nam Test.dll 0"/>
</Target>
<!-- Proper compiler bits -->
<Target Name="Grammar" Inputs="src\Niecza\Grammar.pm6" Outputs="src\Niecza\Grammar.pmc">
<Exec Command="viv --noperl6lib -5 -o src/Niecza/Grammar.pmc src/Niecza/Grammar.pm6"/>
</Target>
<Target Name="CheckoutSpecTest">
<Exec Condition="$(SpecTest_existed) != 'Y'"
Command="$(Subversion) checkout $(SpecTestUrl) t/spec"/>
<Exec Condition="$(STD_existed) == 'Y'"
Command="$(Subversion) update t/spec"/>
</Target>
<Target Name="PerlTask" Inputs="PerlTask.cs" Outputs="obj\PerlTask.dll">
<Csc Sources="PerlTask.cs" TargetType="library"
OutputAssembly="obj\PerlTask.dll"
References="Microsoft.Build.Framework.dll;Microsoft.Build.Utilities.dll"/>
</Target>
</Project>
Jump to Line
Something went wrong with that request. Please try again.