diff --git a/build.py b/build.py index 7962522c69..5d9bcb8253 100755 --- a/build.py +++ b/build.py @@ -21,6 +21,7 @@ if sys.platform == 'win32': 'JAVA': 'java.exe', 'JAR': 'jar.exe', 'JSDOC': 'jsdoc.cmd', + 'JSHINT': './node_modules/.bin/jshint', 'PYTHON': 'python.exe', 'PHANTOMJS': 'phantomjs.cmd' } @@ -71,6 +72,7 @@ if sys.platform == 'win32': else: variables.GIT = 'git' variables.GJSLINT = 'gjslint' + variables.JSHINT = './node_modules/.bin/jshint' variables.JAVA = 'java' variables.JAR = 'jar' variables.JSDOC = 'jsdoc' @@ -81,7 +83,8 @@ variables.BRANCH = output( '%(GIT)s', 'rev-parse', '--abbrev-ref', 'HEAD').strip() EXECUTABLES = [variables.GIT, variables.GJSLINT, variables.JAVA, variables.JAR, - variables.JSDOC, variables.PYTHON, variables.PHANTOMJS] + variables.JSDOC, variables.JSHINT, variables.PYTHON, + variables.PHANTOMJS] EXPORTS = [path for path in ifind('src') @@ -409,6 +412,15 @@ def build_lint_libtess_js_timestamp(t): t.touch() +virtual('jshint', 'build/jshint-timestamp') + + +@target('build/jshint-timestamp', SRC, EXAMPLES_SRC, SPEC, precious=True) +def build_jshint_timestamp(t): + t.run(variables.JSHINT, '--verbose', t.newer(t.dependencies)) + t.touch() + + def _strip_comments(lines): # FIXME this is a horribe hack, we should use a proper JavaScript parser # here