setup: stop packaging python3.dll and python3X.dll in the wheel distribution
authorMatt Harbison <matt_harbison@yahoo.com>
Sun, 19 Sep 2021 01:36:37 -0400
changeset 48180 f78d8b8c46d7
parent 48179 67d14d4e036c
child 48181 c95f6c2d1f4e
setup: stop packaging python3.dll and python3X.dll in the wheel distribution Now that exewrapper is smart enough to find the DLLs it needs without help from the build script, backout ed286d150aa8 and 2960b7fac966. Note that this will require deleting the build/lib.win-amd64-3.X directory to actually remove it from the final wheel. Differential Revision: https://phab.mercurial-scm.org/D11455
setup.py
--- a/setup.py	Sun Sep 19 01:23:16 2021 -0400
+++ b/setup.py	Sun Sep 19 01:36:37 2021 -0400
@@ -780,9 +780,6 @@
 
         pythonlib = None
 
-        dir = os.path.dirname(self.get_ext_fullpath('dummy'))
-        self.hgtarget = os.path.join(dir, 'hg')
-
         if getattr(sys, 'dllhandle', None):
             # Different Python installs can have different Python library
             # names. e.g. the official CPython distribution uses pythonXY.dll
@@ -808,35 +805,6 @@
                     )
                 pythonlib = dllbasename[:-4]
 
-                # Copy the pythonXY.dll next to the binary so that it runs
-                # without tampering with PATH.
-                fsdecode = lambda x: x
-                if sys.version_info[0] >= 3:
-                    fsdecode = os.fsdecode
-                dest = os.path.join(
-                    os.path.dirname(self.hgtarget),
-                    fsdecode(dllbasename),
-                )
-
-                if not os.path.exists(dest):
-                    shutil.copy(buf.value, dest)
-
-                # Also overwrite python3.dll so that hgext.git is usable.
-                # TODO: also handle the MSYS flavor
-                if sys.version_info[0] >= 3:
-                    python_x = os.path.join(
-                        os.path.dirname(fsdecode(buf.value)),
-                        "python3.dll",
-                    )
-
-                    if os.path.exists(python_x):
-                        dest = os.path.join(
-                            os.path.dirname(self.hgtarget),
-                            os.path.basename(python_x),
-                        )
-
-                        shutil.copy(python_x, dest)
-
         if not pythonlib:
             log.warn(
                 'could not determine Python DLL filename; assuming pythonXY'
@@ -859,6 +827,8 @@
             output_dir=self.build_temp,
             macros=macros,
         )
+        dir = os.path.dirname(self.get_ext_fullpath('dummy'))
+        self.hgtarget = os.path.join(dir, 'hg')
         self.compiler.link_executable(
             objects, self.hgtarget, libraries=[], output_dir=self.build_temp
         )