comparison setup-exe.py @ 147:37955420fd66

Added a cx_Freeze-based setup-exe.py for Windows
author Oleg Oshmyan <chortos@inbox.lv>
date Sat, 28 May 2011 19:54:03 +0100
parents
children 1bf2ef9dd0d8 91fe19d9eba4 4df9537ed261
comparison
equal deleted inserted replaced
146:d5b6708c1955 147:37955420fd66
1 #! /usr/bin/env python
2 from cx_Freeze import setup, Executable, build_exe
3 from distutils.core import Extension
4 from distutils.command.build_ext import build_ext
5 from distutils.errors import CCompilerError
6 from distutils import log
7 import os
8
9 class build_opt_ext(build_ext):
10 def build_extension(self, ext):
11 try:
12 build_ext.build_extension(self, ext)
13 except CCompilerError:
14 log.warn("Failed to build native extension '%s' (skipping)",
15 ext.name)
16
17 try:
18 from sys import maxsize
19 except ImportError:
20 from sys import maxint as maxsize
21 if maxsize < 2**32:
22 arch = 'x86'
23 else:
24 arch = 'amd64'
25 direct = (R'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\%s'
26 R'\Microsoft.VC90.CRT' % arch)
27 files = ['msvcr90.dll', 'Microsoft.VC90.CRT.manifest']
28 msvcrt_files = [os.path.join(direct, name) for name in files]
29
30 os.rename('upreckon/unix.py', 'upreckon/unix.py~')
31 try:
32 setup(name='Upreckon',
33 version='2.01.0',
34 author='Oleg Oshmyan',
35 author_email='chortos@inbox.lv',
36 url='http://chortos.selfip.net/~astiob/test.py/',
37 #description='',
38 #long_description='',
39 download_url='https://bitbucket.org/astiob/upreckon/downloads',
40 #platforms=(),
41 #license='',
42 #ext_modules=[Extension('upreckon._unix',
43 # sources=['upreckon/_unixmodule.cpp'])],
44 executables=[Executable('upreckon/upreckon')],
45 data_files=[('', msvcrt_files)],
46 cmdclass={'build_ext': build_opt_ext},
47 )
48 finally:
49 os.rename('upreckon/unix.py~', 'upreckon/unix.py')