forked from Woodya/node-gzbz2
-
Notifications
You must be signed in to change notification settings - Fork 1
/
wscript
71 lines (60 loc) · 2.26 KB
/
wscript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import Options
import platform
from os import unlink, symlink, popen
from os.path import lexists, exists
srcdir = '.'
blddir = 'build'
VERSION = '0.1.4'
OSTYPE = platform.system()
def set_options(opt):
opt.tool_options('compiler_cxx')
opt.tool_options('compiler_cc')
opt.add_option('--debug', dest='debug', action='store_true', default=False)
opt.add_option('--no-bzip', dest='nobzip', action='store_true', default=False)
opt.add_option('--no-gzip', dest='nogzip', action='store_true', default=False)
def configure(conf):
conf.check_tool('compiler_cxx')
conf.check_tool('compiler_cc')
conf.check_tool('node_addon')
conf.env.cxxflags = ['-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE_SOURCE', '-Wall']
conf.env.includes = ['/usr/include', '/usr/local/include']
conf.env.defines = []
conf.env.uselibs = []
conf.env.libpath = ['/usr/lib', '/usr/local/lib']
if OSTYPE == 'Darwin':
conf.env.libpath.insert(0, '/opt/local/lib')
conf.env.includes.insert(0, '/opt/local/include')
conf.env.cxxflags.append('-mmacosx-version-min=10.4')
# add any other os special cases here
if Options.options.debug:
conf.env.defines += ['DEBUG']
conf.env.cxxflags += ['-O0', '-g3']
else:
conf.env.cxxflags += ['-O2']
if Options.options.nobzip != True:
conf.check(lib='z', libpath=conf.env.libpath, uselib_store='ZLIB')
conf.env.defines += ['WITH_GZIP']
conf.env.uselibs += ['ZLIB']
if Options.options.nobzip != True:
conf.check(lib='bz2', libpath=conf.env.libpath, uselib_store='BZLIB')
conf.env.defines += ['WITH_BZIP']
conf.env.uselibs += ['BZLIB']
def build(bld):
obj = bld.new_task_gen('cxx', 'shlib', 'node_addon')
obj.cxxflags = bld.env.cxxflags
obj.ldflags = []
if OSTYPE == 'Darwin':
obj.ldflags.append('-mmacosx-version-min=10.4')
# finalize any other os special cases here
obj.target = 'gzbz2'
obj.source = 'compress.cc'
obj.defines = bld.env.defines
obj.uselib = bld.env.uselibs
obj.libpath = bld.env.libpath
def shutdown(bld):
if Options.commands['clean'] and not Options.commands['build']:
if lexists('gzbz2.node'):
unlink('gzbz2.node')
elif Options.commands['build']:
if exists('build/default/gzbz2.node') and not lexists('gzbz2.node'):
symlink('build/default/gzbz2.node', 'gzbz2.node')