OLD | NEW |
| (Empty) |
1 #!/usr/bin/env python | |
2 # Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. | |
3 # | |
4 # Use of this source code is governed by a BSD-style license | |
5 # that can be found in the LICENSE file in the root of the source | |
6 # tree. An additional intellectual property rights grant can be found | |
7 # in the file PATENTS. All contributing project authors may | |
8 # be found in the AUTHORS file in the root of the source tree. | |
9 | |
10 """Builds the AppRTC collider using the golang toolchain. | |
11 | |
12 The golang toolchain is downloaded by download_golang.py. We use that here | |
13 to build the AppRTC collider server. | |
14 | |
15 This script needs to know the path to the 'src' directory in apprtc, the | |
16 root directory of 'go', the root directory of 'hg' and the output_dir. | |
17 """ | |
18 | |
19 import os | |
20 import shutil | |
21 import subprocess | |
22 import sys | |
23 | |
24 import utils | |
25 | |
26 | |
27 USAGE_STR = "Usage: {} <apprtc_src_dir> <go_dir> <hg_dir> <output_dir>" | |
28 | |
29 | |
30 def main(argv): | |
31 if len(argv) != 5: | |
32 return USAGE_STR.format(argv[0]) | |
33 | |
34 apprtc_dir = argv[1] | |
35 go_root_dir = argv[2] | |
36 mercurial_dir = argv[3] | |
37 golang_workspace = argv[4] | |
38 | |
39 utils.RemoveDirectory(golang_workspace) | |
40 | |
41 golang_workspace_src = os.path.join(golang_workspace, 'src') | |
42 | |
43 collider_dir = os.path.join(apprtc_dir, 'collider') | |
44 shutil.copytree(collider_dir, golang_workspace_src, | |
45 ignore=shutil.ignore_patterns('.svn', '.git')) | |
46 | |
47 golang_binary = 'go%s' % ('.exe' if utils.GetPlatform() == 'win' else '') | |
48 golang_path = os.path.join(go_root_dir, 'bin', golang_binary) | |
49 | |
50 golang_env = os.environ.copy() | |
51 golang_env['GOROOT'] = go_root_dir | |
52 golang_env['GOPATH'] = os.path.abspath(golang_workspace) | |
53 golang_env['PATH'] += os.pathsep + mercurial_dir | |
54 subprocess.check_call([golang_path, 'get', 'collidermain'], | |
55 env=golang_env) | |
56 collider_exec = os.path.join(golang_workspace, 'collidermain') | |
57 subprocess.check_call([golang_path, 'build', '-o', collider_exec, | |
58 'collidermain'], env=golang_env) | |
59 | |
60 | |
61 if __name__ == '__main__': | |
62 sys.exit(main(sys.argv)) | |
OLD | NEW |