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(