changeset 228:8f4cd1c01d22

Add basic cx_Freeze support in order to freeze to a windows executable.
author Thibaut Girka <thib@sitedethib.com>
date Tue, 20 Dec 2011 21:17:34 +0100
parents 31460b2ec530
children 5afc75f71fed 9d4d52793eca
files setup.py
diffstat 1 files changed, 23 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/setup.py	Tue Dec 20 21:36:14 2011 +0100
+++ b/setup.py	Tue Dec 20 21:17:34 2011 +0100
@@ -7,7 +7,6 @@
 from distutils.dep_util import newer
 from distutils import log
 
-
 # Cython is needed
 try:
     from Cython.Distutils import build_ext
@@ -17,6 +16,12 @@
     sys.exit(1)
 
 
+packages = []
+extension_names = []
+extensions = []
+
+
+
 # The installed script shouldn't call pyximport, strip references to it
 class BuildScripts(build_scripts):
     def copy_scripts(self):
@@ -34,8 +39,6 @@
         build_scripts.copy_scripts(self)
 
 
-packages = []
-extensions = []
 
 for directory, _, files in os.walk('pytouhou'):
     package = directory.replace(os.path.sep, '.')
@@ -43,12 +46,27 @@
     for filename in files:
         if filename.endswith('.pyx'):
             extension_name = '%s.%s' % (package, os.path.splitext(filename)[0])
+            extension_names.append(extension_name)
             extensions.append(Extension(extension_name,
                                         [os.path.join(directory, filename)]))
 
 
 
+# TODO: find a less-intrusive, cleaner way to do this...
+try:
+    from cx_Freeze import setup, Executable
+except ImportError:
+    extra = {}
+else:
+    extra = {
+             'options': {'build_exe': {'includes': extension_names}},
+             'executables': [Executable(script='scripts/eosd', base='Win32GUI')]
+            }
+
+
+
 setup(name='PyTouhou',
+      version="0.1",
       author='Thibaut Girka',
       author_email='thib@sitedethib.com',
       url='http://hg.sitedethib.com/touhou/',
@@ -57,6 +75,7 @@
       ext_modules=extensions,
       scripts=['scripts/eosd'],
       cmdclass={'build_ext': build_ext,
-                'build_scripts': BuildScripts}
+                'build_scripts': BuildScripts},
+      **extra
      )