comparison mx/commands.py @ 9935:2a091d2987bd

added graal.options mechanism for being able to override default option values
author Doug Simon <doug.simon@oracle.com>
date Fri, 07 Jun 2013 15:59:09 +0200
parents 6fa4b4933892
children e2068bbf4c0d
comparison
equal deleted inserted replaced
9920:44fcf49b746f 9935:2a091d2987bd
341 341
342 return jdk 342 return jdk
343 343
344 def _installGraalJarInJdks(graalDist): 344 def _installGraalJarInJdks(graalDist):
345 graalJar = graalDist.path 345 graalJar = graalDist.path
346 graalOptions = join(_graal_home, 'graal.options')
346 jdks = join(_graal_home, 'jdk' + str(mx.java().version)) 347 jdks = join(_graal_home, 'jdk' + str(mx.java().version))
347 if exists(jdks): 348 if exists(jdks):
348 for e in os.listdir(jdks): 349 for e in os.listdir(jdks):
349 jreLibDir = join(jdks, e, 'jre', 'lib') 350 jreLibDir = join(jdks, e, 'jre', 'lib')
350 if exists(jreLibDir): 351 if exists(jreLibDir):
351 # do a copy and then a move to get atomic updating (on Unix) of graal.jar in the JRE 352 # do a copy and then a move to get atomic updating (on Unix) of graal.jar in the JRE
352 fd, tmp = tempfile.mkstemp(suffix='', prefix='graal.jar', dir=jreLibDir) 353 fd, tmp = tempfile.mkstemp(suffix='', prefix='graal.jar', dir=jreLibDir)
353 shutil.copyfile(graalJar, tmp) 354 shutil.copyfile(graalJar, tmp)
354 os.close(fd) 355 os.close(fd)
355 shutil.move(tmp, join(jreLibDir, 'graal.jar')) 356 shutil.move(tmp, join(jreLibDir, 'graal.jar'))
357
358 if exists(graalOptions):
359 shutil.copy(graalOptions, join(jreLibDir, 'graal.options'))
356 360
357 # run a command in the windows SDK Debug Shell 361 # run a command in the windows SDK Debug Shell
358 def _runInDebugShell(cmd, workingDir, logFile=None, findInOutput=None, respondTo={}): 362 def _runInDebugShell(cmd, workingDir, logFile=None, findInOutput=None, respondTo={}):
359 newLine = os.linesep 363 newLine = os.linesep
360 STARTTOKEN = 'RUNINDEBUGSHELL_STARTSEQUENCE' 364 STARTTOKEN = 'RUNINDEBUGSHELL_STARTSEQUENCE'
456 out.element('property', {'name' : 'src.dir', 'value' : '${gamma.dir}/graal'}) 460 out.element('property', {'name' : 'src.dir', 'value' : '${gamma.dir}/graal'})
457 out.element('property', {'name' : 'classes.dir', 'value' : '${shared.dir}/graal'}) 461 out.element('property', {'name' : 'classes.dir', 'value' : '${shared.dir}/graal'})
458 out.element('property', {'name' : 'jar.dir', 'value' : '${shared.dir}'}) 462 out.element('property', {'name' : 'jar.dir', 'value' : '${shared.dir}'})
459 out.element('property', {'name' : 'jar.file', 'value' : '${jar.dir}/graal.jar'}) 463 out.element('property', {'name' : 'jar.file', 'value' : '${jar.dir}/graal.jar'})
460 464
461 out.element('target', {'name' : 'main', 'depends' : 'jar'}) 465 out.element('target', {'name' : 'main', 'depends' : 'jar,options'})
462 466
463 serviceMap = {}; 467 serviceMap = {};
464 def addService(service, provider): 468 def addService(service, provider):
465 if service not in serviceMap: 469 if service not in serviceMap:
466 serviceMap[service] = set(); 470 serviceMap[service] = set();
509 out.close('jar'); 513 out.close('jar');
510 out.close('target') 514 out.close('target')
511 515
512 out.open('target', {'name' : 'cleanclasses'}) 516 out.open('target', {'name' : 'cleanclasses'})
513 out.element('delete', {'dir' : '${classes.dir}'}) 517 out.element('delete', {'dir' : '${classes.dir}'})
518 out.close('target')
519
520 out.open('target', {'name' : 'options'})
521 out.open('copy', {'todir' : '${jar.dir}'})
522 out.element('filelist', {'dir' : '${gamma.dir}', 'files' : 'graal.options'})
523 out.close('copy')
514 out.close('target') 524 out.close('target')
515 525
516 out.open('target', {'name' : 'clean', 'depends' : 'cleanclasses'}) 526 out.open('target', {'name' : 'clean', 'depends' : 'cleanclasses'})
517 out.element('delete', {'file' : '${jar.file}'}) 527 out.element('delete', {'file' : '${jar.file}'})
518 out.close('target') 528 out.close('target')