# HG changeset patch # User Thibaut Girka # Date 1324412254 -3600 # Node ID 8f4cd1c01d226c317ec0bb6b27acdda12ab47577 # Parent 31460b2ec530d5084553d91efe5a61b3fadc7e69 Add basic cx_Freeze support in order to freeze to a windows executable. diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -7,7 +7,6 @@ from distutils.command.build_scripts imp from distutils.dep_util import newer from distutils import log - # Cython is needed try: from Cython.Distutils import build_ext @@ -17,6 +16,12 @@ except ImportError: 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 @@ class BuildScripts(build_scripts): 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 directory, _, files in os.walk('pyto 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 @@ setup(name='PyTouhou', ext_modules=extensions, scripts=['scripts/eosd'], cmdclass={'build_ext': build_ext, - 'build_scripts': BuildScripts} + 'build_scripts': BuildScripts}, + **extra )