diff --git a/bucklets/java_doc.bucklet b/bucklets/java_doc.bucklet new file mode 120000 index 0000000000..cc8b6dba8e --- /dev/null +++ b/bucklets/java_doc.bucklet @@ -0,0 +1 @@ +../tools/java_doc.defs \ No newline at end of file diff --git a/bucklets/java_sources.bucklet b/bucklets/java_sources.bucklet new file mode 120000 index 0000000000..8a1a5dddfb --- /dev/null +++ b/bucklets/java_sources.bucklet @@ -0,0 +1 @@ +../tools/java_sources.defs \ No newline at end of file diff --git a/bucklets/local_jar.bucklet b/bucklets/local_jar.bucklet new file mode 120000 index 0000000000..890482472c --- /dev/null +++ b/bucklets/local_jar.bucklet @@ -0,0 +1 @@ +../lib/local.defs \ No newline at end of file diff --git a/bucklets/maven_package.bucklet b/bucklets/maven_package.bucklet new file mode 120000 index 0000000000..b5f5ea8afb --- /dev/null +++ b/bucklets/maven_package.bucklet @@ -0,0 +1 @@ +../tools/maven/package.defs \ No newline at end of file diff --git a/lib/local.defs b/lib/local.defs new file mode 100644 index 0000000000..6eec581a0d --- /dev/null +++ b/lib/local.defs @@ -0,0 +1,33 @@ +def local_jar( + name, + jar, + src = None, + deps = [], + visibility = ['PUBLIC']): + binjar = name + '.jar' + srcjar = name + '-src.jar' + genrule( + name = '%s__local_bin' % name, + cmd = 'ln -s %s $OUT' % jar, + out = binjar) + if src: + genrule( + name = '%s__local_src' % name, + cmd = 'ln -s %s $OUT' % src, + out = srcjar) + prebuilt_jar( + name = '%s_src' % name, + binary_jar = ':%s__local_src' % name, + visibility = visibility, + ) + else: + srcjar = None + + prebuilt_jar( + name = name, + deps = deps, + binary_jar = ':%s__local_bin' % name, + source_jar = ':%s__local_src' % name if srcjar else None, + visibility = visibility, + ) + diff --git a/lib/maven.defs b/lib/maven.defs index 5f4006fe27..adce2a5e57 100644 --- a/lib/maven.defs +++ b/lib/maven.defs @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +include_defs('//lib/local.defs') + ATLASSIAN = 'ATLASSIAN:' GERRIT = 'GERRIT:' GERRIT_API = 'GERRIT_API:' @@ -135,35 +137,3 @@ def maven_jar( visibility = visibility, ) -def local_jar( - name, - jar, - src = None, - deps = [], - visibility = ['PUBLIC']): - binjar = name + '.jar' - srcjar = name + '-src.jar' - genrule( - name = '%s__local_bin' % name, - cmd = 'ln -s %s $OUT' % jar, - out = binjar) - if src: - genrule( - name = '%s__local_src' % name, - cmd = 'ln -s %s $OUT' % src, - out = srcjar) - prebuilt_jar( - name = '%s_src' % name, - binary_jar = ':%s__local_src' % name, - visibility = visibility, - ) - else: - srcjar = None - - prebuilt_jar( - name = name, - deps = deps, - binary_jar = ':%s__local_bin' % name, - source_jar = ':%s__local_src' % name if srcjar else None, - visibility = visibility, - ) diff --git a/tools/default.defs b/tools/default.defs index 4ebb4e435e..2239026593 100644 --- a/tools/default.defs +++ b/tools/default.defs @@ -15,6 +15,8 @@ # Rule definitions loaded by default into every BUCK file. include_defs('//tools/gwt-constants.defs') +include_defs('//tools/java_doc.defs') +include_defs('//tools/java_sources.defs') import copy def genantlr( @@ -144,52 +146,3 @@ def gerrit_plugin( ] + static_jars, visibility = visibility, ) - -def java_sources( - name, - srcs, - visibility = [] - ): - java_library( - name = name, - resources = srcs, - visibility = visibility, - ) - -def java_doc( - name, - title, - pkg, - paths, - srcs = [], - deps = [], - visibility = [], - do_it_wrong = False, - ): - if do_it_wrong: - sourcepath = paths - else: - sourcepath = ['$SRCDIR/' + n for n in paths] - genrule( - name = name, - cmd = ' '.join([ - 'while ! test -f .buckconfig; do cd ..; done;', - 'javadoc', - '-quiet', - '-protected', - '-encoding UTF-8', - '-charset UTF-8', - '-notimestamp', - '-windowtitle "' + title + '"', - '-link http://docs.oracle.com/javase/7/docs/api', - '-subpackages ' + pkg, - '-sourcepath ', - ':'.join(sourcepath), - ' -classpath ', - ':'.join(['$(location %s)' % n for n in deps]), - '-d $TMP', - ]) + ';jar cf $OUT -C $TMP .', - srcs = srcs, - out = name + '.jar', - visibility = visibility, -) diff --git a/tools/java_doc.defs b/tools/java_doc.defs new file mode 100644 index 0000000000..d117bda9b1 --- /dev/null +++ b/tools/java_doc.defs @@ -0,0 +1,37 @@ +def java_doc( + name, + title, + pkg, + paths, + srcs = [], + deps = [], + visibility = [], + do_it_wrong = False, + ): + if do_it_wrong: + sourcepath = paths + else: + sourcepath = ['$SRCDIR/' + n for n in paths] + genrule( + name = name, + cmd = ' '.join([ + 'while ! test -f .buckconfig; do cd ..; done;', + 'javadoc', + '-quiet', + '-protected', + '-encoding UTF-8', + '-charset UTF-8', + '-notimestamp', + '-windowtitle "' + title + '"', + '-link http://docs.oracle.com/javase/7/docs/api', + '-subpackages ' + pkg, + '-sourcepath ', + ':'.join(sourcepath), + ' -classpath ', + ':'.join(['$(location %s)' % n for n in deps]), + '-d $TMP', + ]) + ';jar cf $OUT -C $TMP .', + srcs = srcs, + out = name + '.jar', + visibility = visibility, +) diff --git a/tools/java_sources.defs b/tools/java_sources.defs new file mode 100644 index 0000000000..0b3974ec7a --- /dev/null +++ b/tools/java_sources.defs @@ -0,0 +1,10 @@ +def java_sources( + name, + srcs, + visibility = [] + ): + java_library( + name = name, + resources = srcs, + visibility = visibility, + )