mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add a build flag to build in debug mode
This commit is contained in:
parent
d8d5e8edcb
commit
9765f4a81f
@ -165,17 +165,16 @@ def read_extensions():
|
|||||||
return ans
|
return ans
|
||||||
|
|
||||||
|
|
||||||
def init_env():
|
def init_env(debug=False):
|
||||||
from setup.build_environment import win_ld, is64bit, win_inc, win_lib, NMAKE, win_cc
|
from setup.build_environment import win_ld, is64bit, win_inc, win_lib, NMAKE, win_cc
|
||||||
from distutils import sysconfig
|
from distutils import sysconfig
|
||||||
linker = None
|
linker = None
|
||||||
if isunix:
|
if isunix:
|
||||||
cc = os.environ.get('CC', 'gcc')
|
cc = os.environ.get('CC', 'gcc')
|
||||||
cxx = os.environ.get('CXX', 'g++')
|
cxx = os.environ.get('CXX', 'g++')
|
||||||
debug = ''
|
debug = '-ggdb' if debug else ''
|
||||||
# debug = '-ggdb'
|
|
||||||
cflags = os.environ.get('OVERRIDE_CFLAGS',
|
cflags = os.environ.get('OVERRIDE_CFLAGS',
|
||||||
'-Wall -DNDEBUG %s -fno-strict-aliasing -pipe' % debug)
|
f'-Wall -DNDEBUG {debug} -fno-strict-aliasing -pipe')
|
||||||
cflags = shlex.split(cflags) + ['-fPIC']
|
cflags = shlex.split(cflags) + ['-fPIC']
|
||||||
ldflags = os.environ.get('OVERRIDE_LDFLAGS', '-Wall')
|
ldflags = os.environ.get('OVERRIDE_LDFLAGS', '-Wall')
|
||||||
ldflags = shlex.split(ldflags)
|
ldflags = shlex.split(ldflags)
|
||||||
@ -212,8 +211,13 @@ def init_env():
|
|||||||
|
|
||||||
if iswindows:
|
if iswindows:
|
||||||
cc = cxx = win_cc
|
cc = cxx = win_cc
|
||||||
cflags = '/c /nologo /MD /W3 /EHsc /utf-8 /DNDEBUG'.split()
|
cflags = '/c /nologo /W3 /EHsc /utf-8'.split()
|
||||||
ldflags = '/DLL /nologo /INCREMENTAL:NO /NODEFAULTLIB:libcmt.lib'.split()
|
cflags.append('/Zi' if debug else '/DNDEBUG')
|
||||||
|
suffix = ('d' if debug else '')
|
||||||
|
cflags.append('/MD' + suffix)
|
||||||
|
ldflags = f'/DLL /nologo /INCREMENTAL:NO /NODEFAULTLIB:libcmt{suffix}.lib'.split()
|
||||||
|
if debug:
|
||||||
|
ldflags.append('/DEBUG')
|
||||||
# cflags = '/c /nologo /Ox /MD /W3 /EHsc /Zi'.split()
|
# cflags = '/c /nologo /Ox /MD /W3 /EHsc /Zi'.split()
|
||||||
# ldflags = '/DLL /nologo /INCREMENTAL:NO /DEBUG'.split()
|
# ldflags = '/DLL /nologo /INCREMENTAL:NO /DEBUG'.split()
|
||||||
if is64bit:
|
if is64bit:
|
||||||
@ -266,13 +270,15 @@ class Build(Command):
|
|||||||
help='Path to directory in which to place object files during the build process, defaults to "build"')
|
help='Path to directory in which to place object files during the build process, defaults to "build"')
|
||||||
parser.add_option('--output-dir', default=None,
|
parser.add_option('--output-dir', default=None,
|
||||||
help='Path to directory in which to place the built extensions. Defaults to src/calibre/plugins')
|
help='Path to directory in which to place the built extensions. Defaults to src/calibre/plugins')
|
||||||
|
parser.add_option('--debug', default=False, action='store_true',
|
||||||
|
help='Build in debug mode')
|
||||||
|
|
||||||
def run(self, opts):
|
def run(self, opts):
|
||||||
from setup.parallel_build import parallel_build, create_job
|
from setup.parallel_build import parallel_build, create_job
|
||||||
if opts.no_compile:
|
if opts.no_compile:
|
||||||
self.info('--no-compile specified, skipping compilation')
|
self.info('--no-compile specified, skipping compilation')
|
||||||
return
|
return
|
||||||
self.env = init_env()
|
self.env = init_env(debug=opts.debug)
|
||||||
all_extensions = map(parse_extension, filter(is_ext_allowed, read_extensions()))
|
all_extensions = map(parse_extension, filter(is_ext_allowed, read_extensions()))
|
||||||
self.build_dir = os.path.abspath(opts.build_dir or self.DEFAULT_BUILDDIR)
|
self.build_dir = os.path.abspath(opts.build_dir or self.DEFAULT_BUILDDIR)
|
||||||
self.output_dir = os.path.abspath(opts.output_dir or self.DEFAULT_OUTPUTDIR)
|
self.output_dir = os.path.abspath(opts.output_dir or self.DEFAULT_OUTPUTDIR)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user