Encore un coup pour préparer la personalisation du comportement des wiimotes.
[minwii.git] / setup_win_exe.py
index 55050ab..b55d449 100755 (executable)
@@ -1,4 +1,4 @@
-# -*- coding: utf-8 -*-
+# -*- coding: iso-8859-1 -*-
 # This will create a dist directory containing the executable file, all the data
 # directories. All Libraries will be bundled in executable file.
 #
 # This will create a dist directory containing the executable file, all the data
 # directories. All Libraries will be bundled in executable file.
 #
@@ -26,33 +26,23 @@ def isSystemDLL(pathname):
     return origIsSystemDLL(pathname)
 py2exe.build_exe.isSystemDLL = isSystemDLL
 
     return origIsSystemDLL(pathname)
 py2exe.build_exe.isSystemDLL = isSystemDLL
 
-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')
-    
+def findMinwiiDir() :
+    import minwii
+    return os.path.dirname(minwii.__file__)
 
 class MinWii2exe(py2exe.build_exe.py2exe) :
     def copy_extensions(self, extensions) :
         py2exe.build_exe.py2exe.copy_extensions(self, extensions)
 
 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')
+        minwiiDir = findMinwiiDir()
+        self.copyDataFiles(os.path.join(minwiiDir, 'fonts'), 'minwii/fonts')
+        self.copyDataFiles(os.path.join(minwiiDir, 'soundfonts'), 'minwii/soundfonts')
+        self.copyDataFiles(os.path.join(minwiiDir, 'widgets', 'data'), 'minwii/widgets/data')
+
+        pygamedir = os.path.dirname(pygame.base.__file__)
+        pygame_default_font = os.path.join(pygamedir, pygame.font.get_default_font())
+        dest = os.path.join(self.collect_dir, 'pygame', pygame.font.get_default_font())
+        self.copy_file(pygame_default_font, dest)
+        self.compiled_files.append(os.path.join('pygame', pygame.font.get_default_font()))
     
     def copyDataFiles(self, src, dest) :
         src = src.replace('/', os.path.sep)
     
     def copyDataFiles(self, src, dest) :
         src = src.replace('/', os.path.sep)
@@ -76,20 +66,10 @@ class MinWii2exe(py2exe.build_exe.py2exe) :
                 self.compiled_files.append(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):
         #Name of starting .py
 class BuildExe:
     def __init__(self):
         #Name of starting .py
-        self.script = "src/minwii/start_win.py"
+        #self.script = "src/minwii/runminwii.py"
 
         #Name of program
         self.project_name = "MINWii"
 
         #Name of program
         self.project_name = "MINWii"
@@ -98,25 +78,23 @@ class BuildExe:
         self.project_url = "about:none"
 
         #Version of program
         self.project_url = "about:none"
 
         #Version of program
-        self.project_version = "0.0"
+        self.project_version = "1.2.1"
 
         #License of the program
 
         #License of the program
-        self.license = "MyApps License"
+        self.license = "GPL"
 
         #Auhor of program
 
         #Auhor of program
-        self.author_name = "Me"
-        self.author_email = "example@example.com"
-        self.copyright = "Copyright (c) 2009 Me."
+        self.author_name = "Samuel Benveniste"
+        self.author_email = "samuel.benveniste@gmail.com"
+        self.copyright = "Copyright 2010 MINES-ParisTech"
 
         #Description
 
         #Description
-        self.project_description = "MyApps Description"
+        self.project_description = "Musicothérapie Interractive avec la Wiimote"
 
         #Icon file (None will use pygame default icon)
 
         #Icon file (None will use pygame default icon)
-        self.icon_file = None
+        self.icon_file = 'minwii.ico'
 
 
-        #Extra files/dirs copied to game
-        self.data_files = [('minwii/fonts',
-                                glob.glob('src/minwii/fonts/*.ttf'))]
+        self.data_files = []
 
         #Extra/excludes python modules
         self.extra_modules = []
 
         #Extra/excludes python modules
         self.extra_modules = []
@@ -126,7 +104,7 @@ class BuildExe:
         self.exclude_dll = ['']
 
         #Zip file name (None will bundle files in exe instead of zip file)
         self.exclude_dll = ['']
 
         #Zip file name (None will bundle files in exe instead of zip file)
-        self.zipfile_name = None
+        self.zipfile_name = 'minwii_lib.zip'
 
         #Dist directory
         self.dist_dir ='dist'
 
         #Dist directory
         self.dist_dir ='dist'
@@ -157,18 +135,26 @@ class BuildExe:
             license = self.license,
 
             # targets to build
             license = self.license,
 
             # targets to build
-            #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,
-                                  'excludes': self.exclude_modules,
-                                  'packages': self.extra_modules,
-                                  'dll_excludes': self.exclude_dll}
+            windows = [{
+                'script': "src/minwii/runminwii.py",
+                'icon_resources': [(0, self.icon_file)],
+                'copyright': self.copyright
+                },
+                {
+                'script' : "src/minwii/logapp.py",
+                'icon_resources': [(0, 'logapp.ico')],
+                'copyright' : self.copyright
+                }
+                ],
+            #console = ["src/minwii/logapp.py"],
+            options = {'py2exe': {'optimize': 1,
+                                  'bundle_files': 3,
+                                  #'compressed': True,
+                                  #'excludes': self.exclude_modules,
+                                  #'packages': self.extra_modules,
+                                  #'dll_excludes': self.exclude_dll,
+                                  'skip_archive' : True
+                                  }
                       },
             zipfile = self.zipfile_name,
             data_files = self.data_files,
                       },
             zipfile = self.zipfile_name,
             data_files = self.data_files,