| def java_doc( | |
| name, | |
| title, | |
| pkgs, | |
| source_jar, | |
| srcs = [], | |
| deps = [], | |
| visibility = [], | |
| external_docs = [], | |
| ): | |
| # TODO(davido): Actually we shouldn't need to extract the source | |
| # archive, javadoc should just work with provided archive. | |
| external_docs.insert(0, 'http://docs.oracle.com/javase/8/docs/api') | |
| genrule( | |
| name = name, | |
| cmd = ' '.join([ | |
| 'mkdir $TMP/sourcepath &&', | |
| 'unzip $(location %s) -d $TMP/sourcepath &&' % source_jar, | |
| 'javadoc', | |
| '-Xdoclint:-missing', | |
| '-quiet', | |
| '-protected', | |
| '-encoding UTF-8', | |
| '-charset UTF-8', | |
| '-notimestamp', | |
| '-windowtitle "' + title + '"', | |
| ' '.join(['-link %s' % url for url in external_docs]), | |
| '-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, | |
| ) |