| 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 |