blob: b5d63ddd4ee828fb77da94776c70675dd9138d2b [file] [log] [blame]
#!/usr/bin/python
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Builds the AppRTC collider using the golang toolchain.
The golang toolchain is downloaded by download_golang.py. We use that here
to build the AppRTC collider server.
"""
import os
import shutil
import subprocess
import sys
import utils
def main():
apprtc_dir = os.path.join('apprtc', 'src')
golang_workspace = os.path.join('src', 'out', 'go-workspace')
shutil.rmtree(golang_workspace, ignore_errors=True)
golang_workspace_src = os.path.join(golang_workspace, 'src')
collider_dir = os.path.join(apprtc_dir, 'collider')
shutil.copytree(collider_dir, golang_workspace_src,
ignore=shutil.ignore_patterns('.svn', '.git'))
golang_binary = 'go%s' % ('.exe' if utils.GetPlatform() == 'win' else '')
golang_path = os.path.join('go', 'bin', golang_binary)
golang_env = os.environ.copy()
golang_env['GOROOT'] = os.path.abspath('go')
golang_env['GOPATH'] = os.path.abspath(golang_workspace)
golang_env['PATH'] += os.pathsep + os.path.abspath('mercurial')
subprocess.check_call([golang_path, 'get', 'collidermain'],
env=golang_env)
subprocess.check_call([golang_path, 'build', 'collidermain'],
env=golang_env)
if __name__ == '__main__':
sys.exit(main())