]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Select correct tool platform when building on Windows ARM64 natively (GH-28491)
authorNiyas Sait <niyas.sait@linaro.org>
Mon, 27 Sep 2021 19:52:54 +0000 (20:52 +0100)
committerGitHub <noreply@github.com>
Mon, 27 Sep 2021 19:52:54 +0000 (20:52 +0100)
PCbuild/pcbuild.proj
Tools/scripts/freeze_modules.py

index b3cbd471c66ac94fe9361cd92f74a6f33707a6ad..f32422a0acf44a064de9fdeb83bb0cda2329c5aa 100644 (file)
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
   <PropertyGroup Label="Globals">
     <ProjectGuid>{CC9B93A2-439D-4058-9D29-6DCF43774405}</ProjectGuid>
     <Platform Condition="'$(Platform)' == ''">Win32</Platform>
@@ -15,9 +18,7 @@
 
   <ItemDefinitionGroup>
     <FreezeProjects>
-      <Platform>$(Platform)</Platform>
-      <Platform Condition="$(Platform) == 'ARM'">Win32</Platform>
-      <Platform Condition="$(Platform) == 'ARM64'">x64</Platform>
+      <Platform>$(PreferredToolArchitecture)</Platform>
       <Configuration>$(Configuration)</Configuration>
       <Configuration Condition="$(Configuration) == 'PGInstrument'">Release</Configuration>
       <Properties></Properties>
index aa799d763a55b9a22c7d954b72bc8a0478d568a4..cfc6f7921c974c69bcc6fba6e38df5bb574438ea 100644 (file)
@@ -8,6 +8,7 @@ import hashlib
 import os
 import ntpath
 import posixpath
+import platform
 import subprocess
 import sys
 import textwrap
@@ -35,7 +36,10 @@ if sys.platform != "win32":
             sys.exit("ERROR: missing _freeze_module")
 else:
     def find_tool():
-        for arch in ['amd64', 'win32']:
+        archs = ['amd64', 'win32']
+        if platform.machine() == "ARM64":
+             archs.append('arm64')
+        for arch in archs:
             for exe in ['_freeze_module.exe', '_freeze_module_d.exe']:
                 tool = os.path.join(ROOT_DIR, 'PCbuild', arch, exe)
                 if os.path.isfile(tool):