/
SConscript
80 lines (68 loc) · 2.8 KB
/
SConscript
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
# -*- mode: python; -*-
#
# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
#
import os
Import('BuildEnv')
env = BuildEnv.Clone()
sources = [
'README.md',
'setup.py',
'requirements.txt',
'test-requirements.txt',
'opencontrail_vrouter_netns/__init__.py',
'opencontrail_vrouter_netns/vrouter_netns.py',
'opencontrail_vrouter_netns/haproxy_config.py',
'opencontrail_vrouter_netns/haproxy_process.py',
'opencontrail_vrouter_netns/haproxy_validator.py',
'opencontrail_vrouter_netns/vrouter_docker.py',
'opencontrail_vrouter_netns/daemon_start.py',
'opencontrail_vrouter_netns/daemon_stop.py',
'opencontrail_vrouter_netns/instance_provisioner.py',
'opencontrail_vrouter_netns/lxc_manager.py',
'opencontrail_vrouter_netns/network_manage.py',
'opencontrail_vrouter_netns/vrouter_control.py',
'opencontrail_vrouter_netns/monitor.py',
'opencontrail_vrouter_netns/lxc_docker.py',
'opencontrail_vrouter_netns/linux/__init__.py',
'opencontrail_vrouter_netns/linux/ip_lib.py',
'opencontrail_vrouter_netns/linux/utils.py',
'opencontrail_vrouter_netns/tests/__init__.py',
'opencontrail_vrouter_netns/tests/test_vrouter_netns.py',
'opencontrail_vrouter_netns/tests/test_vrouter_docker.py'
]
cd_cmd = 'cd ' + Dir('.').path + ' && '
sdist_gen = env.Command('dist', sources, cd_cmd + 'python setup.py sdist')
env.Alias('controller/src/vnsw/opencontrail_vrouter_netns:sdist', sdist_gen)
test_sources = sources
packages = [
'#build/noarch/contrail-vrouter-api/dist/contrail-vrouter-api-1.0.tar.gz',
]
def BuildPyTestSetup(env, target, source):
file = open(target[0].abspath, 'w')
file.write("[easy_install]\nfind_links =")
for pkg in source:
dependency = env.File(pkg)
file.write(" %s" % os.path.dirname(dependency.abspath))
file.write("\n")
file.close()
return
def GeneratePyTestSetup(env, targets, source):
"""
Generate a setup.cfg file that contains a list of directories
where dependent packages can be found. The fact that package directory
list is being given as a source automatically adds them as dependencies.
"""
target = env.File('setup.cfg')
return env.Command(target=target, source=source, action=BuildPyTestSetup);
env.Append(BUILDERS = {'PythonTestSetup': GeneratePyTestSetup})
test_sources += env.PythonTestSetup(source=packages)
test = env.Command('test.log', test_sources,
cd_cmd + 'python setup.py test > test.log')
env.Alias('controller/src/vnsw/opencontrail_vrouter_netns:test',
env.AlwaysBuild(test))
if 'install' in BUILD_TARGETS:
install_cmd = env.Command(None, sources,
cd_cmd + 'python setup.py install %s' %
env['PYTHON_INSTALL_OPT'])
env.Alias('install', install_cmd)