X-Git-Url: https://svn.cri.ensmp.fr/git/minwii.git/blobdiff_plain/79aca379ed6dffa4d71d66f513a973d2e3470c5a..e91cf222dbfdb5d5180b58aa906f7896972cb1ff:/setup_win_exe.py diff --git a/setup_win_exe.py b/setup_win_exe.py index c903cd9..2a9b4e7 100755 --- a/setup_win_exe.py +++ b/setup_win_exe.py @@ -18,6 +18,15 @@ try: except ImportError, message: raise SystemExit, "Unable to load module. %s" % message + +origIsSystemDLL = py2exe.build_exe.isSystemDLL +def isSystemDLL(pathname): + if os.path.basename(pathname).lower() in ["sdl_ttf.dll"]: + return 0 + 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 @@ -57,7 +66,8 @@ class BuildExe: self.icon_file = None #Extra files/dirs copied to game - self.extra_datas = [] + self.data_files = [('minwii/fonts', + glob.glob('src/minwii/fonts/*.ttf'))] #Extra/excludes python modules self.extra_modules = [] @@ -72,57 +82,21 @@ class BuildExe: #Dist directory self.dist_dir ='dist' - ## Code from DistUtils tutorial at http://wiki.python.org/moin/Distutils/Tutorial - ## Originally borrowed from wxPython's setup and config files - def opj(self, *args): - path = os.path.join(*args) - return os.path.normpath(path) - - def find_data_files(self, srcdir, *wildcards, **kw): - # get a list of all files under the srcdir matching wildcards, - # returned in a format to be used for install_data - def walk_helper(arg, dirname, files): - if '.svn' in dirname: - return - names = [] - lst, wildcards = arg - for wc in wildcards: - wc_name = self.opj(dirname, wc) - for f in files: - filename = self.opj(dirname, f) - - if fnmatch.fnmatch(filename, wc_name) and not os.path.isdir(filename): - names.append(filename) - if names: - lst.append( (dirname, names ) ) - - file_list = [] - recursive = kw.get('recursive', True) - if recursive: - os.path.walk(srcdir, walk_helper, (file_list, wildcards)) - else: - walk_helper((file_list, wildcards), - srcdir, - [os.path.basename(f) for f in glob.glob(self.opj(srcdir, '*'))]) - return file_list def run(self): if os.path.isdir(self.dist_dir): #Erase previous destination dir shutil.rmtree(self.dist_dir) + if os.path.isdir('build'): #Clean up build dir + shutil.rmtree('build') + + #Use the default pygame icon, if none given if self.icon_file == None: path = os.path.split(pygame.__file__)[0] self.icon_file = os.path.join(path, 'pygame.ico') - #List all data files to add - extra_datas = [] - for data in self.extra_datas: - if os.path.isdir(data): - extra_datas.extend(self.find_data_files(data, '*')) - else: - extra_datas.append(('.', [data])) - + setup( cmdclass = {'py2exe': pygame2exe}, version = self.project_version, @@ -134,11 +108,12 @@ class BuildExe: license = self.license, # targets to build - windows = [{ - 'script': self.script, - 'icon_resources': [(0, self.icon_file)], - 'copyright': self.copyright - }], + #windows = [{ + # 'script': self.script, + # 'icon_resources': [(0, self.icon_file)], + # 'copyright': self.copyright + #}], + console = [self.script], options = {'py2exe': {#'optimize': 2, 'bundle_files': 1, #'compressed': True, @@ -147,7 +122,7 @@ class BuildExe: 'dll_excludes': self.exclude_dll} }, zipfile = self.zipfile_name, - data_files = extra_datas, + data_files = self.data_files, dist_dir = self.dist_dir )