summaryrefslogtreecommitdiffstats
path: root/Tools/msi/common.wxs
blob: 398d94a24d554f8327ab0f5805f5b2877423c297 (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
117
118
119
120
121
122
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <Property Id="ROOTREGISTRYKEY" Value="Software\Python\PythonCore" />
    </Fragment>
    
    <Fragment>
        <Property Id="REGISTRYKEY" Value="Software\Python\PythonCore\$(var.ShortVersion)$(var.PyArchExt)$(var.PyTestExt)" />
    </Fragment>
    
    <Fragment>
        <Component Id="OptionalFeature" Guid="*" Directory="InstallDirectory">
            <Condition>OPTIONALFEATURESREGISTRYKEY</Condition>
            <RegistryKey Root="HKMU" Key="[OPTIONALFEATURESREGISTRYKEY]">
                <RegistryValue Type="string" Name="$(var.OptionalFeatureName)" Value="$(var.Version)" KeyPath="yes" />
            </RegistryKey>
        </Component>
    </Fragment>
    
    <Fragment>
        <Property Id="UpgradeTable" Value="1" />
        
        <?ifndef SuppressUpgradeTable ?>
        <Upgrade Id="$(var.UpgradeCode)">
            <UpgradeVersion Property="DOWNGRADE" Minimum="$(var.Version)" IncludeMinimum="no" OnlyDetect="yes" />
            <UpgradeVersion Property="UPGRADE" Minimum="$(var.UpgradeMinimumVersion)" IncludeMinimum="yes" Maximum="$(var.Version)" IncludeMaximum="no" />
        </Upgrade>
        <?endif ?>
        
        <?ifdef CoreUpgradeCode ?>
        <?if $(var.UpgradeCode)!=$(var.CoreUpgradeCode) ?>
        <Upgrade Id="$(var.CoreUpgradeCode)">
            <UpgradeVersion Property="MISSING_CORE" Minimum="$(var.Version)" IncludeMinimum="yes" Maximum="$(var.Version)" IncludeMaximum="yes" OnlyDetect="yes" />
        </Upgrade>
        <Condition Message="!(loc.IncorrectCore)">Installed OR NOT MISSING_CORE</Condition>
        <?endif ?>
        <?endif ?>
        
        <Condition Message="!(loc.NoDowngrade)">Installed OR NOT DOWNGRADE</Condition>
        <Condition Message="!(loc.NoTargetDir)">Installed OR TARGETDIR OR Suppress_TARGETDIR_Check</Condition>

        <InstallExecuteSequence>
            <RemoveExistingProducts After="InstallInitialize" Overridable="yes">UPGRADE</RemoveExistingProducts>
        </InstallExecuteSequence>
    </Fragment>
    
    <Fragment>
        <!-- Include an icon for the Programs and Features dialog -->
        <Icon Id="ARPIcon" SourceFile="!(bindpath.src)PC\icons\python.ico" />
        <Property Id="ARPPRODUCTICON" Value="ARPIcon" />
        <Property Id="ARPNOMODIFY" Value="1" />
        <Property Id="DISABLEADVTSHORTCUTS" Value="1" />
    </Fragment>
    
    <Fragment>
    <?ifdef InstallDirectoryGuidSeed ?>
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="InstallDirectory" ComponentGuidGenerationSeed="$(var.InstallDirectoryGuidSeed)" />
        </Directory>
    <?endif ?>
    </Fragment>
    
    <!-- Top-level directories -->
    <Fragment>
        <DirectoryRef Id="InstallDirectory">
            <Directory Id="DLLs" Name="DLLs">
                <Directory Id="Catalogs" />
            </Directory>
        </DirectoryRef>
    </Fragment>

    <Fragment>
        <DirectoryRef Id="InstallDirectory">
            <Directory Id="Doc" Name="Doc" />
        </DirectoryRef>
    </Fragment>

    <Fragment>
        <DirectoryRef Id="InstallDirectory">
            <Directory Id="include" Name="include" />
        </DirectoryRef>
    </Fragment>

    <Fragment>
        <DirectoryRef Id="InstallDirectory">
            <Directory Id="Lib" Name="Lib" />
        </DirectoryRef>
    </Fragment>

    <Fragment>
        <DirectoryRef Id="InstallDirectory">
            <Directory Id="libs" Name="libs" />
        </DirectoryRef>
    </Fragment>

    <Fragment>
        <DirectoryRef Id="InstallDirectory">
            <Directory Id="Scripts" Name="Scripts" />
        </DirectoryRef>
    </Fragment>

    <Fragment>
        <DirectoryRef Id="InstallDirectory">
            <Directory Id="tcl" Name="tcl" />
        </DirectoryRef>
    </Fragment>

    <Fragment>
        <DirectoryRef Id="InstallDirectory">
            <Directory Id="Tools" Name="Tools" />
        </DirectoryRef>
    </Fragment>
    
    <!-- Start Menu folder -->
    <Fragment>
        <DirectoryRef Id="TARGETDIR">
            <Directory Id="ProgramMenuFolder">
                <Directory Id="MenuDir" Name="!(loc.ProductName)" />
            </Directory>
        </DirectoryRef>
    </Fragment>
</Wix>