David Ostrovsky | 188bd78 | 2014-07-19 22:43:36 +0200 | [diff] [blame] | 1 | def java_doc( |
| 2 | name, |
| 3 | title, |
David Ostrovsky | ec38762 | 2014-10-22 01:22:23 +0200 | [diff] [blame] | 4 | pkgs, |
David Ostrovsky | c13d8fe | 2016-08-27 10:28:20 +0200 | [diff] [blame] | 5 | source_jar, |
David Ostrovsky | 188bd78 | 2014-07-19 22:43:36 +0200 | [diff] [blame] | 6 | srcs = [], |
| 7 | deps = [], |
| 8 | visibility = [], |
Christian Aistleitner | eda4d91 | 2015-05-20 15:37:54 +0200 | [diff] [blame] | 9 | external_docs = [], |
David Ostrovsky | 188bd78 | 2014-07-19 22:43:36 +0200 | [diff] [blame] | 10 | ): |
David Ostrovsky | c13d8fe | 2016-08-27 10:28:20 +0200 | [diff] [blame] | 11 | # TODO(davido): Actually we shouldn't need to extract the source |
| 12 | # archive, javadoc should just work with provided archive. |
David Ostrovsky | 3931c16 | 2014-06-15 00:33:40 +0200 | [diff] [blame] | 13 | external_docs.insert(0, 'http://docs.oracle.com/javase/8/docs/api') |
David Ostrovsky | 188bd78 | 2014-07-19 22:43:36 +0200 | [diff] [blame] | 14 | genrule( |
| 15 | name = name, |
| 16 | cmd = ' '.join([ |
David Ostrovsky | c13d8fe | 2016-08-27 10:28:20 +0200 | [diff] [blame] | 17 | 'mkdir $TMP/sourcepath &&', |
| 18 | 'unzip $(location %s) -d $TMP/sourcepath &&' % source_jar, |
David Ostrovsky | 188bd78 | 2014-07-19 22:43:36 +0200 | [diff] [blame] | 19 | 'javadoc', |
David Ostrovsky | 3931c16 | 2014-06-15 00:33:40 +0200 | [diff] [blame] | 20 | '-Xdoclint:-missing', |
David Ostrovsky | 188bd78 | 2014-07-19 22:43:36 +0200 | [diff] [blame] | 21 | '-quiet', |
| 22 | '-protected', |
| 23 | '-encoding UTF-8', |
| 24 | '-charset UTF-8', |
| 25 | '-notimestamp', |
| 26 | '-windowtitle "' + title + '"', |
Christian Aistleitner | eda4d91 | 2015-05-20 15:37:54 +0200 | [diff] [blame] | 27 | ' '.join(['-link %s' % url for url in external_docs]), |
David Ostrovsky | ec38762 | 2014-10-22 01:22:23 +0200 | [diff] [blame] | 28 | '-subpackages ', |
| 29 | ':'.join(pkgs), |
David Ostrovsky | c13d8fe | 2016-08-27 10:28:20 +0200 | [diff] [blame] | 30 | '-sourcepath $TMP/sourcepath', |
David Ostrovsky | 188bd78 | 2014-07-19 22:43:36 +0200 | [diff] [blame] | 31 | ' -classpath ', |
David Ostrovsky | d9cafb7 | 2016-02-14 20:14:24 +0100 | [diff] [blame] | 32 | ':'.join(['$(classpath %s)' % n for n in deps]), |
David Ostrovsky | 188bd78 | 2014-07-19 22:43:36 +0200 | [diff] [blame] | 33 | '-d $TMP', |
| 34 | ]) + ';jar cf $OUT -C $TMP .', |
| 35 | srcs = srcs, |
| 36 | out = name + '.jar', |
| 37 | visibility = visibility, |
David Ostrovsky | c13d8fe | 2016-08-27 10:28:20 +0200 | [diff] [blame] | 38 | ) |