summaryrefslogtreecommitdiffstats
path: root/Tools/nuget/make_pkg.proj
blob: 542bf0742d793b5f1c1baa4e9cfa2472bb2fb10b (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
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <ProjectGuid>{10487945-15D1-4092-A214-338395C4116B}</ProjectGuid>
        <OutputName>python</OutputName>
        <OutputName Condition="$(Platform) == 'x86'">$(OutputName)x86</OutputName>
        <OutputSuffix></OutputSuffix>
        <SupportSigning>false</SupportSigning>
        <BuildForRelease Condition="$(BuildForRelease) == ''">true</BuildForRelease>
    </PropertyGroup>

    <Import Project="..\msi\msi.props" />

    <PropertyGroup>
        <Nuget Condition="$(Nuget) == ''">$(ExternalsDir)\windows-installer\nuget\nuget.exe</Nuget>
        <NuspecVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)</NuspecVersion>
        <SignOutput>false</SignOutput>
        <TargetName>$(OutputName).$(NuspecVersion)</TargetName>
        <TargetExt>.nupkg</TargetExt>
        <TargetPath>$(OutputPath)\$(TargetName)$(TargetExt)</TargetPath>
        <IntermediateOutputPath>$(IntermediateOutputPath)\nuget_$(ArchName)</IntermediateOutputPath>
        
        <CleanCommand>rmdir /q/s "$(IntermediateOutputPath)"</CleanCommand>
        
        <PythonArguments>"$(PythonExe)" "$(MSBuildThisFileDirectory)\..\msi\make_zip.py"</PythonArguments>
        <PythonArguments>$(PythonArguments) -t "$(IntermediateOutputPath)" -a $(ArchName)</PythonArguments>
        
        <PipArguments>"$(IntermediateOutputPath)\python.exe" -B -c "import sys; sys.path.append(r'$(PySourcePath)\Lib'); import ensurepip; ensurepip._main()"</PipArguments>
        <PackageArguments Condition="$(Packages) != ''">"$(IntermediateOutputPath)\python.exe" -B -m pip install -U $(Packages)</PackageArguments>
        
        <NugetArguments>"$(Nuget)" pack "$(MSBuildThisFileDirectory)\$(OutputName).nuspec"</NugetArguments>
        <NugetArguments>$(NugetArguments) -BasePath "$(IntermediateOutputPath)"</NugetArguments>
        <NugetArguments>$(NugetArguments) -OutputDirectory "$(OutputPath.Trim(`\`))"</NugetArguments>
        <NugetArguments>$(NugetArguments) -Version "$(NuspecVersion)"</NugetArguments>
        <NugetArguments>$(NugetArguments) -NoPackageAnalysis -NonInteractive</NugetArguments>
        
        <Environment>setlocal
set DOC_FILENAME=python$(PythonVersion).chm
set VCREDIST_PATH=$(VS140COMNTOOLS)\..\..\VC\redist\$(Platform)\Microsoft.VC140.CRT</Environment>
    </PropertyGroup>

    <Target Name="_NugetMissing" BeforeTargets="_Build" Condition="!Exists($(Nuget))">
        <Error Text="$(Nuget) could not be found. Either avoid specifying the property or update your externals/windows-installer files." />
    </Target>

    <Target Name="_Build">
        <Exec Command="$(CleanCommand)" />
        <Exec Command="$(Environment)
$(PythonArguments)" />
        <Exec Command="$(PipArguments)" />
        <Exec Command="$(PackageArguments)" Condition="$(PackageArguments) != ''" />
        <Exec Command="$(NugetArguments)" />
    </Target>

    <Target Name="AfterBuild" />
    <Target Name="Build" DependsOnTargets="_Build;AfterBuild" />
</Project>