Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: cilbackend
Fetching contributors…

Cannot retrieve contributors at this time

98 lines (79 sloc) 4.587 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\CgOpToCLROp.pm;src\CLRTypes.pm;src\CSharpBackend.pm;src\CodeGen.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.