aboutsummaryrefslogtreecommitdiff
path: root/kotlin
diff options
context:
space:
mode:
authorDonald Duo Zhao <deltazulu@google.com>2022-08-24 14:03:14 -0700
committerCopybara-Service <copybara-worker@google.com>2022-08-24 14:03:43 -0700
commit96fe01cc5f80ae2070b11462c816ffdfb75451fa (patch)
tree7fb2e05f80dbcbc28fa6cc940bf036ecfa10c907 /kotlin
parent88bd1bb10a88b51302f439e48292f069095d30d0 (diff)
downloadbazelbuild-kotlin-rules-96fe01cc5f80ae2070b11462c816ffdfb75451fa.tar.gz
Empty Dir Support
PiperOrigin-RevId: 469818319
Diffstat (limited to 'kotlin')
-rw-r--r--kotlin/common.bzl26
1 files changed, 20 insertions, 6 deletions
diff --git a/kotlin/common.bzl b/kotlin/common.bzl
index 6627b09..8a06b56 100644
--- a/kotlin/common.bzl
+++ b/kotlin/common.bzl
@@ -661,18 +661,32 @@ def _create_jar_from_tree_artifacts(ctx, jar_tool, output_jar, input_dirs):
args = ctx.actions.args()
- args.add("cf", output_jar)
for in_dir in input_dirs:
if not in_dir.is_directory:
fail("Expected a directory input, but got {}.".format(in_dir))
- args.add("-C", in_dir.path)
- args.add(".")
+ args.add(in_dir.path)
- ctx.actions.run(
- executable = jar_tool,
+ ctx.actions.run_shell(
+ command = """
+ JAR_TOOL={}
+ OUT_JAR={}
+ OUT_DIR="$(dirname $OUT_JAR)"
+ RES_DIR=$OUT_DIR/META-INF
+ mkdir $RES_DIR
+ $JAR_TOOL cf $OUT_JAR $RES_DIR
+ rmdir $RES_DIR
+ for INPUT_DIR in $@
+ do
+ if [ -d $INPUT_DIR ]
+ then
+ $JAR_TOOL uf $OUT_JAR -C $INPUT_DIR .
+ fi
+ done
+ """.format(jar_tool.executable.path, output_jar.path),
+ arguments = [args],
inputs = input_dirs,
outputs = [output_jar],
- arguments = [args],
+ tools = [jar_tool],
mnemonic = "KtJarActionFromTreeArtifacts",
progress_message = "Create Jar %{output}",
)