summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRin Kuryloski <kuryloskip@vmware.com>2023-05-04 12:52:08 +0200
committerRin Kuryloski <kuryloskip@vmware.com>2023-05-12 08:26:42 +0200
commitea895a00230874b0971eca18a735ad8826896bc1 (patch)
treeb197faf52104a952721c20db21187c8533e6b289
parent08061144ad32aa829b92ed0f4afb7273535c99b0 (diff)
downloadrabbitmq-server-git-ea895a00230874b0971eca18a735ad8826896bc1.tar.gz
Account for Elixir containing several core applications
- eex - elixir - ex_unit - iex - logger - mix So that apps (like rabbitmq_cli) can dialyze against the extra components
-rw-r--r--bazel/elixir/BUILD.bazel12
-rw-r--r--bazel/elixir/elixir_as_app.bzl14
-rw-r--r--deps/rabbitmq_cli/BUILD.bazel1
3 files changed, 24 insertions, 3 deletions
diff --git a/bazel/elixir/BUILD.bazel b/bazel/elixir/BUILD.bazel
index b362f11b13..f21e9181d4 100644
--- a/bazel/elixir/BUILD.bazel
+++ b/bazel/elixir/BUILD.bazel
@@ -12,3 +12,15 @@ elixir_as_app(
name = "erlang_app",
visibility = ["//visibility:public"],
)
+
+elixir_as_app(
+ name = "logger",
+ app = "logger",
+ visibility = ["//visibility:public"],
+)
+
+elixir_as_app(
+ name = "iex",
+ app = "iex",
+ visibility = ["//visibility:public"],
+)
diff --git a/bazel/elixir/elixir_as_app.bzl b/bazel/elixir/elixir_as_app.bzl
index b653a8dcdd..eb615722c9 100644
--- a/bazel/elixir/elixir_as_app.bzl
+++ b/bazel/elixir/elixir_as_app.bzl
@@ -3,12 +3,16 @@ load(
"ErlangAppInfo",
)
load(
+ "@rules_erlang//:util.bzl",
+ "path_join",
+)
+load(
":elixir_toolchain.bzl",
"elixir_dirs",
)
def _impl(ctx):
- ebin = ctx.actions.declare_directory("ebin")
+ ebin = ctx.actions.declare_directory(path_join(ctx.label.name, "ebin"))
(elixir_home, elixir_runfiles) = elixir_dirs(ctx)
@@ -17,9 +21,10 @@ def _impl(ctx):
outputs = [ebin],
command = """set -euo pipefail
-cp -r "{elixir_home}"/lib/elixir/ebin/* {ebin}
+cp -r "{elixir_home}"/lib/{app}/ebin/* {ebin}
""".format(
elixir_home = elixir_home,
+ app = ctx.attr.app,
ebin = ebin.path,
),
)
@@ -27,7 +32,7 @@ cp -r "{elixir_home}"/lib/elixir/ebin/* {ebin}
return [
DefaultInfo(files = depset([ebin])),
ErlangAppInfo(
- app_name = "elixir",
+ app_name = ctx.attr.app,
include = [],
beam = [ebin],
priv = [],
@@ -39,6 +44,9 @@ cp -r "{elixir_home}"/lib/elixir/ebin/* {ebin}
elixir_as_app = rule(
implementation = _impl,
+ attrs = {
+ "app": attr.string(default = "elixir"),
+ },
toolchains = [":toolchain_type"],
provides = [ErlangAppInfo],
)
diff --git a/deps/rabbitmq_cli/BUILD.bazel b/deps/rabbitmq_cli/BUILD.bazel
index 79bc84f06a..cf212f27c0 100644
--- a/deps/rabbitmq_cli/BUILD.bazel
+++ b/deps/rabbitmq_cli/BUILD.bazel
@@ -116,6 +116,7 @@ plt(
libs = [":elixir"],
deps = [
":elixir",
+ "//bazel/elixir:logger",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],