Merge pull request #448 from kalbermattenm/windows_paths

Windows installation support
This commit is contained in:
Tom Payne
2013-04-05 08:57:28 -07:00
+67 -12
View File
@@ -9,21 +9,65 @@ import re
import shutil import shutil
import sys import sys
from pake import Target, ifind, main, output, rule, target, variables, virtual from pake import Target, ifind, main, output, rule, target, variables, virtual, which
if sys.platform == 'win32': if sys.platform == 'win32':
ProgramFiles = os.environ.get('ProgramFiles', 'C:\\Program Files') """ windows_defaults assumes that jsdoc was installed at a specific place
ProgramFiles_X86 = os.environ.get('ProgramFiles(X86)', 'C:\\Program Files') (C:\jsdoc). It also fixes a certain version (1.9.0) of phantomjs which might
Python27 = os.environ.get('SystemDrive', 'C:') + '\\Python27' not anymore be proposed on
variables.GIT = os.path.join(ProgramFiles_X86, 'Git', 'bin', 'git.exe') http://code.google.com/p/phantomjs/downloads/list"""
variables.GJSLINT = os.path.join(Python27, 'Scripts', 'gjslint.exe')
variables.JAVA = os.path.join( windows_defaults = {
ProgramFiles, 'Java', 'jre7', 'bin', 'java.exe') 'ProgramFiles': os.environ.get('ProgramFiles', 'C:\\Program Files'),
variables.JSDOC = 'jsdoc' # FIXME 'Python27': os.environ.get('SystemDrive', 'C:') + '\\Python27',
variables.NODE = 'node' 'jsdoc': os.environ.get('SystemDrive', 'C:') + '\\jsdoc3',
variables.PYTHON = os.path.join(Python27, 'python.exe') 'phantomjs': os.environ.get('SystemDrive', 'C:') + \
variables.PHANTOMJS = 'phantomjs.exe' '\\phantomjs-1.9.0-windows'
}
if which('git.exe'):
variables.GIT = 'git.exe'
else:
variables.GIT = os.path.join(windows_defaults['ProgramFiles'],
'Git', 'bin', 'git.exe')
if which('gjslint.exe'):
variables.GJSLINT = 'gjslint.exe'
else:
variables.GJSLINT = os.path.join(windows_defaults['Python27'],
'Scripts', 'gjslint.exe')
if which('java.exe'):
variables.JAVA = 'java.exe'
else:
variables.JAVA = os.path.join(windows_defaults['ProgramFiles'],
'Java', 'jre7', 'bin', 'java.exe')
if which('jar.exe'):
variables.JAR = 'jar.exe'
else:
variables.JAR = os.path.join(windows_defaults['ProgramFiles'],
'Java', 'jdk1.7.0_17', 'bin', 'jar.exe')
if which('jsdoc.cmd'):
variables.JSDOC = 'jsdoc.cmd'
else:
variables.JSDOC = os.path.join(windows_defaults['jsdoc'],
'jsdoc.cmd')
if which('python.exe'):
variables.PYTHON = 'python.exe'
else:
variables.PYTHON = os.path.join(windows_defaults['Python27'],
'python.exe')
if which('phantomjs.exe'):
variables.PHANTOMJS = 'phantomjs.exe'
else:
variables.PHANTOMJS = os.path.join(windows_defaults['phantomjs'],
'phantomjs.exe')
else: else:
variables.GIT = 'git' variables.GIT = 'git'
variables.GJSLINT = 'gjslint' variables.GJSLINT = 'gjslint'
@@ -39,6 +83,9 @@ TEMPLATE_GLSL_COMPILER_JS = 'build/glsl-unit/bin/template_glsl_compiler.js'
variables.BRANCH = output( variables.BRANCH = output(
'%(GIT)s', 'rev-parse', '--abbrev-ref', 'HEAD').strip() '%(GIT)s', 'rev-parse', '--abbrev-ref', 'HEAD').strip()
EXECUTABLES = [variables.GIT, variables.GJSLINT, variables.JAVA, variables.JAR,
variables.JSDOC, variables.PYTHON, variables.PHANTOMJS]
EXPORTS = [path EXPORTS = [path
for path in ifind('src') for path in ifind('src')
if path.endswith('.exports') if path.endswith('.exports')
@@ -580,5 +627,13 @@ def reallyclean(t):
t.run('%(GIT)s', 'clean', '-X', '-d', '-f', '.') t.run('%(GIT)s', 'clean', '-X', '-d', '-f', '.')
@target('checkdeps')
def check_dependencies(t):
for exe in EXECUTABLES:
status = 'present' if which(exe) else 'MISSING'
print 'Program "%s" seems to be %s.' % (exe, status)
print 'For certain targets all above programs need to be present.'
if __name__ == '__main__': if __name__ == '__main__':
main() main()