Packages
protox
2.0.0-dev
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
2.0.0-dev
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
retired
1.7.3
1.7.2
1.7.1
1.7.0
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.0
1.3.2
1.3.1
1.3.0
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.1
1.1.0
1.0.0
0.25.0
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.0
0.19.1
0.19.0
0.18.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.0
0.9.1
0.9.0
0.8.0
0.7.1
0.7.0
A fast, easy to use and 100% conformant Elixir library for Google Protocol Buffers (aka protobuf)
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Protox.Mixfile do
use Mix.Project
def project() do
[
app: :protox,
version: "2.0.0-dev",
elixir: "~> 1.15",
build_embedded: Mix.env() == :prod,
start_permanent: Mix.env() == :prod,
deps: deps(),
test_coverage: [tool: ExCoveralls],
elixirc_paths: elixirc_paths(Mix.env()),
escript: escript(),
name: "Protox",
source_url: "https://github.com/ahamez/protox",
description: description(),
package: package(),
dialyzer: [plt_local_path: "priv/plts"],
docs: docs(),
preferred_cli_env: [muzak: :test]
]
end
defp elixirc_paths(:prod), do: ["lib"]
defp elixirc_paths(_), do: ["lib", "conformance", "benchmark", "test/support"]
def application() do
[
extra_applications: [:benchee, :eex, :mix]
]
end
defp deps() do
[
{:benchee, "~> 1.0", only: [:test, :dev], runtime: false},
{:benchee_html, "~> 1.0", only: [:test, :dev], runtime: false},
{:credo, "~> 1.4", only: [:test, :dev], runtime: false},
{:dialyxir, "~> 1.0", only: [:test, :dev], runtime: false},
{:excoveralls, "~> 0.13", only: [:test], runtime: false},
{:ex_doc, "~> 0.22", only: [:dev], runtime: false},
{:propcheck, github: "alfert/propcheck", ref: "c564e89d", only: [:test, :dev]},
{:stream_data, "~> 1.0", only: [:dev, :test], runtime: false},
{:quokka, "~> 2.0", only: [:dev, :test], runtime: false}
]
|> maybe_add_muzak_pro()
|> maybe_download_protobuf()
end
defp maybe_add_muzak_pro(deps) do
case System.get_env("PROTOX_MUZAK_PRO_CREDS") do
nil ->
deps
creds ->
muzak_pro =
{:muzak, git: "https://#{creds}@github.com/ahamez/muzak.git", tag: "1.1.0", only: [:test]}
[muzak_pro | deps]
end
end
defp maybe_download_protobuf(deps) do
case System.get_env("PROTOX_PROTOBUF_VERSION") do
nil ->
deps
version ->
protobuf =
{:protobuf,
github: "protocolbuffers/protobuf",
tag: "v#{version}",
submodules: true,
app: false,
compile: false,
only: [:dev, :test]}
[protobuf | deps]
end
end
defp description() do
"""
A fast, easy to use and 100% conformant Elixir library for Google Protocol Buffers (aka protobuf)
"""
end
def escript() do
[
# do not start any application: avoid propcheck app to fail when running escript
app: nil,
main_module: Protox.Conformance.Escript,
name: "protox_conformance"
]
end
defp package() do
[
name: :protox,
files: ["lib", "mix.exs", "README*", "LICENSE"],
maintainers: ["Alexandre Hamez"],
licenses: ["MIT"],
links: %{"GitHub" => "https://github.com/ahamez/protox"},
exclude_patterns: [".DS_Store"]
]
end
defp docs() do
[
main: "readme",
extras: Path.wildcard("./*.md") ++ Path.wildcard("./benchmark/*.md") ++ Path.wildcard("./documentation/*.md")
]
end
end