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