rabbitmq-server/deps/rabbitmq_cli/mix.exs

135 lines
4.0 KiB
Elixir
Raw Normal View History

2016-02-03 23:01:32 +08:00
## The contents of this file are subject to the Mozilla Public License
## Version 1.1 (the "License"); you may not use this file except in
## compliance with the License. You may obtain a copy of the License
## at http://www.mozilla.org/MPL/
##
## Software distributed under the License is distributed on an "AS IS"
## basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
## the License for the specific language governing rights and
## limitations under the License.
##
## The Original Code is RabbitMQ.
##
## The Initial Developer of the Original Code is GoPivotal, Inc.
2017-01-10 22:42:40 +08:00
## Copyright (c) 2007-2017 Pivotal Software, Inc. All rights reserved.
2016-02-03 23:01:32 +08:00
defmodule RabbitMQCtl.MixfileBase do
2016-02-03 02:54:36 +08:00
use Mix.Project
def project do
2016-10-26 00:26:23 +08:00
deps_dir = case System.get_env("DEPS_DIR") do
nil -> "deps"
dir -> dir
end
2016-03-05 01:42:43 +08:00
[
app: :rabbitmqctl,
version: "0.0.1",
elixir: "~> 1.4.4",
2016-03-05 01:42:43 +08:00
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
2016-10-25 23:14:26 +08:00
escript: [main_module: RabbitMQCtl,
emu_args: "-hidden",
path: "escript/rabbitmqctl"],
2016-10-26 00:26:23 +08:00
deps_path: deps_dir,
deps: deps(deps_dir),
aliases: aliases()
2016-03-05 01:42:43 +08:00
]
2016-02-03 02:54:36 +08:00
end
# Configuration for the OTP application
#
# Type "mix help compile.app" for more information
def application do
[applications: [:logger],
env: [scopes: ['rabbitmq-plugins': :plugins,
rabbitmqctl: :ctl,
2016-10-28 20:29:30 +08:00
'rabbitmq-diagnostics': :diagnostics]]
]
2016-06-23 19:33:39 +08:00
|> add_modules(Mix.env)
end
2016-06-23 19:33:39 +08:00
defp add_modules(app, :test) do
# There are issue with building a package without this line ¯\_(ツ)_/¯
Mix.Project.get
2016-06-23 19:33:39 +08:00
path = Mix.Project.compile_path
mods = modules_from(Path.wildcard("#{path}/*.beam"))
test_modules = [RabbitMQ.CLI.Ctl.Commands.DuckCommand,
RabbitMQ.CLI.Ctl.Commands.GrayGooseCommand,
RabbitMQ.CLI.Ctl.Commands.UglyDucklingCommand,
RabbitMQ.CLI.Plugins.Commands.StorkCommand,
RabbitMQ.CLI.Plugins.Commands.HeronCommand,
RabbitMQ.CLI.Custom.Commands.CrowCommand,
RabbitMQ.CLI.Custom.Commands.RavenCommand,
RabbitMQ.CLI.Seagull.Commands.SeagullCommand,
RabbitMQ.CLI.Seagull.Commands.PacificGullCommand,
2016-12-06 20:19:25 +08:00
RabbitMQ.CLI.Seagull.Commands.HerringGullCommand,
RabbitMQ.CLI.Seagull.Commands.HermannGullCommand,
RabbitMQ.CLI.Wolf.Commands.CanisLupusCommand,
RabbitMQ.CLI.Wolf.Commands.CanisLatransCommand,
RabbitMQ.CLI.Wolf.Commands.CanisAureusCommand
]
2016-06-23 19:33:39 +08:00
[{:modules, mods ++ test_modules |> Enum.sort} | app]
end
defp add_modules(app, _) do
app
end
defp modules_from(beams) do
Enum.map beams, &(&1 |> Path.basename |> Path.rootname(".beam") |> String.to_atom)
2016-02-03 02:54:36 +08:00
end
# Dependencies can be Hex packages:
#
# {:mydep, "~> 0.3.0"}
#
# Or git/path repositories:
#
# {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"}
#
# Type "mix help deps" for more examples and options
2016-10-27 22:28:02 +08:00
defp deps(deps_dir) do
2016-03-03 23:08:47 +08:00
[
# We use `true` as the command to "build" rabbit_common and
# amqp_client because Erlang.mk already built them.
2016-03-03 23:08:47 +08:00
{
:rabbit_common,
2016-10-27 22:28:02 +08:00
path: Path.join(deps_dir, "rabbit_common"),
compile: "true",
2016-10-27 22:28:02 +08:00
override: true
2016-05-05 22:29:45 +08:00
},
{
:amqp_client,
2016-11-17 20:30:06 +08:00
only: :test,
2016-10-27 22:28:02 +08:00
path: Path.join(deps_dir, "amqp_client"),
compile: "true",
2016-05-05 22:29:45 +08:00
override: true
},
2017-05-19 19:11:21 +08:00
{:amqp, "~> 0.2.2", only: :test},
{:temp, "~> 0.4", only: :test},
{:json, "~> 1.0.0"},
2017-05-19 19:11:21 +08:00
{:csv, "~> 1.4.4"},
{:simetric, "~> 0.2.0"}
2016-03-03 23:08:47 +08:00
]
2016-02-03 02:54:36 +08:00
end
defp aliases do
[
make_deps: [
"deps.get",
"deps.compile",
],
make_app: [
"compile",
"escript.build",
],
make_all: [
"deps.get",
"deps.compile",
"compile",
"escript.build",
],
]
end
2016-02-03 02:54:36 +08:00
end