-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwscript
83 lines (67 loc) · 2.41 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
72
73
74
75
76
77
78
79
80
81
82
83
#! /usr/bin/env python
# encoding: utf-8
######################
###### options #######
######################
def options (opt):
opt.add_option ("--with-sip", action="store_true",
dest="WITH_SIP", help = "Use Semi-infinite programming plugin")
opt.plugins["sip"] = "WITH_SIP"
######################
##### configure ######
######################
def configure (conf):
conf.env.WITH_SIP = conf.options.WITH_SIP
conf.start_msg ("Semi-infinite programming plugin")
if not conf.env.WITH_SIP:
conf.end_msg ("not used")
return
conf.end_msg ("enabled")
conf.env.append_unique ("IBEX_PLUGIN_USE_LIST", "SIP")
# Add information in ibex_Setting
conf.setting_define ("WITH_SIP", 1)
# add SIP plugin include directory
for f in conf.path.ant_glob ("src/** src", dir = True, src = False):
conf.env.append_unique("INCLUDES_SIP", f.abspath())
# The build and install steps will be run from the main src/wscript script so
# we need to give path relative to the main src directory
mainsrc = conf.srcnode.make_node ("src")
# add SIP headers
for f in conf.path.ant_glob ("src/**/ibex_*.h"):
conf.env.append_unique ("IBEX_HDR", f.path_from (mainsrc))
# add SIP source files
for f in conf.path.ant_glob ("src/**/ibex_*.cpp"):
conf.env.append_unique ("IBEX_SRC", f.path_from (mainsrc))
# The utest step will be run from the main tests/wscript script so we need to
# give path relative to the main tests directory
maintests = conf.srcnode.make_node ("tests")
# add SIP test files
for f in conf.path.ant_glob ("tests/**/*.cpp"):
conf.env.append_unique ('TEST_SRC', f.path_from (maintests))
# Add sip/tests directory to list of INCLUDES for TESTS
testsnode = conf.path.make_node ("tests")
conf.env.append_unique ("INCLUDES_TESTS", testsnode.abspath ())
######################
####### build ########
######################
def build (bld):
if bld.env.WITH_SIP:
# build solver binary
bld.program (
target = "ibexsip",
use = [ "ibex" ], # add dependency on ibex library
source = bld.path.ant_glob ("main/ibexsip.cpp"),
install_path = bld.env.BINDIR,
)
bld.program (
target = "ibexopt-sip",
use = [ "ibex" ], # add dependency on ibex library
source = bld.path.ant_glob ("main/optimizer.cpp"),
install_path = bld.env.BINDIR,
)
bld.program (
target = "ibexsolve-sip",
use = [ "ibex" ], # add dependency on ibex library
source = bld.path.ant_glob ("main/solver.cpp"),
install_path = bld.env.BINDIR,
)