]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-119679: Ensures correct import libraries are included in Windows install packages...
authorSteve Dower <steve.dower@python.org>
Mon, 3 Jun 2024 14:42:45 +0000 (15:42 +0100)
committerGitHub <noreply@github.com>
Mon, 3 Jun 2024 14:42:45 +0000 (15:42 +0100)
Misc/NEWS.d/next/Windows/2024-05-30-17-39-25.gh-issue-119679.mZC87w.rst [new file with mode: 0644]
PC/layout/main.py
Tools/msi/freethreaded/freethreaded_files.wxs

diff --git a/Misc/NEWS.d/next/Windows/2024-05-30-17-39-25.gh-issue-119679.mZC87w.rst b/Misc/NEWS.d/next/Windows/2024-05-30-17-39-25.gh-issue-119679.mZC87w.rst
new file mode 100644 (file)
index 0000000..db9e798
--- /dev/null
@@ -0,0 +1 @@
+Ensures correct import libraries are included in Windows installs.
index 1c4842f8588a5b0db848b5db750399a30860666e..716f01097fe3b00912290b016e7bd7fb5ac459b5 100644 (file)
@@ -121,7 +121,7 @@ def get_tcltk_lib(ns):
 
 
 def get_layout(ns):
-    def in_build(f, dest="", new_name=None):
+    def in_build(f, dest="", new_name=None, no_lib=False):
         n, _, x = f.rpartition(".")
         n = new_name or n
         src = ns.build / f
@@ -136,7 +136,7 @@ def get_layout(ns):
             pdb = src.with_suffix(".pdb")
             if pdb.is_file():
                 yield dest + n + ".pdb", pdb
-        if ns.include_dev:
+        if ns.include_dev and not no_lib:
             lib = src.with_suffix(".lib")
             if lib.is_file():
                 yield "libs/" + n + ".lib", lib
@@ -202,7 +202,9 @@ def get_layout(ns):
 
     yield "LICENSE.txt", ns.build / "LICENSE.txt"
 
-    for dest, src in rglob(ns.build, "*.pyd"):
+    dest="" if ns.flat_dlls else "DLLs/"
+
+    for _, src in rglob(ns.build, "*.pyd"):
         if ns.include_freethreaded:
             if not src.match("*.cp*t-win*.pyd"):
                 continue
@@ -217,14 +219,14 @@ def get_layout(ns):
             continue
         if src in TCLTK_PYDS_ONLY and not ns.include_tcltk:
             continue
-        yield from in_build(src.name, dest="" if ns.flat_dlls else "DLLs/")
+        yield from in_build(src.name, dest=dest, no_lib=True)
 
-    for dest, src in rglob(ns.build, "*.dll"):
+    for _, src in rglob(ns.build, "*.dll"):
         if src.stem.endswith("_d") != bool(ns.debug) and src not in REQUIRED_DLLS:
             continue
         if src in EXCLUDE_FROM_DLLS:
             continue
-        yield from in_build(src.name, dest="" if ns.flat_dlls else "DLLs/")
+        yield from in_build(src.name, no_lib=True)
 
     if ns.zip_lib:
         zip_name = PYTHON_ZIP_NAME
index adaf63c69d5ade3282fdacce307f813ec5d519ce..49ecb3429ad8f3fce474087b82e18d9d9d0e6b75 100644 (file)
             <Component Id="freethreaded_python.dll" Directory="InstallDirectory" Guid="*">
                 <File Id="freethreaded_python.dll" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber)t.dll" KeyPath="yes" />
             </Component>
+            <Component Id="freethreaded_python_stable.lib" Directory="libs" Guid="*">
+                <File Id="freethreaded_python_stable.lib" Name="python$(var.MajorVersionNumber)t.lib" KeyPath="yes" />
+            </Component>
+            <Component Id="freethreaded_python.lib" Directory="libs" Guid="*">
+                <File Id="freethreaded_python.lib" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber)t.lib" KeyPath="yes" />
+            </Component>
         </ComponentGroup>
     </Fragment>
     <Fragment>
                 <File Id="freethreaded_python_stable_d.dll" Name="python$(var.MajorVersionNumber)t_d.dll" KeyPath="yes" />
             </Component>
             <Component Id="freethreaded_python_d.dll" Directory="InstallDirectory" Guid="*">
-                <File Id="freethreaded_python_d.dll" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber)_d.dll" KeyPath="yes" />
-                <File Id="freethreaded_python_d.pdb" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber)_d.pdb" KeyPath="no" />
+                <File Id="freethreaded_python_d.dll" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber)t_d.dll" KeyPath="yes" />
+                <File Id="freethreaded_python_d.pdb" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber)t_d.pdb" KeyPath="no" />
+            </Component>
+            <Component Id="freethreaded_python_stable_d.lib" Directory="libs" Guid="*">
+                <File Id="freethreaded_python_stable_d.lib" Name="python$(var.MajorVersionNumber)t_d.lib" KeyPath="yes" />
+            </Component>
+            <Component Id="freethreaded_python_d.lib" Directory="libs" Guid="*">
+                <File Id="freethreaded_python_d.lib" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber)t_d.lib" KeyPath="yes" />
             </Component>
         </ComponentGroup>
     </Fragment>
             
             <?endforeach ?>
             
-            <Component Id="venvlauncher_d.exe" Directory="Lib_venv_scripts_nt__freethreaded" Guid="*">
-                <File Name="python_d.exe" Source="venvlauncher_d.exe" KeyPath="yes" />
-            </Component>
-            <Component Id="venvwlauncher_d.exe" Directory="Lib_venv_scripts_nt__freethreaded" Guid="*">
-                <File Name="pythonw_d.exe" Source="venvwlauncher_d.exe" KeyPath="yes" />
-            </Component>
             <Component Id="venvlaunchert_d.pdb" Directory="Lib_venv_scripts_nt__freethreaded" Guid="*">
                 <File Name="venvlaunchert_d.pdb" KeyPath="yes" />
             </Component>