blob: 40c0eb2704888cd2b921f893eb023f06caeb9d9d [file] [log] [blame]
# Copyright 2015 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.
"""Invokes grunt build on AppRTC.
The AppRTC javascript code must be closure-compiled. This script uses
the node toolchain we downloaded earlier.
import fileinput
import os
import shutil
import sys
import utils
# Phantomjs generates very deep paths in the node_modules structure and
# Windows can't deal with that, so just hack that out.
def _WorkaroundPhantomJsOnWin(samples_path):
if utils.GetPlatform() is 'win':
package_json = os.path.join(samples_path, 'package.json')
if not os.path.exists(package_json):
raise Exception('Expected %s to exist.' % os.path.abspath(package_json))
for line in fileinput.input(package_json, inplace=True):
if not 'phantomjs' in line:
def main():
node_path = os.path.abspath('node')
if not os.path.exists(node_path):
return 'Expected node at %s.' % node_path
apprtc_path = os.path.join('src', 'out', 'apprtc')
if not os.path.exists(apprtc_path):
return 'Expected apprtc at %s.' % os.path.abspath(apprtc_path)
if utils.GetPlatform() is 'win':
npm_bin = os.path.join(node_path, 'npm.cmd')
node_bin = os.path.join(node_path, 'node.exe')
npm_bin = os.path.join(node_path, 'bin', 'npm')
node_bin = os.path.join(node_path, 'bin', 'node')
utils.RunSubprocessWithRetry([npm_bin, 'install'])
local_grunt_bin = os.path.join('node_modules', 'grunt-cli', 'bin', 'grunt')
if not os.path.exists(local_grunt_bin):
return ('Missing grunt-cli in the apprtc checkout; did '
'npm install fail?')
if utils.GetPlatform() is 'win':
print 'grunt build is broken on win; cannot build apprtc'
utils.RunSubprocessWithRetry([node_bin, local_grunt_bin, 'build'])
if __name__ == '__main__':