summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Monson <paulmon@users.noreply.github.com>2019-04-12 16:36:38 (GMT)
committerSteve Dower <steve.dower@microsoft.com>2019-04-12 16:36:38 (GMT)
commitaa25d5d026b21a6bac66ff1c47e96cbf6227473a (patch)
tree24d048d0cdf62eb7ef426aa2e97bc2f689653b20
parentb75b1a3504a0cea6fac6ecba44c10b2629577025 (diff)
downloadcpython-aa25d5d026b21a6bac66ff1c47e96cbf6227473a.zip
cpython-aa25d5d026b21a6bac66ff1c47e96cbf6227473a.tar.gz
cpython-aa25d5d026b21a6bac66ff1c47e96cbf6227473a.tar.bz2
Enable building nuget packages for ARM32 (GH-12669)
-rw-r--r--Tools/nuget/build.bat19
-rw-r--r--Tools/nuget/make_pkg.proj1
-rw-r--r--Tools/nuget/pythonarm32.nuspec19
3 files changed, 36 insertions, 3 deletions
diff --git a/Tools/nuget/build.bat b/Tools/nuget/build.bat
index f75cb3f..b532bd7 100644
--- a/Tools/nuget/build.bat
+++ b/Tools/nuget/build.bat
@@ -6,20 +6,24 @@ if "%Py_OutDir%"=="" set Py_OutDir=%PCBUILD%
set BUILDX86=
set BUILDX64=
+set BUILDARM32=
set REBUILD=
set OUTPUT=
set PACKAGES=
+set PYTHON_EXE=
:CheckOpts
if "%~1" EQU "-h" goto Help
if "%~1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts
if "%~1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts
+if "%~1" EQU "-arm32" (set BUILDARM32=1) && shift && goto CheckOpts
if "%~1" EQU "-r" (set REBUILD=-r) && shift && goto CheckOpts
if "%~1" EQU "-o" (set OUTPUT="/p:OutputPath=%~2") && shift && shift && goto CheckOpts
if "%~1" EQU "--out" (set OUTPUT="/p:OutputPath=%~2") && shift && shift && goto CheckOpts
if "%~1" EQU "-p" (set PACKAGES=%PACKAGES% %~2) && shift && shift && goto CheckOpts
+if "%~1" EQU "--python-exe" (set PYTHON_EXE="/p:PythonExe=%~2") && shift && shift && goto CheckOpts
-if not defined BUILDX86 if not defined BUILDX64 (set BUILDX86=1) && (set BUILDX64=1)
+if not defined BUILDX86 if not defined BUILDX64 if not defined BUILDARM32 (set BUILDX86=1) && (set BUILDX64=1) && (set BUILDARM32=1)
call "%D%..\msi\get_externals.bat"
call "%PCBUILD%find_msbuild.bat" %MSBUILD%
@@ -32,7 +36,7 @@ if defined BUILDX86 (
) else if not exist "%Py_OutDir%win32\python.exe" call "%PCBUILD%build.bat" -e
if errorlevel 1 goto :eof
- %MSBUILD% "%D%make_pkg.proj" /p:Configuration=Release /p:Platform=x86 %OUTPUT% %PACKAGES%
+ %MSBUILD% "%D%make_pkg.proj" /p:Configuration=Release /p:Platform=x86 %OUTPUT% %PACKAGES% %PYTHON_EXE%
if errorlevel 1 goto :eof
)
@@ -41,7 +45,16 @@ if defined BUILDX64 (
) else if not exist "%Py_OutDir%amd64\python.exe" call "%PCBUILD%build.bat" -p x64 -e
if errorlevel 1 goto :eof
- %MSBUILD% "%D%make_pkg.proj" /p:Configuration=Release /p:Platform=x64 %OUTPUT% %PACKAGES%
+ %MSBUILD% "%D%make_pkg.proj" /p:Configuration=Release /p:Platform=x64 %OUTPUT% %PACKAGES% %PYTHON_EXE%
+ if errorlevel 1 goto :eof
+)
+
+if defined BUILDARM32 (
+ if defined REBUILD ( call "%PCBUILD%build.bat" -p ARM -e -r --no-tkinter
+ ) else if not exist "%Py_OutDir%arm32\python.exe" call "%PCBUILD%build.bat" -p ARM -e --no-tkinter
+ if errorlevel 1 goto :eof
+
+ %MSBUILD% "%D%make_pkg.proj" /p:Configuration=Release /p:Platform=ARM %OUTPUT% %PACKAGES% %PYTHON_EXE%
if errorlevel 1 goto :eof
)
diff --git a/Tools/nuget/make_pkg.proj b/Tools/nuget/make_pkg.proj
index 5638952..b387b8e 100644
--- a/Tools/nuget/make_pkg.proj
+++ b/Tools/nuget/make_pkg.proj
@@ -4,6 +4,7 @@
<ProjectGuid>{10487945-15D1-4092-A214-338395C4116B}</ProjectGuid>
<OutputName>python</OutputName>
<OutputName Condition="$(Platform) == 'x86'">$(OutputName)x86</OutputName>
+ <OutputName Condition="$(Platform) == 'ARM'">$(OutputName)arm32</OutputName>
<OutputName Condition="$(BuildForDaily) == 'true'">$(OutputName)daily</OutputName>
<OutputSuffix></OutputSuffix>
<SupportSigning>false</SupportSigning>
diff --git a/Tools/nuget/pythonarm32.nuspec b/Tools/nuget/pythonarm32.nuspec
new file mode 100644
index 0000000..273d79a
--- /dev/null
+++ b/Tools/nuget/pythonarm32.nuspec
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<package >
+ <metadata>
+ <id>pythonarm32</id>
+ <title>Python (ARM32)</title>
+ <authors>Python Software Foundation</authors>
+ <version>0.0.0.0</version>
+ <licenseUrl>https://docs.python.org/3/license.html</licenseUrl>
+ <projectUrl>https://www.python.org/</projectUrl>
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
+ <description>Installs Python ARM32 for use in build scenarios.</description>
+ <iconUrl>https://www.python.org/static/favicon.ico</iconUrl>
+ <tags>python</tags>
+ </metadata>
+ <files>
+ <file src="**\*" exclude="python.props" target="tools" />
+ <file src="python.props" target="build\native" />
+ </files>
+</package>