-
Notifications
You must be signed in to change notification settings - Fork 24
/
ci_boost_build.py
87 lines (58 loc) · 2.23 KB
/
ci_boost_build.py
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env python
# Copyright Rene Rivera 2016
# Copyright Peter Dimov 2017
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
import sys
import os.path
from ci_boost_common import main, utils, script_common
# Check python version
if sys.version_info[0] == 2 :
pythonversion="2"
pythonbinary="python2"
else:
pythonversion="3"
pythonbinary="python3"
class script(script_common):
def __init__(self, ci_klass, **kargs):
script_common.__init__(self, ci_klass, **kargs)
def init(self, opt, kargs):
kargs = super(script,self).init(opt,kargs)
opt.add_option( '--toolset' )
self.toolset = os.getenv( 'TOOLSET', None )
opt.add_option( '--cxxstd' )
self.cxxstd = os.getenv( 'CXXSTD', None )
opt.add_option( '--release' )
self.release = os.getenv( 'RELEASE', None )
return kargs
def command_build(self):
super(script,self).command_build()
# if --release, switch to release layout
if self.release:
os.chdir(self.build_dir)
utils.check_call('wget','https://raw.githubusercontent.com/boostorg/release-tools/develop/MakeBoostDistro.py')
utils.check_call('chmod','+x','MakeBoostDistro.py')
os.chdir(self.root_dir)
utils.check_call(pythonbinary,os.path.join(self.build_dir,'MakeBoostDistro.py'),
self.root_dir, 'release')
self.root_dir = os.path.join( self.root_dir, 'release' )
# Build b2
os.chdir(self.root_dir)
if sys.platform == "win32":
utils.check_call('cmd.exe', '/C', os.path.join(self.root_dir, "bootstrap.bat"))
else:
utils.check_call("./bootstrap.sh")
# Build (stage) Boost
cmd = [ './b2', '-j%s' % (self.jobs) ]
if self.toolset:
cmd.append( 'toolset=' + self.toolset )
if self.cxxstd:
cmd.append( 'cxxstd=' + self.cxxstd )
utils.check_call( *cmd )
# Install Boost
cmd.append( '--prefix=' + os.path.expanduser( '~/.local' ) )
cmd.append( 'install' )
utils.check_call( *cmd )
main(script)