summaryrefslogtreecommitdiff
path: root/Tools/msi/bundle/bundle.targets
blob: 57ca1dcfe1bb4a11b2f81ae5820dc535b680254e (plain)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" TreatAsLocalProperty="DownloadUrl">
    <PropertyGroup>
        <SchemaVersion>2.0</SchemaVersion>
        <OutputType>Bundle</OutputType>
        
        <BootstrapConfiguration Condition="'$(BootstrapConfiguration)' == ''">Release</BootstrapConfiguration>
        <LinkerSuppressSpecificWarnings>1132;1135;1140</LinkerSuppressSpecificWarnings>
        <OutputName Condition="$(BuildForRelease)">$(OutputName)-$(PythonVersion)</OutputName>
        <OutputName Condition="!$(BuildForRelease)">$(OutputName)-$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber).$(RevisionNumber)</OutputName>
        <OutputName Condition="$(Platform) == 'x64'">$(OutputName)-amd64</OutputName>
        <OutputName Condition="'$(OutputSuffix)' != ''">$(OutputName)-$(OutputSuffix)</OutputName>
        <OutputName Condition="'$(Configuration)' == 'Debug'">$(OutputName)-d</OutputName>
        <TargetName>$(OutputName)</TargetName>

        <OutputPath>$(OutputPath)en-us\</OutputPath>
        <OutDir>$(OutputPath)</OutDir>
        
        <!-- See Tools/msi/buildrelease.bat for help on configuring the download URL -->
        <DownloadUrl Condition="'$(DownloadUrl)' == '' and '$(DownloadUrlBase)' != ''">$(DownloadUrlBase.TrimEnd(`/`))/{version}/{arch}{releasename}/{msi}</DownloadUrl>
        <DefineConstants Condition="'$(DownloadUrl)' != ''">$(DefineConstants);DownloadUrl=$(DownloadUrl.Replace(`{version}`, `$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)`).Replace(`{arch}`, `$(ArchName)`).Replace(`{releasename}`, `$(ReleaseName)`).Replace(`{msi}`, `{2}`))</DefineConstants>
        <DefineConstants Condition="'$(DownloadUrl)' == ''">$(DefineConstants);DownloadUrl={2}</DefineConstants>
    </PropertyGroup>
    
    <ItemGroup>
        <WixExtension Include="WixUtilExtension">
            <HintPath>WixUtilExtension</HintPath>
            <Name>WixUtilExtension</Name>
        </WixExtension>
        <WixExtension Include="WixDependencyExtension">
            <HintPath>WixDependencyExtension</HintPath>
            <Name>WixDependencyExtension</Name>
        </WixExtension>
        <WixExtension Include="WixBalExtension">
            <HintPath>WixBalExtension</HintPath>
            <Name>WixBalExtension</Name>
        </WixExtension>
    </ItemGroup>
    <ItemGroup>
        <Compile Include="bundle.wxs" />
        <Compile Include="packagegroups\*.wxs" />
    </ItemGroup>
    <ItemGroup>
        <Content Include="Default.thm" />
        <Content Include="Default.wxl" />
        <Content Include="SideBar.png" />
    </ItemGroup>
    <ItemGroup>
        <EmbeddedResource Include="bundle.wxl" />
        <WxlTemplate Include="*_en-US.wxl_template" />
    </ItemGroup>
    <ItemGroup>
        <LinkerBindInputPaths Include="$(OutputPath)">
            <BindName></BindName>
        </LinkerBindInputPaths>
    </ItemGroup>
    
    <ItemDefinitionGroup>
        <Package>
            <Properties>BuildForRelease=$(BuildForRelease)</Properties>
        </Package>
    </ItemDefinitionGroup>
    <ItemGroup>
        <Package Include="..\core\core*.wixproj" />
        <Package Include="..\dev\dev*.wixproj" />
        <Package Include="..\doc\doc*.wixproj" />
        <Package Include="..\exe\exe*.wixproj" />
        <Package Include="..\lib\lib*.wixproj" />
        <Package Include="..\path\path*.wixproj" />
        <Package Include="..\pip\pip*.wixproj" />
        <Package Include="..\tcltk\tcltk*.wixproj" />
        <Package Include="..\test\test*.wixproj" />
        <Package Include="..\tools\tools*.wixproj" />
    </ItemGroup>
    
    <PropertyGroup>
        <BuildPackagesTargets>Build</BuildPackagesTargets>
    </PropertyGroup>
    
    <Target Name="_SetRebuildTarget" BeforeTargets="BeforeRebuild">
        <PropertyGroup>
            <BuildPackagesTargets>Rebuild</BuildPackagesTargets>
        </PropertyGroup>
    </Target>
    
    <Target Name="BuildPackages" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
        <MSBuild Projects="@(Package)" Targets="$(BuildPackagesTargets)" BuildInParallel="true" />
    </Target>
    
    <Target Name="BuildLauncher" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
        <!--
        Build the launcher MSI using Exec rather than MSBuild
        Also, never use the test marker for the launcher. It's going to corrupt things anyway, so we'll
        just disable it by default.
         -->
        <Exec Command='msbuild ..\launcher\launcher.wixproj /p:Platform=x86 /p:ReleaseUri="$(ReleaseUri)" /p:OutputPath="$(BuildPath.TrimEnd(`\`))" /p:OutputSuffix=$(Platform) /p:BuildForRelease=$(BuildForRelease) /p:UseTestMarker=false'
              ContinueOnError="false" />
    </Target>
    
    <Target Name="BuildBootstrapApplication" BeforeTargets="BeforeBuild">
        <Message Text="Building bootstrap app" Importance="high" />
        
        <MSBuild Projects="bootstrap\pythonba.vcxproj"
                 Targets="Build;GetNativeTargetPath"
                 UseResultsCache="true"
                 Properties="Configuration=$(BootstrapConfiguration);Platform=Win32">
            <Output TaskParameter="TargetOutputs" PropertyName="BootstrapAppPath" />
        </MSBuild>
        
        <PropertyGroup>
            <DefineConstants>$(DefineConstants);BootstrapApp=$(BootstrapAppPath)</DefineConstants>
        </PropertyGroup>
    </Target>
    
    <Import Project="..\msi.targets" />
</Project>