This commit is contained in:
Kovid Goyal 2012-12-01 07:53:36 +05:30
parent d375406b42
commit e4cf16327a

View File

@ -504,9 +504,11 @@ class Win32Freeze(Command, WixMixIn):
finally: finally:
os.chdir(cwd) os.chdir(cwd)
def build_launchers(self): def build_launchers(self, debug=False):
if not os.path.exists(self.obj_dir): if not os.path.exists(self.obj_dir):
os.makedirs(self.obj_dir) os.makedirs(self.obj_dir)
dflags = (['/Zi'] if debug else [])
dlflags = (['/DEBUG'] if debug else ['/INCREMENTAL:NO'])
base = self.j(self.src_root, 'setup', 'installer', 'windows') base = self.j(self.src_root, 'setup', 'installer', 'windows')
sources = [self.j(base, x) for x in ['util.c', 'MemoryModule.c']] sources = [self.j(base, x) for x in ['util.c', 'MemoryModule.c']]
headers = [self.j(base, x) for x in ['util.h', 'MemoryModule.h']] headers = [self.j(base, x) for x in ['util.h', 'MemoryModule.h']]
@ -515,14 +517,14 @@ class Win32Freeze(Command, WixMixIn):
cflags += ['/DPYDLL="python%s.dll"'%self.py_ver, '/IC:/Python%s/include'%self.py_ver] cflags += ['/DPYDLL="python%s.dll"'%self.py_ver, '/IC:/Python%s/include'%self.py_ver]
for src, obj in zip(sources, objects): for src, obj in zip(sources, objects):
if not self.newer(obj, headers+[src]): continue if not self.newer(obj, headers+[src]): continue
cmd = [msvc.cc] + cflags + ['/Fo'+obj, '/Tc'+src] cmd = [msvc.cc] + cflags + dflags + ['/Fo'+obj, '/Tc'+src]
self.run_builder(cmd) self.run_builder(cmd)
dll = self.j(self.obj_dir, 'calibre-launcher.dll') dll = self.j(self.obj_dir, 'calibre-launcher.dll')
ver = '.'.join(__version__.split('.')[:2]) ver = '.'.join(__version__.split('.')[:2])
if self.newer(dll, objects): if self.newer(dll, objects):
cmd = [msvc.linker, '/DLL', '/INCREMENTAL:NO', '/VERSION:'+ver, cmd = [msvc.linker, '/DLL', '/VERSION:'+ver, '/OUT:'+dll,
'/OUT:'+dll, '/nologo', '/MACHINE:'+machine] + objects + \ '/nologo', '/MACHINE:'+machine] + dlflags + objects + \
[self.embed_resources(dll), [self.embed_resources(dll),
'/LIBPATH:C:/Python%s/libs'%self.py_ver, '/LIBPATH:C:/Python%s/libs'%self.py_ver,
'python%s.lib'%self.py_ver, 'python%s.lib'%self.py_ver,
@ -546,16 +548,16 @@ class Win32Freeze(Command, WixMixIn):
dest = self.j(self.obj_dir, bname+'.obj') dest = self.j(self.obj_dir, bname+'.obj')
if self.newer(dest, [src]+headers): if self.newer(dest, [src]+headers):
self.info('Compiling', bname) self.info('Compiling', bname)
cmd = [msvc.cc] + xflags + ['/Tc'+src, '/Fo'+dest] cmd = [msvc.cc] + xflags + dflags + ['/Tc'+src, '/Fo'+dest]
self.run_builder(cmd) self.run_builder(cmd)
exe = self.j(self.base, bname+'.exe') exe = self.j(self.base, bname+'.exe')
lib = dll.replace('.dll', '.lib') lib = dll.replace('.dll', '.lib')
if self.newer(exe, [dest, lib, self.rc_template, __file__]): if self.newer(exe, [dest, lib, self.rc_template, __file__]):
self.info('Linking', bname) self.info('Linking', bname)
cmd = [msvc.linker] + ['/INCREMENTAL:NO', '/MACHINE:'+machine, cmd = [msvc.linker] + ['/MACHINE:'+machine,
'/LIBPATH:'+self.obj_dir, '/SUBSYSTEM:'+subsys, '/LIBPATH:'+self.obj_dir, '/SUBSYSTEM:'+subsys,
'/LIBPATH:C:/Python%s/libs'%self.py_ver, '/RELEASE', '/LIBPATH:C:/Python%s/libs'%self.py_ver, '/RELEASE',
'/OUT:'+exe, self.embed_resources(exe), '/OUT:'+exe] + dlflags + [self.embed_resources(exe),
dest, lib] dest, lib]
self.run_builder(cmd) self.run_builder(cmd)