Port including of private Qt headers int he build system for Qt 5

This commit is contained in:
Kovid Goyal 2014-04-25 00:03:00 +05:30
parent 673d5813b5
commit b0bbe3f6d7
2 changed files with 7 additions and 4 deletions

View File

@ -101,7 +101,6 @@ pyqt['default_sip_dir'] = c.default_sip_dir
pyqt['sip_inc_dir'] = c.sip_inc_dir
qt_inc = pyqt['inc']
qt_private_inc = []
qt_lib = pyqt['lib']
ft_lib_dirs = []
ft_libs = []
@ -162,7 +161,6 @@ elif isosx:
ft_libs = ['freetype']
ft_inc_dirs = ['/sw/include/freetype2']
bq = glob.glob('/sw/build/qt-*/include')[-1]
qt_private_inc = ['%s/%s'%(bq, m) for m in ('QtGui', 'QtCore')]
else:
# Include directories
png_inc_dirs = pkgconfig_include_dirs('libpng', 'PNG_INC_DIR',

View File

@ -16,7 +16,7 @@ from setup.build_environment import (chmlib_inc_dirs,
msvc, MT, win_inc, win_lib, win_ddk, magick_inc_dirs, magick_lib_dirs,
magick_libs, chmlib_lib_dirs, sqlite_inc_dirs, icu_inc_dirs,
icu_lib_dirs, win_ddk_lib_dirs, ft_libs, ft_lib_dirs, ft_inc_dirs,
zlib_libs, zlib_lib_dirs, zlib_inc_dirs, is64bit, qt_private_inc)
zlib_libs, zlib_lib_dirs, zlib_inc_dirs, is64bit)
MT
isunix = islinux or isosx or isbsd
@ -52,6 +52,7 @@ class Extension(object):
flag = '/O%d' if iswindows else '-O%d'
of = flag % of
self.cflags.insert(0, of)
self.qt_private_headers = kwargs.get('qt_private', [])
def preflight(self, obj_dir, compiler, linker, builder, cflags, ldflags):
pass
@ -226,8 +227,9 @@ extensions = [
Extension('qt_hack',
['calibre/ebooks/pdf/render/qt_hack.cpp'],
inc_dirs=qt_private_inc + ['calibre/ebooks/pdf/render', 'qt-harfbuzz/src'],
inc_dirs=['calibre/ebooks/pdf/render', 'qt-harfbuzz/src'],
headers=['calibre/ebooks/pdf/render/qt_hack.h'],
qt_private=['core', 'gui'],
sip_files=['calibre/ebooks/pdf/render/qt_hack.sip']
),
@ -551,6 +553,9 @@ class Build(Command):
pro += '\nQMAKE_LFLAGS += -Wl,--version-script=%s.exp' % sip['target']
with open(os.path.join(src_dir, sip['target'] + '.exp'), 'wb') as f:
f.write(('{ global: init%s; local: *; };' % sip['target']).encode('utf-8'))
if ext.qt_private_headers:
qph = ' '.join(x + '-private' for x in ext.qt_private_headers)
pro += '\nQT += ' + qph
proname = '%s.pro' % sip['target']
with open(os.path.join(src_dir, proname), 'wb') as f:
f.write(pro.encode('utf-8'))