Building of calibre extension modules with VS 2015

This commit is contained in:
Kovid Goyal 2015-12-06 13:47:56 +05:30
parent 607268dee1
commit dc52214b2b
2 changed files with 11 additions and 7 deletions

View File

@ -26,7 +26,6 @@ if iswindows:
if 'SDK' in p:
MT = os.path.join(os.path.dirname(p), 'bin', 'mt.exe')
MT = os.path.join(SDK, 'Bin', 'mt.exe')
os.environ['QMAKESPEC'] = os.environ.get('QMAKESPEC', 'win32-msvc2008')
QMAKE = 'qmake'
for x in ('qmake-qt5', 'qt5-qmake', 'qmake'):
@ -85,13 +84,14 @@ def consolidate(envvar, default):
qraw = subprocess.check_output([QMAKE, '-query']).decode('utf-8')
def readvar(name):
return re.search('%s:(.+)$' % name, qraw, flags=re.M).group(1).strip()
return re.search('^%s:(.+)$' % name, qraw, flags=re.M).group(1).strip()
pyqt = {x:readvar(y) for x, y in (
('inc', 'QT_INSTALL_HEADERS'), ('lib', 'QT_INSTALL_LIBS')
)}
qt = {x:readvar(y) for x, y in {'libs':'QT_INSTALL_LIBS', 'plugins':'QT_INSTALL_PLUGINS'}.iteritems()}
qmakespec = readvar('QMAKE_SPEC') if iswindows else None
pyqt['sip_bin'] = os.environ.get('SIP_BIN', 'sip')
@ -173,8 +173,11 @@ if iswindows:
zlib_libs = ['zlib']
md = glob.glob(os.path.join(prefix, 'build', 'ImageMagick-*'))[-1]
magick_inc_dirs = [md]
magick_lib_dirs = [os.path.join(magick_inc_dirs[0], 'VisualMagick', 'lib')]
if os.path.exists(os.path.join(md, 'ImageMagick/wand/MagickWand.h')):
magick_inc_dirs = [os.path.join(md, 'ImageMagick')]
else:
magick_inc_dirs = [md]
magick_lib_dirs = [os.path.join(md, 'VisualMagick', 'lib')]
magick_libs = ['CORE_RL_wand_', 'CORE_RL_magick_']
podofo_inc = os.path.join(sw_inc_dir, 'podofo')
podofo_lib = sw_lib_dir

View File

@ -15,7 +15,8 @@ from setup.build_environment import (
msvc, win_inc, win_lib, magick_inc_dirs, magick_lib_dirs, magick_libs,
chmlib_lib_dirs, sqlite_inc_dirs, icu_inc_dirs, icu_lib_dirs, ft_libs,
ft_lib_dirs, ft_inc_dirs, cpu_count, is64bit, glib_flags, fontconfig_flags,
openssl_inc_dirs, openssl_lib_dirs, zlib_inc_dirs, zlib_lib_dirs, zlib_libs)
openssl_inc_dirs, openssl_lib_dirs, zlib_inc_dirs, zlib_lib_dirs, zlib_libs,
qmakespec)
from setup.parallel_build import create_job, parallel_build
isunix = islinux or isosx or isbsd
@ -633,7 +634,7 @@ class Build(Command):
cwd = os.getcwdu()
qmc = []
if iswindows:
qmc += ['-spec', 'win32-msvc2008']
qmc += ['-spec', qmakespec]
fext = 'dll' if iswindows else 'dylib' if isosx else 'so'
name = '%s%s.%s' % ('release/' if iswindows else 'lib', sip['target'], fext)
try:
@ -642,7 +643,7 @@ class Build(Command):
self.check_call([QMAKE] + qmc + [proname])
self.check_call([make]+([] if iswindows else ['-j%d'%(cpu_count or 1)]))
shutil.copy2(os.path.realpath(name), dest)
if iswindows:
if iswindows and os.path.exists(name + '.manifest'):
shutil.copy2(name + '.manifest', dest + '.manifest')
finally: