[Python-checkins] bpo-33614: Ensures module definition files for the stable ABI on Windows are correctly regenerated. (GH-7165)

Miss Islington (bot) webhook-mailer at python.org
Mon May 28 16:16:11 EDT 2018


https://github.com/python/cpython/commit/c489a767af46f33e73d96a5746e46a7365814db2
commit: c489a767af46f33e73d96a5746e46a7365814db2
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2018-05-28T13:16:07-07:00
summary:

bpo-33614: Ensures module definition files for the stable ABI on Windows are correctly regenerated. (GH-7165)

(cherry picked from commit e97ba4c690613d734843db218aeedce2f0e5937f)

Co-authored-by: Steve Dower <steve.dower at microsoft.com>

files:
A Misc/NEWS.d/next/Build/2018-05-28-11-40-22.bpo-33614.28e0sE.rst
M PCbuild/find_msbuild.bat
M PCbuild/python3dll.vcxproj

diff --git a/Misc/NEWS.d/next/Build/2018-05-28-11-40-22.bpo-33614.28e0sE.rst b/Misc/NEWS.d/next/Build/2018-05-28-11-40-22.bpo-33614.28e0sE.rst
new file mode 100644
index 000000000000..9091c282ad0a
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2018-05-28-11-40-22.bpo-33614.28e0sE.rst
@@ -0,0 +1,2 @@
+Ensures module definition files for the stable ABI on Windows are correctly
+regenerated.
diff --git a/PCbuild/find_msbuild.bat b/PCbuild/find_msbuild.bat
index 2b7413fbcde8..1364a17432ef 100644
--- a/PCbuild/find_msbuild.bat
+++ b/PCbuild/find_msbuild.bat
@@ -48,5 +48,13 @@
 @exit /b 1
 
 :found
- at echo Using %MSBUILD% (found in the %_Py_MSBuild_Source%)
+ at pushd %MSBUILD% >nul 2>nul
+ at if not ERRORLEVEL 1 @(
+  @if exist msbuild.exe @(set MSBUILD="%CD%\msbuild.exe") else @(set MSBUILD=)
+  @popd
+)
+
+ at if defined MSBUILD @echo Using %MSBUILD% (found in the %_Py_MSBuild_Source%)
+ at if not defined MSBUILD @echo Failed to find MSBuild
 @set _Py_MSBuild_Source=
+ at if not defined MSBUILD @exit /b 1
diff --git a/PCbuild/python3dll.vcxproj b/PCbuild/python3dll.vcxproj
index c66c8ef141a1..0ef7780248fb 100644
--- a/PCbuild/python3dll.vcxproj
+++ b/PCbuild/python3dll.vcxproj
@@ -89,14 +89,18 @@
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
   
-  <Target Name="BuildPython3_dDef" BeforeTargets="BuildStubDef" Inputs="..\PC\python3.def" Outputs="$(IntDir)python3_d.def" Condition="$(Configuration) == 'Debug'">
+  <Target Name="BuildPython3_dDef" BeforeTargets="BuildStubDef" Condition="$(Configuration) == 'Debug'">
     <ItemGroup>
       <_DefLines Remove="@(_DefLines)" />
       <_Lines Remove="@(_Lines)" />
+      <_OriginalLines Remove="@(_OriginalLines)" />
     </ItemGroup>
     <ReadLinesFromFile File="..\PC\python3.def">
       <Output TaskParameter="Lines" ItemName="_DefLines" />
     </ReadLinesFromFile>
+    <ReadLinesFromFile File="$(IntDir)python3_d.def" Condition="Exists('$(IntDir)python3_d.def')">
+      <Output TaskParameter="Lines" ItemName="_OriginalLines" />
+    </ReadLinesFromFile>
     <PropertyGroup>
       <_Pattern1>(=python$(MajorVersionNumber)$(MinorVersionNumber))\.</_Pattern1>
       <_Sub1>$1_d.</_Sub1>
@@ -109,17 +113,23 @@
       </_Lines>
     </ItemGroup>
     <MakeDir Directories="$(IntDir)" />
-    <WriteLinesToFile File="$(IntDir)python3_d.def" Lines="@(_Lines->'%(New)')" Overwrite="true" />
+    <Message Text="Updating python3_d.def" Condition="@(_Lines->'%(New)') != @(_OriginalLines)" Importance="high" />
+    <WriteLinesToFile File="$(IntDir)python3_d.def" Lines="@(_Lines->'%(New)')" Overwrite="true"
+                      Condition="@(_Lines->'%(New)') != @(_OriginalLines)" />
   </Target>
   
-  <Target Name="BuildStubDef" BeforeTargets="PreLinkEvent" Inputs="..\PC\python3.def" Outputs="$(IntDir)python3stub.def">
+  <Target Name="BuildStubDef" BeforeTargets="PreLinkEvent">
     <ItemGroup>
       <_DefLines Remove="@(_DefLines)" />
       <_Lines Remove="@(_Lines)" />
+      <_OriginalLines Remove="@(_OriginalLines)" />
     </ItemGroup>
     <ReadLinesFromFile File="..\PC\python3.def">
       <Output TaskParameter="Lines" ItemName="_DefLines" />
     </ReadLinesFromFile>
+    <ReadLinesFromFile File="$(IntDir)python3stub.def" Condition="Exists('$(IntDir)python3stub.def')">
+      <Output TaskParameter="Lines" ItemName="_OriginalLines" />
+    </ReadLinesFromFile>
     <PropertyGroup>
       <_Pattern>^[\w.]+=.+?\.([^ ]+).*$</_Pattern>
       <_Sub>$1</_Sub>
@@ -132,6 +142,8 @@
       <_Lines Include="@(_Symbols->'%(Symbol)')" />
     </ItemGroup>
     <MakeDir Directories="$(IntDir)" />
-    <WriteLinesToFile File="$(IntDir)python3stub.def" Lines="@(_Lines)" Overwrite="true" />
+    <Message Text="Updating python3stub.def" Condition="@(_OriginalLines) != @(_Lines)" Importance="high" />
+    <WriteLinesToFile File="$(IntDir)python3stub.def" Lines="@(_Lines)" Overwrite="true"
+                      Condition="@(_DefLines) != @(_Lines)" />
   </Target>
 </Project>
\ No newline at end of file



More information about the Python-checkins mailing list