setup.py
changeset 28430 17b85d739b62
parent 28418 121d25719e92
child 28431 a7e3b72cf756
--- a/setup.py	Wed Mar 09 08:08:27 2016 -0800
+++ b/setup.py	Wed Mar 09 15:47:01 2016 +0000
@@ -314,21 +314,16 @@
                 raise SystemExit('Python headers are required to build '
                                  'Mercurial but weren\'t found in %s' % h)
 
-    def copy_file(self, *args, **kwargs):
-        dst, copied = build_py.copy_file(self, *args, **kwargs)
+    def run(self):
+        if self.distribution.pure:
+            modulepolicy = 'py'
+        else:
+            modulepolicy = 'c'
+        with open("mercurial/__modulepolicy__.py", "w") as f:
+            f.write('# this file is autogenerated by setup.py\n')
+            f.write('modulepolicy = "%s"\n' % modulepolicy)
 
-        if copied and dst.endswith('__init__.py'):
-            if self.distribution.pure:
-                modulepolicy = 'py'
-            else:
-                modulepolicy = 'c'
-            content = open(dst, 'rb').read()
-            content = content.replace(b'@MODULELOADPOLICY@',
-                                      modulepolicy.encode(libdir_escape))
-            with open(dst, 'wb') as fh:
-                fh.write(content)
-
-        return dst, copied
+        build_py.run(self)
 
 class buildhgextindex(Command):
     description = 'generate prebuilt index of hgext (for frozen package)'