Simplify bazel build Given that '$' character is now allowed in globs and filegroup, we can simplify the build rules. See [1] for more context. [1] https://github.com/bazelbuild/bazel/issues/374 Change-Id: I69f7d1b9c01837dc54d718d9ab62d0f4d50dbc2e
diff --git a/BUILD b/BUILD index 4d763fa..81146c9 100644 --- a/BUILD +++ b/BUILD
@@ -54,38 +54,12 @@ ), ) -#java_library( -# name = 'builtin', -# srcs = glob([SRC + 'builtin/*.java'], exclude = REPL + IO) + -# [ -## ':builtin_srcs', -## ':system_srcs', -# ], -# deps = [':lang'], -#) - -# TODO(davido): Fix that mess when this major Bazel bug is fixed: -# https://github.com/bazelbuild/bazel/issues/374 -# That why I left the original :builtin rule from Buck, so that -# you can feel my pain, to emulate the glob with zip, to hide -# the files that contain '$' from Bazel. -genrule( - name = "builtin_srcjar", - outs = ["builtin.srcjar"], - cmd = " && ".join([ - "TMP=$$(mktemp -d || mktemp -d -t bazel-tmp)", - "ROOT=$$PWD", - "cd java", - "zip -q $$ROOT/$@ com/googlecode/prolog_cafe/builtin/*.java", - "zip -qd $$ROOT/$@ com/googlecode/prolog_cafe/builtin/PRED_\$$write_toString_2.java %s" % " ".join([s[5:] for s in IO]), - ]), - local = 1, -) - java_library( name = "builtin", - srcs = [ - ":builtin_srcjar", + srcs = glob( + [SRC + "builtin/*.java"], + exclude = REPL + IO, + ) + [ ":builtin_srcs", ":system_srcs", ], @@ -156,25 +130,9 @@ runtime_deps = [":cafeteria_lib"], ) -# TODO(davido): Same as above -genrule( - name = "cafeteria_lib_srcjar", - outs = ["cafeteria_lib.srcjar"], - cmd = " && ".join([ - "TMP=$$(mktemp -d || mktemp -d -t bazel-tmp)", - "ROOT=$$PWD", - "cd java", - "zip -q $$ROOT/$@ com/googlecode/prolog_cafe/repl/*.java com/googlecode/prolog_cafe/builtin/PRED_\$$write_toString_2.java", - ]), - local = 1, -) - java_library( name = "cafeteria_lib", - srcs = [ - ":cafeteria_lib.srcjar", - ":cafeteria_srcs", - ], + srcs = glob([SRC + "repl/*.java"]) + REPL + [":cafeteria_srcs"], deps = [ ":builtin", ":io", @@ -188,23 +146,18 @@ out = "cafeteria.srcjar", ) -# TODO(davido): Same as above -genrule( +java_library( name = "runtime_src", - srcs = [ + resources = glob( + [ + SRC + "builtin/*.java", + SRC + "lang/*.java", + ], + exclude = REPL + IO, + ) + [ "src/builtin/builtins.pl", "src/builtin/system.pl", ], - outs = ["runtime_sources.zip"], - cmd = " && ".join([ - "TMP=$$(mktemp -d || mktemp -d -t bazel-tmp)", - "ROOT=$$PWD", - "cp $(SRCS) $$TMP/", - "cd $$TMP", - "unzip -q $$ROOT/$(location :builtin_srcjar)", - "zip -qr $$ROOT/$@ .", - ]), - tools = [":builtin_srcjar"], ) java_library( @@ -220,22 +173,11 @@ ], ) -# TODO(davido): Same as above -genrule( +java_library( name = "cafeteria_src", - srcs = [ + resources = glob([SRC + "repl/*.java"]) + REPL + [ "src/builtin/cafeteria.pl", ], - outs = ["cafeteria_sources.zip"], - cmd = " && ".join([ - "TMP=$$(mktemp -d || mktemp -d -t bazel-tmp)", - "ROOT=$$PWD", - "cp $(SRCS) $$TMP/", - "cd $$TMP", - "unzip -q $$ROOT/$(location :cafeteria_lib_srcjar)", - "zip -qr $$ROOT/$@ .", - ]), - tools = [":cafeteria_lib_srcjar"], ) maven_package(