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 |