return origIsSystemDLL(pathname)
py2exe.build_exe.isSystemDLL = isSystemDLL
-
-class pygame2exe(py2exe.build_exe.py2exe): #This hack make sure that pygame default font is copied: no need to modify code for specifying default font
- def copy_extensions(self, extensions):
- #Get pygame default font
- pygamedir = os.path.split(pygame.base.__file__)[0]
- pygame_default_font = os.path.join(pygamedir, pygame.font.get_default_font())
-
- #Add font to list of extension to be copied
- extensions.append(Module("pygame.font", pygame_default_font))
+def findPguThemesDir() :
+ import pgu.gui.theme
+ theme_file = pgu.gui.theme.__file__
+ dnames = []
+ dnames.append(os.path.join(os.path.dirname(theme_file),"..","..","data","themes"))
+
+ #if the package is installed, and the package is installed
+ #in /usr/lib/python2.3/site-packages/pgu/
+ #or c:\python23\lib\site-packages\pgu\
+ #the data is in ... lib/../share/ ...
+ dnames.append(os.path.join(os.path.dirname(theme_file),"..","..","..","..","share","pgu","themes"))
+ dnames.append(os.path.join(os.path.dirname(theme_file),"..","..","..","..","..","share","pgu","themes"))
+ dnames.append(os.path.join(os.path.dirname(theme_file),"..","..","share","pgu","themes"))
+ for dname in dnames:
+ if os.path.isdir(dname):
+ return dname
+ raise IOError('pgu themes folder not found')
+
+
+class MinWii2exe(py2exe.build_exe.py2exe) :
+ def copy_extensions(self, extensions) :
py2exe.build_exe.py2exe.copy_extensions(self, extensions)
+
+ self.copyDataFiles('src/minwii/fonts', 'minwii/fonts')
+ self.copyDataFiles('src/minwii/soundfonts', 'minwii/soundfonts')
+ self.copyDataFiles('src/minwii/widgets/data', 'minwii/widgets/data')
+ self.copyDataFiles(findPguThemesDir(), 'data/themes')
+
+ def copyDataFiles(self, src, dest) :
+ src = src.replace('/', os.path.sep)
+ reldest = dest.replace('/', os.path.sep)
+ dest = os.path.join(self.collect_dir, reldest)
+
+ if not os.path.exists(dest) :
+ self.mkpath(dest)
+
+ for path, dirs, files in os.walk(src) :
+ if '.svn' in path : continue
+ relpath = path[len(src)+1:]
+ if not os.path.exists(os.path.join(dest, relpath)) :
+ self.mkpath(os.path.join(dest, relpath))
+
+ for file in files :
+ s = os.path.join(path, file)
+ d = os.path.join(dest, relpath, file)
+ self.copy_file(s, d)
+ print os.path.join(reldest, relpath, file)
+ self.compiled_files.append(os.path.join(reldest, relpath, file))
+
+
+#class pygame2exe(py2exe.build_exe.py2exe): #This hack make sure that pygame default font is copied: no need to modify code for specifying default font
+# def copy_extensions(self, extensions):
+# #Get pygame default font
+# pygamedir = os.path.split(pygame.base.__file__)[0]
+# pygame_default_font = os.path.join(pygamedir, pygame.font.get_default_font())
+#
+# #Add font to list of extension to be copied
+# extensions.append(Module("pygame.font", pygame_default_font))
+# py2exe.build_exe.py2exe.copy_extensions(self, extensions)
class BuildExe:
def __init__(self):
setup(
- cmdclass = {'py2exe': pygame2exe},
+ cmdclass = {'py2exe': MinWii2exe},
version = self.project_version,
description = self.project_description,
name = self.project_name,
console = [self.script],
options = {'py2exe': {#'optimize': 2,
'bundle_files': 1,
- #'compressed': True,
+ 'compressed': True,
'excludes': self.exclude_modules,
'packages': self.extra_modules,
'dll_excludes': self.exclude_dll}