#! /usr/bin/env python # encoding: utf-8 print(".. loading global library map") from waflib.Configure import conf global_libs = { 'browserlauncher2': 'browserlauncher2/BrowserLauncher2.jar', 'commons-beanutils': 'commons-beanutils-1.7.0/commons-beanutils-core.jar', 'commons-collections': 'commons-collections/commons-collections.jar', 'commons-httpclient': 'commons-httpclient/commons-httpclient.jar', 'commons-io': 'commons-io/commons-io.jar', 'commons-lang': 'commons-lang/commons-lang.jar', 'commons-logging': 'commons-logging/commons-logging.jar', 'google-collect': 'google-collect/google-collect.jar', 'jsr173.api': 'jsr173/jsr173_1.0_api.jar', 'jsr173.ri': 'jsr173/jsr173_1.0_ri.jar', 'mks': 'mks/mksapi.jar', 'vault': 'vault/vault_client_api.jar' } def configure(ctx): # fixup global_libs by prepending 'lib/' # ...omitted purely for convenience and brevity in the table above for (key, value) in global_libs.items(): global_libs[key] = 'lib/' + value ctx.env.global_libs = global_libs ctx.env.global_libs_inuse = [] ctx.env.global_libs_classpath = "" @conf def add_global_libs(self, libs, relto=None): """ add the specified libs to the .env.global_classpath if relto is unspecified, it defaults to the top; otherwise it's prepended to the paths in the classpath. """ # don't put them on the classpath multiple times newlibs = self.env.global_libs_inuse for lib in libs: if not lib in newlibs: newlibs.append(lib) self.set_global_libs(relto=relto, *newlibs) @conf def set_global_libs(self, libs, relto=None): # figure out the prepath to append prepath = self.srcnode.abspath() if relto is not None: prepath = relto if not prepath.endswith('/'): prepath += '/' # build the classpath classpath = '' for lib in libs: if classpath: classpath += ':' classpath += prepath + self.env.global_libs[lib] # set the environment vars self.env.global_libs_inuse = libs self.env.global_libs_classpath = classpath