mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Start work on porting windows build scripts
This commit is contained in:
parent
496a0789fd
commit
06cbf5fad3
@ -6,7 +6,7 @@ __license__ = 'GPL v3'
|
||||
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
import os, socket, struct, subprocess, glob, re
|
||||
import os, subprocess, glob, re
|
||||
from distutils.spawn import find_executable
|
||||
|
||||
import sipconfig
|
||||
@ -18,25 +18,21 @@ OSX_SDK = '/Developer/SDKs/MacOSX10.5.sdk'
|
||||
|
||||
os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.5'
|
||||
|
||||
NMAKE = RC = msvc = MT = win_inc = win_lib = win_ddk = win_ddk_lib_dirs = None
|
||||
NMAKE = RC = msvc = MT = win_inc = win_lib = None
|
||||
if iswindows:
|
||||
from distutils import msvc9compiler
|
||||
msvc = msvc9compiler.MSVCCompiler()
|
||||
msvc.initialize()
|
||||
NMAKE = msvc.find_exe('nmake.exe')
|
||||
RC = msvc.find_exe('rc.exe')
|
||||
SDK = os.environ.get('WINSDK', r'C:\Program Files\Microsoft SDKs\Windows\v6.0A')
|
||||
DDK = os.environ.get('WINDDK', r'Q:\WinDDK\7600.16385.0')
|
||||
win_ddk = [DDK+'\\inc\\'+x for x in ('atl71',)]
|
||||
win_ddk_lib_dirs = [DDK+'\\lib\\ATL\\i386']
|
||||
SDK = os.environ.get('WINSDK', r'C:\Program Files\Microsoft SDKs\Windows\v7.0')
|
||||
win_inc = os.environ['include'].split(';')
|
||||
win_lib = os.environ['lib'].split(';')
|
||||
for p in win_inc:
|
||||
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'] = 'win32-msvc'
|
||||
ICU = os.environ.get('ICU_DIR', r'Q:\icu')
|
||||
MT = os.path.join(SDK, 'Bin', 'mt.exe')
|
||||
os.environ['QMAKESPEC'] = 'win32-msvc2008'
|
||||
|
||||
QMAKE = '/Volumes/sw/qt/bin/qmake' if isosx else 'qmake'
|
||||
for x in ('qmake-qt5', 'qt5-qmake', 'qmake'):
|
||||
@ -122,9 +118,10 @@ zlib_lib_dirs = []
|
||||
zlib_libs = ['z']
|
||||
|
||||
if iswindows:
|
||||
prefix = r'C:\cygwin\home\kovid\sw'
|
||||
prefix = r'C:\cygwin64\home\kovid\sw'
|
||||
sw_inc_dir = os.path.join(prefix, 'include')
|
||||
sw_lib_dir = os.path.join(prefix, 'lib')
|
||||
ICU = os.environ.get('ICU_DIR', os.path.join(prefix, 'private', 'icu'))
|
||||
icu_inc_dirs = [os.path.join(ICU, 'source', 'common'), os.path.join(ICU,
|
||||
'source', 'i18n')]
|
||||
icu_lib_dirs = [os.path.join(ICU, 'source', 'lib')]
|
||||
@ -135,7 +132,7 @@ if iswindows:
|
||||
'build', 'chmlib-0.40', 'src', 'Release'))
|
||||
png_inc_dirs = [sw_inc_dir]
|
||||
png_lib_dirs = [sw_lib_dir]
|
||||
png_libs = ['png12']
|
||||
png_libs = ['png16']
|
||||
jpg_lib_dirs = [sw_lib_dir]
|
||||
jpg_libs = ['jpeg']
|
||||
ft_lib_dirs = [sw_lib_dir]
|
||||
@ -202,29 +199,7 @@ podofo_error = None if os.path.exists(os.path.join(podofo_inc, 'podofo.h')) else
|
||||
' functionality will not work. Use the PODOFO_INC_DIR and',
|
||||
' PODOFO_LIB_DIR environment variables.')
|
||||
|
||||
def get_ip_address(ifname):
|
||||
import fcntl
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
return socket.inet_ntoa(fcntl.ioctl(
|
||||
s.fileno(),
|
||||
0x8915, # SIOCGIFADDR
|
||||
struct.pack('256s', ifname[:15])
|
||||
)[20:24])
|
||||
|
||||
HOST='192.168.1.2'
|
||||
try:
|
||||
import netifaces
|
||||
for iface in netifaces.interfaces():
|
||||
addrs = netifaces.ifaddresses(iface).get(netifaces.AF_INET, [])
|
||||
if len(addrs) > 0 and 'addr' in addrs[0]:
|
||||
q = addrs[0]['addr']
|
||||
if q.startswith('192.168.1.'):
|
||||
HOST = q
|
||||
break
|
||||
except (Exception, ImportError) as e:
|
||||
print ('Failed to detect host ip address with error: %s' % e)
|
||||
|
||||
|
||||
BUILD_HOST='192.168.81.1'
|
||||
PROJECT=os.path.basename(os.path.abspath('.'))
|
||||
|
||||
|
||||
|
@ -13,9 +13,9 @@ from multiprocessing import cpu_count
|
||||
from setup import Command, islinux, isbsd, isosx, SRC, iswindows, __version__
|
||||
from setup.build_environment import (chmlib_inc_dirs,
|
||||
podofo_inc, podofo_lib, podofo_error, pyqt, OSX_SDK, NMAKE, QMAKE,
|
||||
msvc, MT, win_inc, win_lib, win_ddk, magick_inc_dirs, magick_lib_dirs,
|
||||
msvc, MT, win_inc, win_lib, 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,
|
||||
icu_lib_dirs, ft_libs, ft_lib_dirs, ft_inc_dirs,
|
||||
zlib_libs, zlib_lib_dirs, zlib_inc_dirs, is64bit, glib_flags, fontconfig_flags)
|
||||
MT
|
||||
isunix = islinux or isosx or isbsd
|
||||
@ -45,7 +45,6 @@ class Extension(object):
|
||||
self.cflags = kwargs.get('cflags', [])
|
||||
self.ldflags = kwargs.get('ldflags', [])
|
||||
self.optional = kwargs.get('optional', False)
|
||||
self.needs_ddk = kwargs.get('needs_ddk', False)
|
||||
of = kwargs.get('optimize_level', None)
|
||||
if of is None:
|
||||
of = '/Ox' if iswindows else '-O3'
|
||||
@ -271,7 +270,6 @@ if iswindows:
|
||||
'calibre/devices/mtp/windows/global.h',
|
||||
],
|
||||
libraries=['ole32', 'oleaut32', 'portabledeviceguids', 'user32'],
|
||||
# needs_ddk=True,
|
||||
cflags=['/X']
|
||||
),
|
||||
Extension('winfonts',
|
||||
@ -445,10 +443,6 @@ class Build(Command):
|
||||
obj_dir = self.j(self.obj_dir, ext.name)
|
||||
ext.preflight(obj_dir, compiler, linker, self, cflags, ldflags)
|
||||
einc = self.inc_dirs_to_cflags(ext.inc_dirs)
|
||||
if ext.needs_ddk:
|
||||
ddk_flags = ['-I'+x for x in win_ddk]
|
||||
cflags.extend(ddk_flags)
|
||||
ldflags.extend(['/LIBPATH:'+x for x in win_ddk_lib_dirs])
|
||||
if not os.path.exists(obj_dir):
|
||||
os.makedirs(obj_dir)
|
||||
for src in ext.sources:
|
||||
|
Loading…
x
Reference in New Issue
Block a user