[Python-checkins] cpython: Issue 23018: Add version info to python[w].exe

steve.dower python-checkins at python.org
Thu Jan 15 18:12:45 CET 2015


https://hg.python.org/cpython/rev/3f7e483cebef
changeset:   94180:3f7e483cebef
user:        Steve Dower <steve.dower at microsoft.com>
date:        Thu Jan 15 09:10:43 2015 -0800
summary:
  Issue 23018: Add version info to python[w].exe

files:
  PC/python.manifest |  12 ++++++++
  PC/python_exe.rc   |  50 +++++++++++++++++++++++++++++++++-
  PC/python_nt.rc    |  42 ++++++---------------------
  PC/python_ver_rc.h |  35 +++++++++++++++++++++++
  4 files changed, 106 insertions(+), 33 deletions(-)


diff --git a/PC/python.manifest b/PC/python.manifest
new file mode 100644
--- /dev/null
+++ b/PC/python.manifest
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
+    <application> 
+      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> 
+      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
+      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
+      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
+      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
+    </application> 
+  </compatibility>
+</assembly>
\ No newline at end of file
diff --git a/PC/python_exe.rc b/PC/python_exe.rc
--- a/PC/python_exe.rc
+++ b/PC/python_exe.rc
@@ -1,1 +1,49 @@
-1           ICON    DISCARDABLE     "pycon.ico" 
+// Resource script for Python console EXEs.
+
+#include "python_ver_rc.h"
+
+// Include the manifest file that indicates we support all
+// current versions of Windows.
+#include <winuser.h>
+1 RT_MANIFEST "python.manifest"
+
+1 ICON DISCARDABLE "pycon.ico" 
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION PYVERSION64
+ PRODUCTVERSION PYVERSION64
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS VS_FF_DEBUG
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS VOS__WINDOWS32
+ FILETYPE VFT_APP
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "000004b0"
+        BEGIN
+            VALUE "CompanyName", PYTHON_COMPANY "\0"
+            VALUE "FileDescription", "Python\0"
+            VALUE "FileVersion", PYTHON_VERSION
+            VALUE "InternalName", "Python Console\0"
+            VALUE "LegalCopyright", PYTHON_COPYRIGHT "\0"
+            VALUE "OriginalFilename", "python" PYTHON_DEBUG_EXT ".exe\0"
+            VALUE "ProductName", "Python\0"
+            VALUE "ProductVersion", PYTHON_VERSION
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x0, 1200
+    END
+END
diff --git a/PC/python_nt.rc b/PC/python_nt.rc
--- a/PC/python_nt.rc
+++ b/PC/python_nt.rc
@@ -1,33 +1,11 @@
 // Resource script for Python core DLL.
-// Currently only holds version information.
-//
-#include "winver.h"
 
-#define MS_WINDOWS
-#include "modsupport.h"
-#include "patchlevel.h"
-#ifdef _DEBUG
-#   include "pythonnt_rc_d.h"
-#else
-#   include "pythonnt_rc.h"
-#endif
+#include "python_ver_rc.h"
 
-/* e.g., 3.3.0a1
- * PY_VERSION comes from patchlevel.h
- */
-#define PYTHON_VERSION PY_VERSION "\0"
-
-/* 64-bit version number as comma-separated list of 4 16-bit ints */
-#if PY_MICRO_VERSION > 64
-#   error "PY_MICRO_VERSION > 64"
-#endif
-#if PY_RELEASE_LEVEL > 99
-#   error "PY_RELEASE_LEVEL > 99"
-#endif
-#if PY_RELEASE_SERIAL > 9
-#   error "PY_RELEASE_SERIAL > 9"
-#endif
-#define PYVERSION64 PY_MAJOR_VERSION, PY_MINOR_VERSION, FIELD3, PYTHON_API_VERSION
+// Include the manifest file that indicates we support all
+// current versions of Windows.
+#include <winuser.h>
+2 RT_MANIFEST "python.manifest"
 
 // String Tables
 STRINGTABLE DISCARDABLE
@@ -45,23 +23,23 @@
  PRODUCTVERSION PYVERSION64
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
- FILEFLAGS 0x1L
+ FILEFLAGS VS_FF_DEBUG
 #else
  FILEFLAGS 0x0L
 #endif
- FILEOS 0x40004L
- FILETYPE 0x1L
+ FILEOS VOS__WINDOWS32
+ FILETYPE VFT_DLL
  FILESUBTYPE 0x0L
 BEGIN
     BLOCK "StringFileInfo"
     BEGIN
         BLOCK "000004b0"
         BEGIN
-            VALUE "CompanyName", "Python Software Foundation\0"
+            VALUE "CompanyName", PYTHON_COMPANY "\0"
             VALUE "FileDescription", "Python Core\0"
             VALUE "FileVersion", PYTHON_VERSION
             VALUE "InternalName", "Python DLL\0"
-            VALUE "LegalCopyright", "Copyright © 2001-2015 Python Software Foundation. Copyright © 2000 BeOpen.com. Copyright © 1995-2001 CNRI. Copyright © 1991-1995 SMC.\0"
+            VALUE "LegalCopyright", PYTHON_COPYRIGHT "\0"
             VALUE "OriginalFilename", PYTHON_DLL_NAME "\0"
             VALUE "ProductName", "Python\0"
             VALUE "ProductVersion", PYTHON_VERSION
diff --git a/PC/python_ver_rc.h b/PC/python_ver_rc.h
new file mode 100644
--- /dev/null
+++ b/PC/python_ver_rc.h
@@ -0,0 +1,35 @@
+// Resource script for Python core DLL.
+// Currently only holds version information.
+//
+#include "winver.h"
+
+#define PYTHON_COMPANY   "Python Software Foundation"
+#define PYTHON_COPYRIGHT "Copyright © 2001-2014 Python Software Foundation. Copyright © 2000 BeOpen.com. Copyright © 1995-2001 CNRI. Copyright © 1991-1995 SMC."
+
+#define MS_WINDOWS
+#include "modsupport.h"
+#include "patchlevel.h"
+#ifdef _DEBUG
+#   include "pythonnt_rc_d.h"
+#   define PYTHON_DEBUG_EXT "_d"
+#else
+#   include "pythonnt_rc.h"
+#   define PYTHON_DEBUG_EXT
+#endif
+
+/* e.g., 3.3.0a1
+ * PY_VERSION comes from patchlevel.h
+ */
+#define PYTHON_VERSION PY_VERSION "\0"
+
+/* 64-bit version number as comma-separated list of 4 16-bit ints */
+#if PY_MICRO_VERSION > 64
+#   error "PY_MICRO_VERSION > 64"
+#endif
+#if PY_RELEASE_LEVEL > 99
+#   error "PY_RELEASE_LEVEL > 99"
+#endif
+#if PY_RELEASE_SERIAL > 9
+#   error "PY_RELEASE_SERIAL > 9"
+#endif
+#define PYVERSION64 PY_MAJOR_VERSION, PY_MINOR_VERSION, FIELD3, PYTHON_API_VERSION

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list