# HG changeset patch # User Doug Simon # Date 1326297330 -3600 # Node ID 2158e26b50cf3ef5d268fcc5ecde1e478ca39996 # Parent ffd5ce8fc736e83bf1c2392e07ef5cf9b6c47725 Made generated NetBeans projects use project cross referencing. diff -r ffd5ce8fc736 -r 2158e26b50cf mxtool/mx.py --- a/mxtool/mx.py Wed Jan 11 15:14:45 2012 +0100 +++ b/mxtool/mx.py Wed Jan 11 16:55:30 2012 +0100 @@ -465,7 +465,6 @@ self.add_argument('--timeout', help='Timeout (in seconds) for command', type=int, default=0, metavar='') self.add_argument('--ptimeout', help='Timeout (in seconds) for subprocesses', type=int, default=0, metavar='') - def _parse_cmd_line(self, args=None): if args is None: args = sys.argv[1:] @@ -473,6 +472,10 @@ self.add_argument('commandAndArgs', nargs=REMAINDER, metavar='command args...') opts = self.parse_args() + + # Give the timeout options a default value to avoid the need for hasattr() tests + opts.__dict__.setdefault('timeout', 0) + opts.__dict__.setdefault('ptimeout', 0) if opts.java_home is None: opts.java_home = os.environ.get('JAVA_HOME') @@ -569,7 +572,7 @@ if _opts.verbose: log(' '.join(args)) - if timeout is None and hasattr(_opts, 'ptimeout') and _opts.ptimeout != 0: + if timeout is None and _opts.ptimeout != 0: timeout = _opts.ptimeout global _currentSubprocess @@ -1349,19 +1352,43 @@ out = StringIO.StringIO() println(out, '') println(out, '') - println(out, '\torg.netbeans.modules.java.j2seproject') - println(out, '\t') - println(out, '\t\t') - println(out, '\t\t\t' + p.name + '') - println(out, '\t\t\t') - println(out, '\t\t\t') - println(out, '\t\t\t\t') - println(out, '\t\t\t') - println(out, '\t\t\t') - println(out, '\t\t\t\t') - println(out, '\t\t\t') - println(out, '\t\t') - println(out, '\t') + println(out, ' org.netbeans.modules.java.j2seproject') + println(out, ' ') + println(out, ' ') + println(out, ' ' + p.name+ '') + println(out, ' ') + println(out, ' ') + println(out, ' ') + println(out, ' ') + println(out, ' ') + println(out, ' ') + println(out, ' ') + println(out, ' ') + + firstDep = True + for dep in p.all_deps([], True): + if dep == p: + continue; + + if not dep.isLibrary(): + n = dep.name.replace('.', '_') + if firstDep: + println(out, ' ') + firstDep = False + + println(out, ' ') + println(out, ' ' + n + '') + println(out, ' jar') + println(out, ' ') + println(out, ' jar') + println(out, ' clean') + println(out, ' jar') + println(out, ' ') + + if not firstDep: + println(out, ' ') + + println(out, ' ') println(out, '') updated = update_file(join(p.dir, 'nbproject', 'project.xml'), out.getvalue()) or updated out.close() @@ -1428,7 +1455,7 @@ main.class= manifest.file=manifest.mf meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=true +mkdist.disabled=false platforms.""" + jdkPlatform + """.home=""" + java().jdk + """ platform.active=""" + jdkPlatform + """ run.classpath=\\ @@ -1469,12 +1496,16 @@ dep.get_path(resolve=True) if not isabs(path): path = join(suite.dir, path) + ref = 'file.reference.' + dep.name + '-bin' + println(out, ref + '=' + path) else: - path = dep.output_dir() + n = dep.name.replace('.', '_') + relDepPath = os.path.relpath(dep.dir, p.dir) + ref = 'reference.' + n + '.jar' + println(out, 'project.' + n + '=' + relDepPath) + println(out, ref + '=' + join('${project.' + n + '}', 'dist', dep.name + '.jar')) - ref = 'file.reference.' + dep.name + '-bin' - println(out, ref + '=' + path) javacClasspath.append('${' + ref + '}') println(out, 'javac.classpath=\\\n ' + (os.pathsep + '\\\n ').join(javacClasspath)) @@ -1484,7 +1515,9 @@ out.close() if updated: - log('If using NetBeans, ensure that a platform name ' + jdkPlatform + ' is defined (Tools -> Java Platforms)') + log('If using NetBeans:') + log(' 1. Ensure that a platform named "JDK ' + java().version + '" is defined (Tools -> Java Platforms)') + log(' 2. Open/create a Project Group for the directory containing the projects (File -> Project Group -> New Group... -> Folder of Projects)') def ideinit(args, suite=None): """(re)generate Eclipse and NetBeans project configurations""" @@ -1534,6 +1567,7 @@ 'help': [help_, '[command]'], 'ideinit': [ideinit, ''], 'javap': [javap, ''], + 'netbeansinit': [netbeansinit, ''], 'projects': [show_projects, ''], } @@ -1566,7 +1600,7 @@ c, _ = commands[command][:2] try: - if hasattr(opts, 'timeout') and opts.timeout != 0: + if opts.timeout != 0: def alarm_handler(signum, frame): abort('Command timed out after ' + str(opts.timeout) + ' seconds: ' + ' '.join(commandAndArgs)) signal.signal(signal.SIGALRM, alarm_handler)