summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2020-06-23 19:27:30 (GMT)
committerGitHub <noreply@github.com>2020-06-23 19:27:30 (GMT)
commitcebd43fbfd25a80404728f73edc301f9558d9410 (patch)
treede4b8d7f977bfcd30ef97682d7a60c0f1c204ffc
parent92f8b480bab408be09bc1631cf2e0e5a4641b731 (diff)
downloadcpython-cebd43fbfd25a80404728f73edc301f9558d9410.zip
cpython-cebd43fbfd25a80404728f73edc301f9558d9410.tar.gz
cpython-cebd43fbfd25a80404728f73edc301f9558d9410.tar.bz2
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. (cherry picked from commit 4efc3360c9a83d5891f27ed67b4f0ab7275d2ab4) Co-authored-by: Nikita Nemkin <nikita@nemkin.ru>
-rw-r--r--PC/dl_nt.c13
-rw-r--r--PC/python_nt.rc8
-rw-r--r--PC/python_ver_rc.h1
-rw-r--r--PCbuild/pyproject.props17
4 files changed, 3 insertions, 36 deletions
diff --git a/PC/dl_nt.c b/PC/dl_nt.c
index 0bf04f1..7f17ee1 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 fac6105..b5fb58f 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 f95e755..c318d44 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 bb918b2..94a01ff 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" />