forked from clojure/clojure-clr
/
build.proj
56 lines (51 loc) · 2.88 KB
/
build.proj
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug 3.5</Configuration>
<!--<Platform Condition=" '$(Platform)' == '' ">Any CPU</Platform>-->
<cljc>Clojure.Compile.exe</cljc>
<clji>Clojure.Main.exe</clji>
</PropertyGroup>
<!--Is there a way to avoid this duplication? This is also encoded in the project files, although relative to a different path -->
<PropertyGroup Condition=" '$(Configuration)' == 'Debug 3.5' ">
<OutputPath>..\bin\3.5\Debug\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release 3.5' ">
<OutputPath>..\bin\3.5\Release\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug 4.0' ">
<OutputPath>..\bin\4.0\Debug\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release 4.0' ">
<OutputPath>..\bin\4.0\Release\</OutputPath>
</PropertyGroup>
<Target Name="Build">
<MSBuild Projects="ClojureCLR.sln"/>
</Target>
<Target Name="CompileTest" DependsOnTargets="Build">
<Exec Command="$(cljc) clojure.test-clojure.genclass.examples clojure.test-clojure.protocols.examples clojure.test-clojure.protocols.more-examples clojure.test-clojure.repl.example"
WorkingDirectory="$(OutputPath)"/>
</Target>
<Target Name="Test" DependsOnTargets="Build;CompileTest">
<Copy SkipUnchangedFiles="true" SourceFiles="Clojure.Source\clojure\run_tests.clj" DestinationFolder="$(OutputPath)" />
<Exec Command="$(clji) clojure\run_tests.clj"
WorkingDirectory="$(OutputPath)"/>
</Target>
<Target Name="Dist" DependsOnTargets="Build">
<ItemGroup>
<!--DLR-->
<Dlls Include="$(OutputPath)\Microsoft.*" />
<!--Clojure dlls and exes-->
<Dlls Include="$(OutputPath)\Clojure.*"
Exclude="$(OutputPath)\Clojure.Tests.dll;$(OutputPath)\Clojure.Tests.pdb;
$(OutputPath)\Clojure.Source.dll;$(OutputPath)\Clojure.Source.pdb;
$(OutputPath)\clojure.test-clojure.genclass.examples.ExampleClass.dll;
$(OutputPath)\clojure.test-clojure.genclass.examples.ExampleClass.pdb;
$(OutputPath)\Clojure.Main.vshost.exe;$(OutputPath)\Clojure.Main.vshost.exe.manifest" />
<!--clj and AOT clj files-->
<CljFiles Include="$(OutputPath)\clojure\**\*" Exclude="$(OutputPath)\clojure\test_clojure\**\*" />
</ItemGroup>
<Copy SourceFiles="@(Dlls)" DestinationFolder="..\dist\$(Configuration)" SkipUnchangedFiles="true" />
<Copy SourceFiles="@(CljFiles)" DestinationFolder="..\dist\$(Configuration)\clojure\%(RecursiveDir)" SkipUnchangedFiles="true" />
</Target>
</Project>