[Python-checkins] bpo-41054: Simplify resource compilation on Windows (GH-21004)

Nikita Nemkin webhook-mailer at python.org
Tue Jun 23 15:06:06 EDT 2020


https://github.com/python/cpython/commit/4efc3360c9a83d5891f27ed67b4f0ab7275d2ab4
commit: 4efc3360c9a83d5891f27ed67b4f0ab7275d2ab4
branch: master
author: Nikita Nemkin <nikita at nemkin.ru>
committer: GitHub <noreply at github.com>
date: 2020-06-23T20:05:57+01:00
summary:

bpo-41054: Simplify resource compilation on Windows (GH-21004)

Remove auto-generated resource header. Pass definitions required
by resource files (ORIGINAL_FILENAME and FIELD3) directly to resource
compiler.

Remove unused MS_DLL_ID resource string and related dead code.

files:
M PC/dl_nt.c
M PC/python_nt.rc
M PC/python_ver_rc.h
M PCbuild/pyproject.props

diff --git a/PC/dl_nt.c b/PC/dl_nt.c
index 0bf04f1bf3d79..7f17ee168727f 100644
--- a/PC/dl_nt.c
+++ b/PC/dl_nt.c
@@ -12,16 +12,10 @@ forgotten) from the programmer.
 #include "windows.h"
 
 #ifdef Py_ENABLE_SHARED
-#ifdef MS_DLL_ID
-// The string is available at build, so fill the buffer immediately
-char dllVersionBuffer[16] = MS_DLL_ID;
-#else
-char dllVersionBuffer[16] = ""; // a private buffer
-#endif
 
 // Python Globals
 HMODULE PyWin_DLLhModule = NULL;
-const char *PyWin_DLLVersionString = dllVersionBuffer;
+const char *PyWin_DLLVersionString = MS_DLL_ID;
 
 BOOL    WINAPI  DllMain (HANDLE hInst,
                                                 ULONG ul_reason_for_call,
@@ -31,11 +25,6 @@ BOOL    WINAPI  DllMain (HANDLE hInst,
     {
         case DLL_PROCESS_ATTACH:
             PyWin_DLLhModule = hInst;
-#ifndef MS_DLL_ID
-            // If we have MS_DLL_ID, we don't need to load the string.
-            // 1000 is a magic number I picked out of the air.  Could do with a #define, I spose...
-            LoadString(hInst, 1000, dllVersionBuffer, sizeof(dllVersionBuffer));
-#endif
             break;
 
         case DLL_PROCESS_DETACH:
diff --git a/PC/python_nt.rc b/PC/python_nt.rc
index fac6105d8a772..b5fb58f26b202 100644
--- a/PC/python_nt.rc
+++ b/PC/python_nt.rc
@@ -7,12 +7,6 @@
 #include <winuser.h>
 2 RT_MANIFEST "python.manifest"
 
-// String Tables
-STRINGTABLE DISCARDABLE
-BEGIN
-    1000,   MS_DLL_ID
-END
-
 /////////////////////////////////////////////////////////////////////////////
 //
 // Version
@@ -40,7 +34,7 @@ BEGIN
             VALUE "FileVersion", PYTHON_VERSION
             VALUE "InternalName", "Python DLL\0"
             VALUE "LegalCopyright", PYTHON_COPYRIGHT "\0"
-            VALUE "OriginalFilename", PYTHON_DLL_NAME "\0"
+            VALUE "OriginalFilename", ORIGINAL_FILENAME "\0"
             VALUE "ProductName", "Python\0"
             VALUE "ProductVersion", PYTHON_VERSION
         END
diff --git a/PC/python_ver_rc.h b/PC/python_ver_rc.h
index f95e755bb8bd7..c318d4487ea1b 100644
--- a/PC/python_ver_rc.h
+++ b/PC/python_ver_rc.h
@@ -9,7 +9,6 @@
 #define MS_WINDOWS
 #include "modsupport.h"
 #include "patchlevel.h"
-#include <pythonnt_rc.h>
 #ifdef _DEBUG
 #   define PYTHON_DEBUG_EXT "_d"
 #else
diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props
index bb918b28e9018..94a01ff5ca8a0 100644
--- a/PCbuild/pyproject.props
+++ b/PCbuild/pyproject.props
@@ -80,7 +80,7 @@
     </Lib>
     <ResourceCompile>
       <AdditionalIncludeDirectories>$(PySourcePath)PC;$(PySourcePath)Include;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>$(_DebugPreprocessorDefinition)%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>ORIGINAL_FILENAME=\"$(TargetName)$(TargetExt)\";FIELD3=$(Field3Value);$(_DebugPreprocessorDefinition)%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <Culture>0x0409</Culture>
     </ResourceCompile>
     <Midl>
@@ -95,21 +95,6 @@
     </Midl>
   </ItemDefinitionGroup>
 
-  <Target Name="GeneratePythonNtRcH"
-          BeforeTargets="ClCompile"
-          Inputs="$(PySourcePath)Include\patchlevel.h"
-          Outputs="$(IntDir)pythonnt_rc.h">
-    <WriteLinesToFile File="$(IntDir)pythonnt_rc.h" Overwrite="true" Encoding="ascii"
-                      Lines='/* This file created by pyproject.props /t:GeneratePythonNtRcH */
-#define FIELD3 $(Field3Value)
-#define MS_DLL_ID "$(SysWinVer)"
-#define PYTHON_DLL_NAME "$(TargetName)$(TargetExt)"
-' />
-    <ItemGroup>
-        <FileWrites Include="$(IntDir)pythonnt_rc.h" />
-    </ItemGroup>
-  </Target>
-
   <UsingTask TaskName="KillPython" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
     <ParameterGroup>
       <FileName Required="true" />



More information about the Python-checkins mailing list