diff options
Diffstat (limited to 'Tools/nuget')
-rw-r--r-- | Tools/nuget/make_pkg.proj | 38 | ||||
-rw-r--r-- | Tools/nuget/python.props | 56 |
2 files changed, 81 insertions, 13 deletions
diff --git a/Tools/nuget/make_pkg.proj b/Tools/nuget/make_pkg.proj index e093a6d0bd..9843bc97cc 100644 --- a/Tools/nuget/make_pkg.proj +++ b/Tools/nuget/make_pkg.proj @@ -20,28 +20,25 @@ <SignOutput>false</SignOutput> <TargetName>$(OutputName).$(NuspecVersion)</TargetName> <TargetExt>.nupkg</TargetExt> - <IntermediateOutputPath>$(IntermediateOutputPath)\nuget_$(ArchName)\</IntermediateOutputPath> + <IntermediateOutputPath>$(IntermediateOutputPath)\nuget_$(ArchName)</IntermediateOutputPath> - <CleanCommand>rmdir /q/s "$(IntermediateOutputPath.TrimEnd(`\`))"</CleanCommand> + <CleanCommand>rmdir /q/s "$(IntermediateOutputPath)"</CleanCommand> - <PythonArguments>"$(PythonExe)" "$(PySourcePath)PC\layout"</PythonArguments> - <PythonArguments>$(PythonArguments) -b "$(BuildPath.TrimEnd(`\`))" -s "$(PySourcePath.TrimEnd(`\`))"</PythonArguments> - <PythonArguments>$(PythonArguments) -t "$(IntermediateOutputPath)obj"</PythonArguments> - <PythonArguments>$(PythonArguments) --copy "$(IntermediateOutputPath)pkg"</PythonArguments> - <PythonArguments>$(PythonArguments) --include-dev --include-tools --include-pip --include-stable --include-launcher --include-props</PythonArguments> + <PythonArguments>"$(PythonExe)" "$(MSBuildThisFileDirectory)\..\msi\make_zip.py"</PythonArguments> + <PythonArguments>$(PythonArguments) -t "$(IntermediateOutputPath)" -b "$(BuildPath.TrimEnd(`\`))"</PythonArguments> - <PackageArguments Condition="$(Packages) != ''">"$(IntermediateOutputPath)pkg\pip.exe" -B -m pip install -U $(Packages)</PackageArguments> + <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> - <NugetPackCommand>"$(Nuget)" pack "$(MSBuildThisFileDirectory)\$(OutputName).nuspec" -BasePath "$(IntermediateOutputPath)pkg"</NugetPackCommand> + <NugetPackCommand>"$(Nuget)" pack "$(MSBuildThisFileDirectory)\$(OutputName).nuspec" -BasePath "$(IntermediateOutputPath)"</NugetPackCommand> <NugetPackSymbolsCommand Condition="Exists('$(MSBuildThisFileDirectory)\$(OutputName).symbols.nuspec')">"$(Nuget)" pack "$(MSBuildThisFileDirectory)\$(OutputName).symbols.nuspec" -BasePath "$(BuildPath.TrimEnd(`\`))"</NugetPackSymbolsCommand> <NugetArguments>$(NugetArguments) -OutputDirectory "$(OutputPath.Trim(`\`))"</NugetArguments> <NugetArguments>$(NugetArguments) -Version "$(NuspecVersion)"</NugetArguments> <NugetArguments>$(NugetArguments) -NoPackageAnalysis -NonInteractive</NugetArguments> + <Environment>set DOC_FILENAME=python$(PythonVersion).chm</Environment> <Environment>$(Environment)%0D%0Aset PYTHONPATH=$(PySourcePath)Lib</Environment> - <Environment>$(Environment)%0D%0Aset PYTHON_NUSPEC_VERSION=$(NuspecVersion)</Environment> - <Environment Condition="$(Platform) != 'x86'">$(Environment)%0D%0Aset PYTHON_PROPS_PLATFORM=$(Platform)</Environment> - <Environment Condition="$(Platform) == 'x86'">$(Environment)%0D%0Aset PYTHON_PROPS_PLATFORM=Win32</Environment> + <Environment Condition="Exists($(CRTRedist))">$(Environment)%0D%0Aset VCREDIST_PATH=$(CRTRedist)\$(Platform)</Environment> <Environment>$(Environment)%0D%0Amkdir "$(OutputPath.Trim(`\`))" >nul 2>nul</Environment> </PropertyGroup> @@ -51,7 +48,22 @@ <Target Name="_Build"> <Exec Command="$(CleanCommand)" /> - <Exec Command="setlocal%0D%0A$(Environment)%0D%0A$(PythonArguments)%0D%0A$(PackageArguments)" /> + <Exec Command="setlocal%0D%0A$(Environment)%0D%0A$(PythonArguments)" /> + <Exec Command="$(PipArguments)" /> + <Exec Command="$(PackageArguments)" Condition="$(PackageArguments) != ''" /> + + <PropertyGroup> + <_PropsContents>$([System.IO.File]::ReadAllText('python.props'))</_PropsContents> + <_PropsContents>$(_PropsContents.Replace('$$PYTHON_TAG$$', '$(MajorVersionNumber).$(MinorVersionNumber)'))</_PropsContents> + <_PropsContents>$(_PropsContents.Replace('$$PYTHON_VERSION$$', '$(NuspecVersion)'))</_PropsContents> + <_PropsContents Condition="$(Platform) == 'x86'">$(_PropsContents.Replace('$$PYTHON_PLATFORM$$', 'Win32'))</_PropsContents> + <_PropsContents Condition="$(Platform) != 'x86'">$(_PropsContents.Replace('$$PYTHON_PLATFORM$$', '$(Platform)'))</_PropsContents> + <_PropsContents>$(_PropsContents.Replace('$$PYTHON_TARGET$$', '_GetPythonRuntimeFilesDependsOn$(MajorVersionNumber)$(MinorVersionNumber)_$(Platform)'))</_PropsContents> + <_ExistingContents Condition="Exists('$(IntermediateOutputPath)\python.props')">$([System.IO.File]::ReadAllText('$(IntermediateOutputPath)\python.props'))</_ExistingContents> + </PropertyGroup> + <WriteLinesToFile File="$(IntermediateOutputPath)\python.props" + Lines="$(_PropsContents)" + Condition="$(_PropsContents) != $(_ExistingContents)" /> <Exec Command="$(NugetPackCommand) $(NugetArguments)" /> <Exec Command="$(NugetPackSymbolsCommand) $(NugetArguments)" Condition="$(NugetPackSymbolsCommand) != ''" /> diff --git a/Tools/nuget/python.props b/Tools/nuget/python.props new file mode 100644 index 0000000000..4cc70083eb --- /dev/null +++ b/Tools/nuget/python.props @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Condition="$(Platform) == '$$PYTHON_PLATFORM$$'"> + <PythonHome>$(MSBuildThisFileDirectory)\..\..\tools</PythonHome> + <PythonInclude>$(PythonHome)\include</PythonInclude> + <PythonLibs>$(PythonHome)\libs</PythonLibs> + <PythonTag>$$PYTHON_TAG$$</PythonTag> + <PythonVersion>$$PYTHON_VERSION$$</PythonVersion> + + <IncludePythonExe Condition="$(IncludePythonExe) == ''">true</IncludePythonExe> + <IncludeDistutils Condition="$(IncludeDistutils) == ''">false</IncludeDistutils> + <IncludeLib2To3 Condition="$(IncludeLib2To3) == ''">false</IncludeLib2To3> + <IncludeVEnv Condition="$(IncludeVEnv) == ''">false</IncludeVEnv> + + <GetPythonRuntimeFilesDependsOn>$$PYTHON_TARGET$$;$(GetPythonRuntimeFilesDependsOn)</GetPythonRuntimeFilesDependsOn> + </PropertyGroup> + + <ItemDefinitionGroup Condition="$(Platform) == '$$PYTHON_PLATFORM$$'"> + <ClCompile> + <AdditionalIncludeDirectories>$(PythonInclude);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + </ClCompile> + <Link> + <AdditionalLibraryDirectories>$(PythonLibs);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + + <Target Name="GetPythonRuntimeFiles" Returns="@(PythonRuntime)" DependsOnTargets="$(GetPythonRuntimeFilesDependsOn)" /> + + <Target Name="$$PYTHON_TARGET$$" Returns="@(PythonRuntime)"> + <ItemGroup> + <_PythonRuntimeExe Include="$(PythonHome)\python*.dll" /> + <_PythonRuntimeExe Include="$(PythonHome)\vcruntime140.dll" /> + <_PythonRuntimeExe Include="$(PythonHome)\python*.exe" Condition="$(IncludePythonExe) == 'true'" /> + <_PythonRuntimeExe> + <Link>%(Filename)%(Extension)</Link> + </_PythonRuntimeExe> + <_PythonRuntimeDlls Include="$(PythonHome)\DLLs\*.pyd" /> + <_PythonRuntimeDlls Include="$(PythonHome)\DLLs\*.dll" /> + <_PythonRuntimeDlls> + <Link>DLLs\%(Filename)%(Extension)</Link> + </_PythonRuntimeDlls> + <_PythonRuntimeLib Include="$(PythonHome)\Lib\**\*" Exclude="$(PythonHome)\Lib\**\*.pyc;$(PythonHome)\Lib\site-packages\**\*" /> + <_PythonRuntimeLib Remove="$(PythonHome)\Lib\distutils\**\*" Condition="$(IncludeDistutils) != 'true'" /> + <_PythonRuntimeLib Remove="$(PythonHome)\Lib\lib2to3\**\*" Condition="$(IncludeLib2To3) != 'true'" /> + <_PythonRuntimeLib Remove="$(PythonHome)\Lib\ensurepip\**\*" Condition="$(IncludeVEnv) != 'true'" /> + <_PythonRuntimeLib Remove="$(PythonHome)\Lib\venv\**\*" Condition="$(IncludeVEnv) != 'true'" /> + <_PythonRuntimeLib> + <Link>Lib\%(RecursiveDir)%(Filename)%(Extension)</Link> + </_PythonRuntimeLib> + <PythonRuntime Include="@(_PythonRuntimeExe);@(_PythonRuntimeDlls);@(_PythonRuntimeLib)" /> + </ItemGroup> + + <Message Importance="low" Text="Collected Python runtime from $(PythonHome):%0D%0A@(PythonRuntime->' %(Link)','%0D%0A')" /> + </Target> +</Project> |