[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