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"/>
10 <PrepareResourcesDependsOn>
13 $(PrepareResourcesDependsOn)
14 </PrepareResourcesDependsOn>
16 <PrepareForRunDependsOn>
17 GenerateMoonlightManifest;
20 $(PrepareForRunDependsOn)
21 </PrepareForRunDependsOn>
23 <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' == 'Windows_NT'">smcs.bat</CscToolExe>
24 <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' != 'Windows_NT'">smcs</CscToolExe>
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>
34 <MoonlightManifestFile Include="$(OutDir)AppManifest.xaml">
35 <TargetPath>AppManifest.xaml</TargetPath>
36 </MoonlightManifestFile>
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>
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)')" />
50 <CreateProperty Value="$(AssemblySearchPaths);@(_FrameworkPath->'%(Identity)-redist')"
51 Condition="Exists('@(_FrameworkPath->'%(Identity)-redist')')">
52 <Output TaskParameter="Value" PropertyName="AssemblySearchPaths"/>
56 <Target Name="Respack">
58 Resources="@(Resource);@(Page);@(ApplicationDefinition)"
59 OutputFile="$(IntermediateOutputPath)$(AssemblyName).g.resources">
60 <Output TaskParameter="OutputFile" ItemName="FileWrites"/>
61 <Output TaskParameter="OutputFile" ItemName="ManifestResourceWithNoCulture"/>
65 <Target Name="GenerateXamlG">
66 <CreateItem Include="@(Compile)" Condition="'%(Compile.Extension)' == '.xaml' and '%(Compile.Generator)' == 'MSBuild:MarkupCompilePass1'">
67 <Output TaskParameter="Include" ItemName="XamlFiles"/>
69 <CreateItem Include="@(ApplicationDefinition)" Condition="'%(Extension)' == '.xaml' and '%(Generator)' == 'MSBuild:MarkupCompilePass1'">
70 <Output TaskParameter="Include" ItemName="XamlFiles"/>
72 <CreateItem Include="@(Page)" Condition="'%(Extension)' == '.xaml' and '%(Generator)' == 'MSBuild:MarkupCompilePass1'">
73 <Output TaskParameter="Include" ItemName="XamlFiles"/>
77 Sources="@(XamlFiles)"
78 Language = "$(Language)"
79 AssemblyName = "$(AssemblyName)"
80 OutputFiles = "@(XamlFiles->'$(IntermediateOutputPath)%(Filename).g$(DefaultLanguageSourceExtension)')"
82 <Output TaskParameter="OutputFiles" ItemName="Compile"/>
83 <Output TaskParameter="OutputFiles" ItemName="FileWrites"/>
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)"
96 Condition = "'$(GenerateSilverlightManifest)' == 'true'"
98 <Output TaskParameter="ManifestFile" ItemName="FileWrites"/>
99 </GenerateMoonlightManifest>
103 <GenerateXapDependsOn>
105 GenerateMoonlightManifest;
107 </GenerateXapDependsOn>
109 <Target Name="GenerateXap" DependsOnTargets="$(GenerateXapDependsOn)" Condition="'$(XapOutputs)' == 'true'">
110 <!-- Looks for %(DestinationSubdirectory) in LocalCopyReferences -->
112 InputFiles="@(XapInputFiles)"
113 LocalCopyReferences="@(ReferenceCopyLocalPaths)"
114 XapFilename="$(OutDir)$(XapFilename)"
116 <Output TaskParameter="XapFilename" ItemName="FileWrites"/>
120 <Target Name="CreateTestPage" Condition="'$(CreateTestPage)' == 'true' and '$(XapOutputs)' == 'true'">
122 XapFileName="$(XapFileName)"
123 Title="$(AssemblyName)"
124 TestPageFilename="$(OutDir)$(TestPageFilename)">
125 <Output TaskParameter="TestPageFilename" ItemName="FileWrites"/>
129 <Target Name="GetXapInputFiles">
130 <CreateItem Include="@(IntermediateAssembly)" AdditionalMetadata="TargetPath=$(AssemblyName)$(TargetExt)">
131 <Output TaskParameter="Include" ItemName="XapInputFiles"/>
134 <CreateItem Include="@(ContentWithTargetPath)">
135 <Output TaskParameter="Include" ItemName="XapInputFiles"/>
138 <CreateItem Include="@(MoonlightManifestFile)" Condition="'$(GenerateSilverlightManifest)' == 'true'">
139 <Output TaskParameter="Include" ItemName="XapInputFiles"/>
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"/>