1<?xml version="1.0" encoding="utf-8"?>
2<Project InitialTargets="PreBuild" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
4  <!-- normalize configuration case -->
5  <PropertyGroup Condition="'$(CONFIGURATION)'=='Release'">
6	<CONFIG>Production</CONFIG>
7  </PropertyGroup>
8  <PropertyGroup Condition="'$(CONFIGURATION)'=='Debug'">
9	<CONFIG>DebugSuffix</CONFIG>
10  </PropertyGroup>
11
12  <!-- Wrapper to build JavaScriptCore for both win32 and x64. -->
13  <PropertyGroup>
14    <OFFICIAL_BUILD>1</OFFICIAL_BUILD>
15    <WebKit_Libraries>$(SRCROOT)\AppleInternal</WebKit_Libraries>
16    <WebKit_OutputDir>$(OBJROOT)</WebKit_OutputDir>
17    <AppleInternal>$(DSTROOT)\AppleInternal</AppleInternal>
18    <AppleInternalLib32>$(AppleInternal)\lib32</AppleInternalLib32>
19    <AppleInternalLib64>$(AppleInternal)\lib64</AppleInternalLib64>
20    <AppleInternalBin32>$(AppleInternal)\bin32</AppleInternalBin32>
21    <AppleInternalBin64>$(AppleInternal)\bin64</AppleInternalBin64>
22    <AppleInternal32Symbols>$(AppleInternal)\public32\sym</AppleInternal32Symbols>
23    <AppleInternal64Symbols>$(AppleInternal)\public64\sym</AppleInternal64Symbols>
24    <ProgramFilesAAS32>Program Files (x86)\Common Files\Apple\Apple Application Support</ProgramFilesAAS32>
25    <ProgramFilesAAS64>Program Files\Common Files\Apple\Apple Application Support</ProgramFilesAAS64>
26    <ConfigurationBuildDir>$(OBJROOT)\$(CONFIG)</ConfigurationBuildDir>  
27    <OutputDirectory>$(DSTROOT)</OutputDirectory>
28  </PropertyGroup>
29
30  <ItemGroup>
31    <JavaScriptCore Include="JavaScriptCore.submit.sln">
32      <AdditionalProperties>Platform=Win32;WEBKIT_OUTPUTDIR=$(WebKit_OutputDir);WEBKIT_LIBRARIES=$(WebKit_Libraries);OFFICIAL_BUILD=$(OFFICIAL_BUILD)</AdditionalProperties>
33    </JavaScriptCore>
34    <JavaScriptCore Include="JavaScriptCore.submit.sln">
35      <AdditionalProperties>Platform=x64;WEBKIT_OUTPUTDIR=$(WebKit_OutputDir);WEBKIT_LIBRARIES=$(WebKit_Libraries);OFFICIAL_BUILD=$(OFFICIAL_BUILD)</AdditionalProperties>
36    </JavaScriptCore>
37  </ItemGroup>
38 
39  <!-- Prepare for build -->
40  <Target Name="PreBuild" BeforeTargets="Build">
41    <Error Text="DSTROOT property or environment variable must be defined." Condition="'$(DSTROOT)' == ''" />
42    <Error Text="OBJROOT property or environment variable must be defined." Condition="'$(OBJROOT)' == ''" />
43    <Message Text="Copying necessary headers to $(ConfigurationBuildDir)" />
44    <MakeDir Directories="$(DSTROOT);$(OBJROOT);$(ConfigurationBuildDir)\include\private" />
45 
46    <CreateItem Include="$(WebKit_Libraries)\include\private\**\*.*">
47      <Output TaskParameter="Include" ItemName="PrivateIncFiles" />
48    </CreateItem>
49
50    <Copy SourceFiles="@(PrivateIncFiles)" DestinationFiles="@(PrivateIncFiles->'$(ConfigurationBuildDir)\include\private\%(RecursiveDir)%(Filename)%(Extension)')" />
51    <Message Text="Build output -> $(OBJROOT)" />
52    <Message Text="Final output -> $(DSTROOT)" />
53    <MakeDir Directories="$(AppleInternalLib32);$(AppleInternalLib64);$(AppleInternalBin32);$(AppleInternalBin64);$(AppleInternal32Symbols);$(AppleInternal64Symbols);$(AppleInternal)\include;$(DSTROOT)\$(ProgramFilesAAS32);$(DSTROOT)\$(ProgramFilesAAS64)" />
54    <MakeDir Directories="$(DSTROOT)\$(ProgramFilesAAS32)\JavaScriptCore.resources;$(DSTROOT)\$(ProgramFilesAAS64)\JavaScriptCore.resources" />
55    <MakeDir Directories="$(DSTROOT)\AppleInternal\Sources32\JavaScriptCore;$(DSTROOT)\AppleInternal\Sources64\JavaScriptCore" />
56  </Target>
57
58  <!-- Build JavaScriptCore Software -->
59  <Target Name="Build" AfterTargets="PreBuild">
60    <Message Text="Building $(CONFIGURATION) Solution" />
61    <Error Text="DSTROOT property or environment variable must be defined." Condition="'$(DSTROOT)' == ''" />
62    <Message Text="Output=$(WebKit_OutputDir)" />
63    <MSBuild Projects="@(JavaScriptCore)" Properties="Configuration=$(CONFIG)" Targets="ReBuild" />
64  </Target>
65
66  <Target Name="PostBuild" AfterTargets="Build">
67    <Error Text="DSTROOT property or environment variable must be defined." Condition="'$(DSTROOT)' == ''" />
68    <Message Text="Moving $(CONFIG) build results to $(DSTROOT)" />
69
70    <!-- Identify the files to copy over -->
71    <CreateItem Include="$(ConfigurationBuildDir)\include\**\*.*">
72      <Output TaskParameter="Include" ItemName="IncFiles" />
73    </CreateItem>
74    <CreateItem Include="$(ConfigurationBuildDir)\bin32\*">
75      <Output TaskParameter="Include" ItemName="Bin32Files" />
76    </CreateItem>
77    <CreateItem Include="$(ConfigurationBuildDir)\bin64\*">
78      <Output TaskParameter="Include" ItemName="Bin64Files" />
79    </CreateItem>
80    <CreateItem Include="$(ConfigurationBuildDir)\bin32\*.pdb">
81      <Output TaskParameter="Include" ItemName="Bin32SymbolFiles" />
82    </CreateItem>
83    <CreateItem Include="$(ConfigurationBuildDir)\bin64\*.pdb">
84      <Output TaskParameter="Include" ItemName="Bin64SymbolFiles" />
85    </CreateItem>
86    <CreateItem Include="$(ConfigurationBuildDir)\bin32\JavaScriptCore.resources\**\*.*">
87      <Output TaskParameter="Include" ItemName="Bin32Resources" />
88    </CreateItem>
89    <CreateItem Include="$(ConfigurationBuildDir)\bin64\JavaScriptCore.resources\**\*.*">
90      <Output TaskParameter="Include" ItemName="Bin64Resources" />
91    </CreateItem>
92    <CreateItem Include="$(ConfigurationBuildDir)\lib32\*">
93      <Output TaskParameter="Include" ItemName="Lib32Files" />
94    </CreateItem>
95    <CreateItem Include="$(ConfigurationBuildDir)\lib64\*">
96      <Output TaskParameter="Include" ItemName="Lib64Files" />
97    </CreateItem>
98    <CreateItem Include="$(ConfigurationBuildDir)\obj32\JavaScriptCore\DerivedSources\**\*.*">
99      <Output TaskParameter="Include" ItemName="Derived32Sources" />
100    </CreateItem>
101    <CreateItem Include="$(ConfigurationBuildDir)\obj64\JavaScriptCore\DerivedSources\**\*.*">
102      <Output TaskParameter="Include" ItemName="Derived64Sources" />
103    </CreateItem>
104
105    <Copy SourceFiles="@(IncFiles)" DestinationFiles="@(IncFiles->'$(DSTROOT)\AppleInternal\include\%(RecursiveDir)%(Filename)%(Extension)')" />
106    <Copy SourceFiles="@(Lib32Files)" DestinationFolder="$(AppleInternalLib32)" />
107    <Copy SourceFiles="@(Lib64Files)" DestinationFolder="$(AppleInternalLib64)" />
108    <Copy SourceFiles="@(Bin32Files)" DestinationFolder="$(AppleInternalBin32)" />
109    <Copy SourceFiles="@(Bin32Files)" DestinationFolder="$(DSTROOT)\$(ProgramFilesAAS32)" />
110    <Copy SourceFiles="@(Bin32SymbolFiles)" DestinationFolder="$(AppleInternal32Symbols)" />
111    <Copy SourceFiles="@(Bin32Resources)" DestinationFiles="@(Bin32Resources->'$(DSTROOT)\$(ProgramFilesAAS32)\JavaScriptCore.resources\%(RecursiveDir)%(Filename)%(Extension)')" />
112    <Copy SourceFiles="@(Bin64Files)" DestinationFolder="$(AppleInternalBin64)" />
113    <Copy SourceFiles="@(Bin64Files)" DestinationFolder="$(DSTROOT)\$(ProgramFilesAAS64)" />
114    <Copy SourceFiles="@(Bin64SymbolFiles)" DestinationFolder="$(AppleInternal64Symbols)" />
115    <Copy SourceFiles="@(Bin64Resources)" DestinationFiles="@(Bin64Resources->'$(DSTROOT)\$(ProgramFilesAAS64)\JavaScriptCore.resources\%(RecursiveDir)%(Filename)%(Extension)')" />
116    <Copy SourceFiles="@(Derived32Sources)" DestinationFiles="@(Derived32Sources->'$(DSTROOT)\AppleInternal\Sources32\JavaScriptCore\%(RecursiveDir)%(Filename)%(Extension)')" />
117    <Copy SourceFiles="@(Derived64Sources)" DestinationFiles="@(Derived64Sources->'$(DSTROOT)\AppleInternal\Sources64\JavaScriptCore\%(RecursiveDir)%(Filename)%(Extension)')" />
118  </Target>
119
120</Project>
121
122