25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-24 16:23:40 +01:00
xmpp.chapril.org-ejabberd/mix.exs

104 lines
3.2 KiB
Elixir
Raw Normal View History

defmodule Ejabberd.Mixfile do
use Mix.Project
def project do
[app: :ejabberd,
2016-01-06 12:27:43 +01:00
version: "16.01.0",
2016-01-24 10:19:28 +01:00
description: description,
2016-01-06 12:27:43 +01:00
elixir: "~> 1.1",
elixirc_paths: ["lib"],
compile_path: ".",
compilers: [:asn1] ++ Mix.compilers,
erlc_options: erlc_options,
erlc_paths: ["asn1", "src"],
package: package,
deps: deps]
end
2016-01-24 10:19:28 +01:00
defp description do
"""
Robust, ubiquitous and massively scalable Jabber / XMPP Instant Messaging platform.
"""
end
def application do
[mod: {:ejabberd_app, []},
applications: [:ssl],
included_applications: [:lager, :mnesia, :p1_utils, :cache_tab,
2016-02-03 10:12:25 +01:00
:p1_tls, :stringprep, :p1_xml,
2016-01-06 12:27:43 +01:00
:p1_stun, :p1_yaml, :p1_zlib, :p1_iconv,
:esip, :jiffy, :oauth2, :xmlrpc, :eredis,
:p1_mysql, :p1_pgsql, :sqlite3]]
end
2015-09-29 20:19:35 +02:00
defp erlc_options do
# Use our own includes + includes from all dependencies
2015-09-07 17:55:54 +02:00
includes = ["include"] ++ Path.wildcard(Path.join("..", "/*/include"))
[:debug_info] ++ Enum.map(includes, fn(path) -> {:i, path} end)
end
2015-09-29 20:19:35 +02:00
defp deps do
2016-02-03 10:55:40 +01:00
[{:lager, "~> 3.0"},
{:p1_utils, "~> 1.0", override: true},
{:cache_tab, "~> 1.0"},
{:stringprep, "~> 1.0"},
{:fast_yaml, "~> 1.0"},
2016-01-06 12:27:43 +01:00
{:p1_tls, git: "https://github.com/processone/tls", tag: "1.0.0"},
{:p1_xml, git: "https://github.com/processone/xml", tag: "1.1.2"},
{:stun, "~> 1.0"},
{:esip, "~> 1.0"},
2016-02-03 10:55:40 +01:00
{:jiffy, "~> 0.14.7"},
{:p1_oauth2, "~> 0.6.1"},
{:p1_xmlrpc, "~> 1.15"},
{:p1_mysql, "~> 1.0"},
{:p1_pgsql, "~> 1.0"},
2016-02-03 10:55:40 +01:00
{:sqlite3, "~> 1.1"},
2016-01-06 12:27:43 +01:00
{:p1_zlib, git: "https://github.com/processone/zlib", tag: "1.0.0"},
2016-02-03 11:17:16 +01:00
{:iconv, "~> 1.0"},
2016-02-03 10:55:40 +01:00
{:eredis, "~> 1.0"},
{:exrm, "~> 1.0.0-rc7", only: :dev}]
2015-09-29 20:19:35 +02:00
end
defp package do
2016-01-24 10:07:12 +01:00
[# These are the default files included in the package
files: ["lib", "src", "priv", "mix.exs", "include", "README.md", "COPYING"],
maintainers: ["ProcessOne"],
licenses: ["GPLv2"],
links: %{"Site" => "https://www.ejabberd.im",
"Documentation" => "http://docs.ejabberd.im",
"Source" => "https://github.com/processone/ejabberd"}]
end
end
defmodule Mix.Tasks.Compile.Asn1 do
use Mix.Task
alias Mix.Compilers.Erlang
@recursive true
@manifest ".compile.asn1"
def run(args) do
{opts, _, _} = OptionParser.parse(args, switches: [force: :boolean])
project = Mix.Project.config
source_paths = project[:asn1_paths] || ["asn1"]
dest_paths = project[:asn1_target] || ["src"]
mappings = Enum.zip(source_paths, dest_paths)
options = project[:asn1_options] || []
Erlang.compile(manifest(), mappings, :asn1, :erl, opts[:force], fn
input, output ->
options = options ++ [:noobj, outdir: Erlang.to_erl_file(Path.dirname(output))]
2015-04-06 12:39:21 +02:00
case :asn1ct.compile(Erlang.to_erl_file(input), options) do
:ok -> {:ok, :done}
error -> error
2015-04-06 12:39:21 +02:00
end
end)
end
def manifests, do: [manifest]
defp manifest, do: Path.join(Mix.Project.manifest_path, @manifest)
def clean, do: Erlang.clean(manifest())
end