| java_binary( |
| name = "fidlplugin_jar", |
| main_class = "notexecutable", |
| runtime_deps = ["//src/fuchsia/developer/plugin/fidl"], |
| ) |
| |
| filegroup( |
| name = "config", |
| srcs = [ |
| "resources/META-INF/plugin.xml", |
| ], |
| ) |
| |
| filegroup( |
| name = "jarjar_rules", |
| srcs = ["jarjar_rules.txt"], |
| ) |
| |
| # Need to include config files at appropriate paths in JAR |
| genrule( |
| name = "fidlplugin", |
| srcs = [ |
| ":config", |
| ":fidlplugin_jar_deploy.jar", |
| "//src/fuchsia/developer/plugin/fidl:icons", |
| ], |
| outs = [ |
| "fidlplugin.jar", |
| ], |
| cmd = |
| """ absolutify() { [[ "$$1" =~ ^/ ]] && echo "$$1" || echo "$$PWD/$$1"; }; |
| TMP=`absolutify $$(mktemp -d -p .)`; |
| ICONS=`absolutify $(location //src/fuchsia/developer/plugin/fidl:icons)`; |
| JAR=`absolutify $(JAVABASE)`/bin/jar; |
| OUT=`absolutify $(@D)`; |
| PLUGIN=`absolutify $(location :fidlplugin_jar_deploy.jar)`; |
| CONFIG=`absolutify $(locations :config)`; |
| JARJAR=`absolutify $(location //jarjar:jarjar_bin)`; |
| RULES_LOC=`absolutify $(location :jarjar_rules)`; |
| cd $${TMP}; |
| $${JAR} xf $${PLUGIN}; |
| cp $${CONFIG} META-INF/; |
| rm -rf build-data.properties; |
| $${JAR} --create --file=$${OUT}/$$(basename $(@)).full *; |
| $${JARJAR} process $${RULES_LOC} $${OUT}/$$(basename $(@)).full $${OUT}/$$(basename $(@)) """, |
| toolchains = ["@bazel_tools//tools/jdk:current_host_java_runtime"], |
| tools = [ |
| ":jarjar_rules", |
| "//jarjar:jarjar_bin", |
| ], |
| ) |