]> granicus.if.org Git - python/commitdiff
Enable building nuget packages for ARM32 (GH-12669)
authorPaul Monson <paulmon@users.noreply.github.com>
Fri, 12 Apr 2019 16:36:38 +0000 (09:36 -0700)
committerSteve Dower <steve.dower@microsoft.com>
Fri, 12 Apr 2019 16:36:38 +0000 (09:36 -0700)
Tools/nuget/build.bat
Tools/nuget/make_pkg.proj
Tools/nuget/pythonarm32.nuspec [new file with mode: 0644]

index f75cb3f7ba471b7a206a92ff14da2c831362d3da..b532bd74216831eb0b8b2586f6ae2729781b23ec 100644 (file)
@@ -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
 )
 
index 5638952ac9f9e25f3d2a26042265d2d3e4459bdd..b387b8eef5423c932ef580fc01391b3934fbb4ee 100644 (file)
@@ -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 (file)
index 0000000..273d79a
--- /dev/null
@@ -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>