New tests.
[mono.git] / mcs / tools / xbuild / xbuild / Microsoft.Silverlight.Common.targets
1 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2         <UsingTask TaskName="Moonlight.Build.Tasks.CreateTestPage" AssemblyFile="Moonlight.Build.Tasks.dll" />
3         <UsingTask TaskName="Moonlight.Build.Tasks.GenerateMoonlightManifest" AssemblyFile="Moonlight.Build.Tasks.dll"/>
4         <UsingTask TaskName="Moonlight.Build.Tasks.GenerateXap" AssemblyFile="Moonlight.Build.Tasks.dll" />
5         <UsingTask TaskName="Moonlight.Build.Tasks.GetMoonlightFrameworkPath" AssemblyFile="Moonlight.Build.Tasks.dll"/>
6         <UsingTask TaskName="Moonlight.Build.Tasks.Respack" AssemblyFile="Moonlight.Build.Tasks.dll" />
7         <UsingTask TaskName="Moonlight.Build.Tasks.XamlG" AssemblyFile="Moonlight.Build.Tasks.dll"/>
8
9         <PropertyGroup>
10                 <PrepareResourcesDependsOn>
11                         GenerateXamlG;
12                         Respack;
13                         $(PrepareResourcesDependsOn)
14                 </PrepareResourcesDependsOn>
15
16                 <PrepareForRunDependsOn>
17                         GenerateMoonlightManifest;
18                         GenerateXap;
19                         CreateTestPage;
20                         $(PrepareForRunDependsOn)
21                 </PrepareForRunDependsOn>
22
23                 <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' == 'Windows_NT'">smcs.bat</CscToolExe>
24                 <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' != 'Windows_NT'">smcs</CscToolExe>
25
26                 <XapFileName Condition="'$(XapFileName)' == ''">$(AssemblyName).xap</XapFileName>
27                 <TestPageFileName Condition="'$(TestPageFileName)' == ''">TestPage.html</TestPageFileName>
28                 <SilverlightVersion Condition="'$(SilverlightVersion)' == ''">@SILVERLIGHT_VERSION@</SilverlightVersion>
29                 <RuntimeVersion Condition="'$(RuntimeVersion)' == '' and '$(SilverlightVersion)' == '2.0'">2.0.31005.0</RuntimeVersion>
30                 <RuntimeVersion Condition="'$(RuntimeVersion)' == '' and '$(SilverlightVersion)' == '3.0'">3.0.40624.0</RuntimeVersion>
31         </PropertyGroup>
32
33         <ItemGroup>
34                 <MoonlightManifestFile Include="$(OutDir)AppManifest.xaml">
35                         <TargetPath>AppManifest.xaml</TargetPath>
36                 </MoonlightManifestFile>
37         </ItemGroup>
38
39         <!-- Override 'GetFrameworkPaths' -->
40         <Target Name="GetFrameworkPaths">
41                 <GetMoonlightFrameworkPath
42                         SilverlightVersion="$(SilverlightVersion)">
43                         <Output TaskParameter="FrameworkPath" ItemName="TargetFrameworkDirectories"/>
44                         <Output TaskParameter="FrameworkPath" ItemName="_FrameworkPath"/>
45                 </GetMoonlightFrameworkPath>
46
47                 <Error Text="Moonlight framework v$(SilverlightVersion) doesn't seem to be installed. Expected framework directory could not be found (@(_FrameworkPath)). To force a particular silverlight version, try: xbuild $(MSBuildProjectFile) /p:SilverlightVersion=2.0"
48                         Condition="!Exists('@(_FrameworkPath)')" />
49
50                 <CreateProperty Value="$(AssemblySearchPaths);@(_FrameworkPath->'%(Identity)-redist')"
51                                 Condition="Exists('@(_FrameworkPath->'%(Identity)-redist')')">
52                         <Output TaskParameter="Value" PropertyName="AssemblySearchPaths"/>
53                 </CreateProperty>
54         </Target>
55
56         <Target Name="Respack">
57                 <Respack
58                         Resources="@(Resource);@(Page);@(ApplicationDefinition)"
59                         OutputFile="$(IntermediateOutputPath)$(AssemblyName).g.resources">
60                         <Output TaskParameter="OutputFile" ItemName="FileWrites"/>
61                         <Output TaskParameter="OutputFile" ItemName="ManifestResourceWithNoCulture"/>
62                 </Respack>
63         </Target>
64
65         <Target Name="GenerateXamlG">
66                 <CreateItem Include="@(Compile)" Condition="'%(Compile.Extension)' == '.xaml' and '%(Compile.Generator)' == 'MSBuild:MarkupCompilePass1'">
67                         <Output TaskParameter="Include" ItemName="XamlFiles"/>
68                 </CreateItem>
69                 <CreateItem Include="@(ApplicationDefinition)" Condition="'%(Extension)' == '.xaml' and '%(Generator)' == 'MSBuild:MarkupCompilePass1'">
70                         <Output TaskParameter="Include" ItemName="XamlFiles"/>
71                 </CreateItem>
72                 <CreateItem Include="@(Page)" Condition="'%(Extension)' == '.xaml' and '%(Generator)' == 'MSBuild:MarkupCompilePass1'">
73                         <Output TaskParameter="Include" ItemName="XamlFiles"/>
74                 </CreateItem>
75
76                 <XamlG
77                         Sources="@(XamlFiles)"
78                         Language = "$(Language)"
79                         AssemblyName = "$(AssemblyName)"
80                         OutputFiles = "@(XamlFiles->'$(IntermediateOutputPath)%(Filename).g$(DefaultLanguageSourceExtension)')"
81                 >
82                         <Output TaskParameter="OutputFiles" ItemName="Compile"/>
83                         <Output TaskParameter="OutputFiles" ItemName="FileWrites"/>
84                 </XamlG>
85         </Target>
86
87         <Target Name="GenerateMoonlightManifest">
88                 <GenerateMoonlightManifest
89                         ManifestFile="@(MoonlightManifestFile->'%(Identity)')"
90                         EntryPointAssembly="$(AssemblyName)$(TargetExt)"
91                         References="@(ReferenceCopyLocalPaths)"
92                         SilverlightManifestTemplate="$(SilverlightManifestTemplate)"
93                         SilverlightAppEntry="$(SilverlightAppEntry)"
94                         RuntimeVersion="$(RuntimeVersion)"
95
96                         Condition = "'$(GenerateSilverlightManifest)' == 'true'"
97                 >
98                         <Output TaskParameter="ManifestFile" ItemName="FileWrites"/>
99                 </GenerateMoonlightManifest>
100         </Target>
101
102         <PropertyGroup>
103                 <GenerateXapDependsOn>
104                         GenerateXamlG;
105                         GenerateMoonlightManifest;
106                         GetXapInputFiles
107                 </GenerateXapDependsOn>
108         </PropertyGroup>
109         <Target Name="GenerateXap" DependsOnTargets="$(GenerateXapDependsOn)" Condition="'$(XapOutputs)' == 'true'">
110                 <!-- Looks for %(DestinationSubdirectory) in LocalCopyReferences -->
111                 <GenerateXap
112                         InputFiles="@(XapInputFiles)"
113                         LocalCopyReferences="@(ReferenceCopyLocalPaths)"
114                         XapFilename="$(OutDir)$(XapFilename)"
115                 >
116                         <Output TaskParameter="XapFilename" ItemName="FileWrites"/>
117                 </GenerateXap>
118         </Target>
119
120         <Target Name="CreateTestPage" Condition="'$(CreateTestPage)' == 'true' and '$(XapOutputs)' == 'true'">
121                 <CreateTestPage
122                         XapFileName="$(XapFileName)"
123                         Title="$(AssemblyName)"
124                         TestPageFilename="$(OutDir)$(TestPageFilename)">
125                         <Output TaskParameter="TestPageFilename" ItemName="FileWrites"/>
126                 </CreateTestPage>
127         </Target>
128
129         <Target Name="GetXapInputFiles">
130                 <CreateItem Include="@(IntermediateAssembly)" AdditionalMetadata="TargetPath=$(AssemblyName)$(TargetExt)">
131                         <Output TaskParameter="Include" ItemName="XapInputFiles"/>
132                 </CreateItem>
133
134                 <CreateItem Include="@(ContentWithTargetPath)">
135                         <Output TaskParameter="Include" ItemName="XapInputFiles"/>
136                 </CreateItem>
137
138                 <CreateItem Include="@(MoonlightManifestFile)" Condition="'$(GenerateSilverlightManifest)' == 'true'">
139                         <Output TaskParameter="Include" ItemName="XapInputFiles"/>
140                 </CreateItem>
141
142                 <CreateItem Include="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb" AdditionalMetadata="TargetPath=$(AssemblyName)$(TargetExt).mdb"
143                                 Condition="Exists('$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb')">
144                         <Output TaskParameter="Include" ItemName="XapInputFiles"/>
145                 </CreateItem>
146         </Target>
147 </Project>