--- a/setup.py Sun Mar 03 10:31:23 2019 -0800
+++ b/setup.py Sun Mar 03 15:46:26 2019 -0800
@@ -1240,8 +1240,20 @@
extra = {}
+py2exepackages = [
+ 'hgdemandimport',
+ 'hgext',
+ 'email',
+ # implicitly imported per module policy
+ # (cffi wouldn't be used as a frozen exe)
+ 'mercurial.cext',
+ #'mercurial.cffi',
+ 'mercurial.pure',
+]
+
if issetuptools:
extra['python_requires'] = supportedpy
+
if py2exeloaded:
extra['console'] = [
{'script':'hg',
@@ -1252,6 +1264,34 @@
# put dlls in sub directory so that they won't pollute PATH
extra['zipfile'] = 'lib/library.zip'
+ try:
+ import dulwich
+ dulwich.__version__
+ py2exepackages.append('dulwich')
+ except ImportError:
+ pass
+
+ try:
+ import keyring
+ keyring.util
+ py2exepackages.append('keyring')
+ except ImportError:
+ pass
+
+ try:
+ import pygments
+ pygments.__version__
+ py2exepackages.append('pygments')
+ except ImportError:
+ pass
+
+ try:
+ import pywintypes
+ pywintypes.TRUE
+ py2exepackages.append('pywintypes')
+ except ImportError:
+ pass
+
if os.name == 'nt':
# Windows binary file versions for exe/dll files must have the
# form W.X.Y.Z, where W,X,Y,Z are numbers in the range 0..65535
@@ -1331,16 +1371,7 @@
distclass=hgdist,
options={
'py2exe': {
- 'packages': [
- 'hgdemandimport',
- 'hgext',
- 'email',
- # implicitly imported per module policy
- # (cffi wouldn't be used as a frozen exe)
- 'mercurial.cext',
- #'mercurial.cffi',
- 'mercurial.pure',
- ],
+ 'packages': py2exepackages,
},
'bdist_mpkg': {
'zipdist': False,