defmodule EKV.MixProject do use Mix.Project @version "0.1.0" def project do [ app: :ekv, version: @version, elixir: "~> 1.19", elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod, compilers: [:elixir_make] ++ Mix.compilers(), make_targets: ["all"], make_clean: ["clean"], make_precompiler: {:nif, CCPrecompiler}, make_precompiler_url: "https://github.com/chrismccord/ekv/releases/download/v#{@version}/@{artefact_filename}", make_precompiler_filename: "ekv_sqlite3_nif", make_precompiler_nif_versions: ["2.16", "2.17"], make_precompiler_priv_paths: ["ekv_sqlite3_nif.*"], make_force_build: System.get_env("EKV_BUILD") in ["1", "true"] or Mix.env() in [:dev, :test], cc_precompiler: [cleanup: "make clean"], description: description(), package: package(), deps: deps() ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] def application do [ extra_applications: [:logger], mod: {EKV.Application, []} ] end defp description do """ Eventually consistent durable KV store backed by SQLite. Data survives node restarts, node death, and network partitions. Peer-to-peer replication across Erlang nodes with delta sync. """ end defp package do [ name: "ekv", licenses: ["MIT"], links: %{"GitHub" => "https://github.com/chrismccord/ekv"}, files: [ # "lib", # "c_src/ekv_sqlite3_nif.c", # "c_src/sqlite3.c", # "c_src/sqlite3.h", # "Makefile", "mix.exs", # "README.md", # "LICENSE", # "checksum-ekv.exs" ] ] end defp deps do [ {:elixir_make, "~> 0.9", runtime: false}, {:cc_precompiler, "~> 0.1", runtime: false} ] end end