def create_scaladoc_command(self, classpath, gendir, *targets): sources = [] for target in targets: sources.extend(target.sources_relative_to_buildroot()) # TODO(Tejal Desai): pantsbuild/pants/65: Remove java_sources attribute for ScalaLibrary # A '.scala' owning target may not have java_sources, eg: junit_tests if hasattr(target, 'java_sources'): for java_target in target.java_sources: sources.extend(java_target.sources_relative_to_buildroot()) if not sources: return None scala_platform = ScalaPlatform.global_instance() tool_classpath = [cp_entry.path for cp_entry in scala_platform.compiler_classpath_entries( self.context.products, self.context._scheduler)] args = ['-usejavacp', '-classpath', ':'.join(classpath), '-d', gendir] args.extend(self.args) args.extend(sources) java_executor = SubprocessExecutor(DistributionLocator.cached()) runner = java_executor.runner(jvm_options=self.jvm_options, classpath=tool_classpath, main='scala.tools.nsc.ScalaDoc', args=args) return runner.command
def create_scaladoc_command(self, classpath, gendir, *targets): sources = [] for target in targets: sources.extend(target.sources_relative_to_buildroot()) # TODO(Tejal Desai): pantsbuild/pants/65: Remove java_sources attribute for ScalaLibrary for java_target in target.java_sources: sources.extend(java_target.sources_relative_to_buildroot()) if not sources: return None scala_platform = ScalaPlatform.global_instance() tool_classpath = scala_platform.compiler_classpath(self.context.products) args = ['-usejavacp', '-classpath', ':'.join(classpath), '-d', gendir] args.extend(self.args) args.extend(sources) java_executor = SubprocessExecutor() runner = java_executor.runner(jvm_options=self.jvm_options, classpath=tool_classpath, main='scala.tools.nsc.ScalaDoc', args=args) return runner.command
def create_scaladoc_command(self, classpath, gendir, *targets): sources = [] for target in targets: sources.extend(target.sources_relative_to_buildroot()) # TODO(Tejal Desai): pantsbuild/pants/65: Remove java_sources attribute for ScalaLibrary # A '.scala' owning target may not have java_sources, eg: junit_tests if hasattr(target, 'java_sources'): for java_target in target.java_sources: sources.extend(java_target.sources_relative_to_buildroot()) if not sources: return None scala_platform = ScalaPlatform.global_instance() tool_classpath = scala_platform.compiler_classpath( self.context.products) args = ['-usejavacp', '-classpath', ':'.join(classpath), '-d', gendir] args.extend(self.args) args.extend(sources) java_executor = SubprocessExecutor(DistributionLocator.cached()) runner = java_executor.runner(jvm_options=self.jvm_options, classpath=tool_classpath, main='scala.tools.nsc.ScalaDoc', args=args) return runner.command
def create_scaladoc_command(self, classpath, gendir, *targets): sources = [] for target in targets: sources.extend(target.sources_relative_to_buildroot()) # TODO(Tejal Desai): pantsbuild/pants/65: Remove java_sources attribute for ScalaLibrary # A '.scala' owning target may not have java_sources, eg: junit_tests if hasattr(target, "java_sources"): for java_target in target.java_sources: sources.extend(java_target.sources_relative_to_buildroot()) if not sources: return None scala_platform = ScalaPlatform.global_instance() tool_classpath = [ cp_entry.path for cp_entry in scala_platform.compiler_classpath_entries(self.context.products) ] args = ["-usejavacp", "-classpath", ":".join(classpath), "-d", gendir] args.extend(self.args) args.extend(sources) java_executor = SubprocessExecutor(self.preferred_jvm_distribution_for_targets(targets)) runner = java_executor.runner( jvm_options=self.jvm_options, classpath=tool_classpath, main="scala.tools.nsc.ScalaDoc", args=args, ) return runner.command
def create_javadoc_command(self, classpath, gendir, *targets): sources = [] for target in targets: sources.extend(target.sources_relative_to_buildroot()) if not sources: return None # Without a JDK/tools.jar we have no javadoc tool and cannot proceed, so check/acquire early. jdk = DistributionLocator.cached(jdk=True) tool_classpath = jdk.find_libs(['tools.jar']) args = ['-quiet', '-encoding', 'UTF-8', '-notimestamp', '-use', '-Xmaxerrs', '10000', # the default is 100 '-Xmaxwarns', '10000', # the default is 100 '-d', gendir] # Always provide external linking for java API offlinelinks = {'http://download.oracle.com/javase/8/docs/api/'} def link(target): for jar in target.jar_dependencies: if jar.apidocs: offlinelinks.add(jar.apidocs) for target in targets: target.walk(link, lambda t: isinstance(t, (JvmTarget, JarLibrary))) for link in offlinelinks: args.extend(['-linkoffline', link, link]) args.extend(self.args) javadoc_classpath_file = os.path.join(self.workdir, f'{os.path.basename(gendir)}.classpath') with open(javadoc_classpath_file, 'w') as f: f.write('-classpath ') f.write(':'.join(classpath)) args.extend([f'@{javadoc_classpath_file}']) javadoc_sources_file = os.path.join(self.workdir, f'{os.path.basename(gendir)}.source.files') with open(javadoc_sources_file, 'w') as f: f.write('\n'.join(sources)) args.extend([f'@{javadoc_sources_file}']) java_executor = SubprocessExecutor(jdk) runner = java_executor.runner(jvm_options=self.jvm_options, classpath=tool_classpath, main='com.sun.tools.javadoc.Main', args=args) return runner.command
def create_javadoc_command(self, classpath, gendir, *targets): sources = [] for target in targets: sources.extend(target.sources_relative_to_buildroot()) if not sources: return None # Without a JDK/tools.jar we have no javadoc tool and cannot proceed, so check/acquire early. jdk = DistributionLocator.cached(jdk=True) tool_classpath = jdk.find_libs(['tools.jar']) args = ['-quiet', '-encoding', 'UTF-8', '-notimestamp', '-use', '-Xmaxerrs', '10000', # the default is 100 '-Xmaxwarns', '10000', # the default is 100 '-d', gendir] # Always provide external linking for java API offlinelinks = {'http://download.oracle.com/javase/8/docs/api/'} def link(target): for jar in target.jar_dependencies: if jar.apidocs: offlinelinks.add(jar.apidocs) for target in targets: target.walk(link, lambda t: isinstance(t, (JvmTarget, JarLibrary))) for link in offlinelinks: args.extend(['-linkoffline', link, link]) args.extend(self.args) javadoc_classpath_file = os.path.join(self.workdir, '{}.classpath'.format(os.path.basename(gendir))) with open(javadoc_classpath_file, 'w') as f: f.write('-classpath ') f.write(':'.join(classpath)) args.extend(['@{}'.format(javadoc_classpath_file)]) javadoc_sources_file = os.path.join(self.workdir, '{}.source.files'.format(os.path.basename(gendir))) with open(javadoc_sources_file, 'w') as f: f.write('\n'.join(sources)) args.extend(['@{}'.format(javadoc_sources_file)]) java_executor = SubprocessExecutor(jdk) runner = java_executor.runner(jvm_options=self.jvm_options, classpath=tool_classpath, main='com.sun.tools.javadoc.Main', args=args) return runner.command
def create_javadoc_command(self, classpath, gendir, *targets): sources = [] for target in targets: sources.extend(target.sources_relative_to_buildroot()) if not sources: return None # Without a JDK/tools.jar we have no javadoc tool and cannot proceed, so check/acquire early. jdk = DistributionLocator.cached(jdk=True) tool_classpath = jdk.find_libs(['tools.jar']) args = ['-quiet', '-encoding', 'UTF-8', '-notimestamp', '-use', '-classpath', ':'.join(classpath), '-d', gendir] # Always provide external linking for java API offlinelinks = {'http://download.oracle.com/javase/6/docs/api/'} def link(target): for jar in target.jar_dependencies: if jar.apidocs: offlinelinks.add(jar.apidocs) for target in targets: target.walk(link, lambda t: t.is_jvm) for link in offlinelinks: args.extend(['-linkoffline', link, link]) args.extend(self.args) args.extend(sources) java_executor = SubprocessExecutor(jdk) runner = java_executor.runner(jvm_options=self.jvm_options, classpath=tool_classpath, main='com.sun.tools.javadoc.Main', args=args) return runner.command
def create_javadoc_command(self, classpath, gendir, *targets): sources = [] for target in targets: sources.extend(target.sources_relative_to_buildroot()) if not sources: return None # Without a JDK/tools.jar we have no javadoc tool and cannot proceed, so check/acquire early. jdk = self.preferred_jvm_distribution_for_targets(targets, jdk=True) tool_classpath = jdk.find_libs(["tools.jar"]) args = [ "-quiet", "-encoding", "UTF-8", "-notimestamp", "-use", "-Xmaxerrs", "10000", # the default is 100 "-Xmaxwarns", "10000", # the default is 100 "-d", gendir, ] # Always provide external linking for java API offlinelinks = {"http://download.oracle.com/javase/8/docs/api/"} def link(target): for jar in target.jar_dependencies: if jar.apidocs: offlinelinks.add(jar.apidocs) for target in targets: target.walk(link, lambda t: isinstance(t, (JvmTarget, JarLibrary))) for link in offlinelinks: args.extend(["-linkoffline", link, link]) args.extend(self.args) javadoc_classpath_file = os.path.join( self.workdir, f"{os.path.basename(gendir)}.classpath") with open(javadoc_classpath_file, "w") as f: f.write("-classpath ") f.write(":".join(classpath)) args.extend([f"@{javadoc_classpath_file}"]) javadoc_sources_file = os.path.join( self.workdir, f"{os.path.basename(gendir)}.source.files") with open(javadoc_sources_file, "w") as f: f.write("\n".join(sources)) args.extend([f"@{javadoc_sources_file}"]) java_executor = SubprocessExecutor(jdk) runner = java_executor.runner( jvm_options=self.jvm_options, classpath=tool_classpath, main="com.sun.tools.javadoc.Main", args=args, ) return runner.command