]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-41054: Simplify resource compilation on Windows (GH-21004)
authorNikita Nemkin <nikita@nemkin.ru>
Tue, 23 Jun 2020 19:05:57 +0000 (00:05 +0500)
committerGitHub <noreply@github.com>
Tue, 23 Jun 2020 19:05:57 +0000 (20:05 +0100)
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.

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

index 0bf04f1bf3d791feacb76000ff58e0940ecc7f93..7f17ee168727f0e80587cbc8968c1f9507361468 100644 (file)
@@ -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:
index fac6105d8a7721ab9293c5b80fb3d8aa2065e557..b5fb58f26b20281a1a3f640500b6a4cfafc96b6c 100644 (file)
@@ -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
index f95e755bb8bd786c641ba8e9107218ff78b43cb0..c318d4487ea1b858bbf757970146b25b44baaba2 100644 (file)
@@ -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
index bb918b28e90184c6258749f6d85a53e042f173b5..94a01ff5ca8a083c89e53266ea17b3ab9b60dc17 100644 (file)
@@ -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>
     </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" />