blob: 583407c6d527025c76c5d4635c5436cb2ba15647 [file] [log] [blame]
David Ostrovsky188bd782014-07-19 22:43:36 +02001def java_doc(
2 name,
3 title,
David Ostrovskyec387622014-10-22 01:22:23 +02004 pkgs,
David Ostrovskyc13d8fe2016-08-27 10:28:20 +02005 source_jar,
David Ostrovsky188bd782014-07-19 22:43:36 +02006 srcs = [],
7 deps = [],
8 visibility = [],
Christian Aistleitnereda4d912015-05-20 15:37:54 +02009 external_docs = [],
David Ostrovsky188bd782014-07-19 22:43:36 +020010 ):
David Ostrovskyc13d8fe2016-08-27 10:28:20 +020011 # TODO(davido): Actually we shouldn't need to extract the source
12 # archive, javadoc should just work with provided archive.
David Ostrovsky3931c162014-06-15 00:33:40 +020013 external_docs.insert(0, 'http://docs.oracle.com/javase/8/docs/api')
David Ostrovsky188bd782014-07-19 22:43:36 +020014 genrule(
15 name = name,
16 cmd = ' '.join([
David Ostrovskyc13d8fe2016-08-27 10:28:20 +020017 'mkdir $TMP/sourcepath &&',
18 'unzip $(location %s) -d $TMP/sourcepath &&' % source_jar,
David Ostrovsky188bd782014-07-19 22:43:36 +020019 'javadoc',
David Ostrovsky3931c162014-06-15 00:33:40 +020020 '-Xdoclint:-missing',
David Ostrovsky188bd782014-07-19 22:43:36 +020021 '-quiet',
22 '-protected',
23 '-encoding UTF-8',
24 '-charset UTF-8',
25 '-notimestamp',
26 '-windowtitle "' + title + '"',
Christian Aistleitnereda4d912015-05-20 15:37:54 +020027 ' '.join(['-link %s' % url for url in external_docs]),
David Ostrovskyec387622014-10-22 01:22:23 +020028 '-subpackages ',
29 ':'.join(pkgs),
David Ostrovskyc13d8fe2016-08-27 10:28:20 +020030 '-sourcepath $TMP/sourcepath',
David Ostrovsky188bd782014-07-19 22:43:36 +020031 ' -classpath ',
David Ostrovskyd9cafb72016-02-14 20:14:24 +010032 ':'.join(['$(classpath %s)' % n for n in deps]),
David Ostrovsky188bd782014-07-19 22:43:36 +020033 '-d $TMP',
34 ]) + ';jar cf $OUT -C $TMP .',
35 srcs = srcs,
36 out = name + '.jar',
37 visibility = visibility,
David Ostrovskyc13d8fe2016-08-27 10:28:20 +020038 )