David Ostrovsky | 20c2fd4 | 2019-08-30 10:19:56 +0200 | [diff] [blame] | 1 | load("@rules_java//java:defs.bzl", "java_binary", "java_library") |
David Pursehouse | 2d08500 | 2016-12-11 19:00:10 +0900 | [diff] [blame] | 2 | load("//tools/bzl:genrule2.bzl", "genrule2") |
Christian Aistleitner | 2d9a44d | 2020-05-29 16:41:01 +0200 | [diff] [blame] | 3 | load("//:version.bzl", "GERRIT_VERSION") |
David Ostrovsky | c48e6c9 | 2016-09-22 16:13:50 +0200 | [diff] [blame] | 4 | |
David Ostrovsky | 0fbbf20 | 2020-06-22 09:15:01 +0200 | [diff] [blame] | 5 | IN_TREE_BUILD_MODE = True |
| 6 | |
David Ostrovsky | 32c6933 | 2017-08-24 22:10:33 +0200 | [diff] [blame] | 7 | PLUGIN_DEPS = ["//plugins:plugin-lib"] |
Dave Borowitz | 070df0f | 2017-11-03 09:14:02 -0400 | [diff] [blame] | 8 | |
David Ostrovsky | 32c6933 | 2017-08-24 22:10:33 +0200 | [diff] [blame] | 9 | PLUGIN_DEPS_NEVERLINK = ["//plugins:plugin-lib-neverlink"] |
David Ostrovsky | 5d869ef | 2016-12-10 12:40:41 +0100 | [diff] [blame] | 10 | |
David Ostrovsky | c5f8066 | 2017-04-06 20:25:25 +0200 | [diff] [blame] | 11 | PLUGIN_TEST_DEPS = [ |
David Ostrovsky | 0cccfe1 | 2017-08-24 09:12:34 +0200 | [diff] [blame] | 12 | "//java/com/google/gerrit/acceptance:lib", |
David Ostrovsky | c5f8066 | 2017-04-06 20:25:25 +0200 | [diff] [blame] | 13 | "//lib/bouncycastle:bcpg", |
| 14 | "//lib/bouncycastle:bcpkix", |
| 15 | "//lib/bouncycastle:bcprov", |
| 16 | ] |
David Ostrovsky | 5d869ef | 2016-12-10 12:40:41 +0100 | [diff] [blame] | 17 | |
David Ostrovsky | c48e6c9 | 2016-09-22 16:13:50 +0200 | [diff] [blame] | 18 | def gerrit_plugin( |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 19 | name, |
| 20 | deps = [], |
| 21 | provided_deps = [], |
| 22 | srcs = [], |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 23 | resources = [], |
| 24 | manifest_entries = [], |
| 25 | dir_name = None, |
| 26 | target_suffix = "", |
David Ostrovsky | f16119c | 2020-01-17 17:16:25 +0100 | [diff] [blame] | 27 | deploy_env = [], |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 28 | **kwargs): |
David Ostrovsky | 20c2fd4 | 2019-08-30 10:19:56 +0200 | [diff] [blame] | 29 | java_library( |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 30 | name = name + "__plugin", |
| 31 | srcs = srcs, |
| 32 | resources = resources, |
David Ostrovsky | 7163dac | 2017-07-29 06:49:38 +0200 | [diff] [blame] | 33 | deps = provided_deps + deps + PLUGIN_DEPS_NEVERLINK, |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 34 | visibility = ["//visibility:public"], |
| 35 | **kwargs |
David Ostrovsky | 2502fab | 2016-11-15 14:30:26 -0800 | [diff] [blame] | 36 | ) |
| 37 | |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 38 | static_jars = [] |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 39 | |
| 40 | if not dir_name: |
| 41 | dir_name = name |
| 42 | |
David Ostrovsky | 20c2fd4 | 2019-08-30 10:19:56 +0200 | [diff] [blame] | 43 | java_binary( |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 44 | name = "%s__non_stamped" % name, |
Christian Aistleitner | 12a2da7 | 2020-05-29 20:14:06 +0200 | [diff] [blame] | 45 | deploy_manifest_lines = manifest_entries + [ |
| 46 | "Gerrit-ApiType: plugin", |
| 47 | "Gerrit-ApiVersion: " + GERRIT_VERSION, |
| 48 | ], |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 49 | main_class = "Dummy", |
| 50 | runtime_deps = [ |
| 51 | ":%s__plugin" % name, |
| 52 | ] + static_jars, |
David Ostrovsky | f16119c | 2020-01-17 17:16:25 +0100 | [diff] [blame] | 53 | deploy_env = deploy_env, |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 54 | visibility = ["//visibility:public"], |
| 55 | **kwargs |
| 56 | ) |
| 57 | |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 58 | # TODO(davido): Remove manual merge of manifest file when this feature |
| 59 | # request is implemented: https://github.com/bazelbuild/bazel/issues/2009 |
David Ostrovsky | 88483ed | 2020-02-15 09:41:59 +0100 | [diff] [blame] | 60 | # TODO(davido): Remove manual touch command when this issue is resolved: |
| 61 | # https://github.com/bazelbuild/bazel/issues/10789 |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 62 | genrule2( |
| 63 | name = name + target_suffix, |
| 64 | stamp = 1, |
| 65 | srcs = ["%s__non_stamped_deploy.jar" % name], |
| 66 | cmd = " && ".join([ |
David Ostrovsky | 88483ed | 2020-02-15 09:41:59 +0100 | [diff] [blame] | 67 | "TZ=UTC", |
| 68 | "export TZ", |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 69 | "GEN_VERSION=$$(cat bazel-out/stable-status.txt | grep -w STABLE_BUILD_%s_LABEL | cut -d ' ' -f 2)" % dir_name.upper(), |
| 70 | "cd $$TMP", |
Thomas Draebing | 9407880 | 2020-07-07 11:00:34 +0200 | [diff] [blame] | 71 | "unzip -qo $$ROOT/$<", |
Christian Aistleitner | 12a2da7 | 2020-05-29 20:14:06 +0200 | [diff] [blame] | 72 | "echo \"Implementation-Version: $$GEN_VERSION\n$$(cat META-INF/MANIFEST.MF)\" > META-INF/MANIFEST.MF", |
David Ostrovsky | 88483ed | 2020-02-15 09:41:59 +0100 | [diff] [blame] | 73 | "find . -exec touch '{}' ';'", |
| 74 | "zip -Xqr $$ROOT/$@ .", |
Han-Wen Nienhuys | a667b4c | 2018-07-10 11:51:36 +0200 | [diff] [blame] | 75 | ]), |
| 76 | outs = ["%s%s.jar" % (name, target_suffix)], |
| 77 | visibility = ["//visibility:public"], |
| 78 | ) |