def java_doc( name, title, pkgs, source_jar, srcs = [], deps = [], visibility = [], ): # TODO(davido): Actually we shouldn't need to extract the source # archive, javadoc should just work with provided archive. genrule( name = name, cmd = ' '.join([ 'mkdir $TMP/sourcepath &&', 'unzip $(location %s) -d $TMP/sourcepath &&' % source_jar, 'javadoc', '-quiet', '-protected', '-encoding UTF-8', '-charset UTF-8', '-notimestamp', '-windowtitle "' + title + '"', '-link http://docs.oracle.com/javase/7/docs/api', '-subpackages ', ':'.join(pkgs), '-sourcepath $TMP/sourcepath', ' -classpath ', ':'.join(['$(classpath %s)' % n for n in deps]), '-d $TMP', ]) + ';jar cf $OUT -C $TMP .', srcs = srcs, out = name + '.jar', visibility = visibility, )