defmodule Plato.MixProject do use Mix.Project def project do [ app: :plato, version: "0.0.1", elixir: "~> 1.18", start_permanent: Mix.env() == :prod, deps: deps(), description: description(), package: package(), # Documentation name: "Plato", source_url: "https://github.com/lassediercks/plato", homepage_url: "https://github.com/lassediercks/plato", docs: [ main: "Plato", extras: ["README.md"], groups_for_modules: [ Core: [Plato, Plato.Schema, Plato.Registry], DSL: [Plato.DSL], Content: [Plato.Content], Web: [Plato.Web.Router, Plato.Web.SchemaController] ] ], # Umbrella-specific paths (only used when in umbrella) build_path: if(in_umbrella?(), do: "../../_build", else: "_build"), config_path: if(in_umbrella?(), do: "../../config/config.exs", else: "config/config.exs"), deps_path: if(in_umbrella?(), do: "../../deps", else: "deps"), lockfile: if(in_umbrella?(), do: "../../mix.lock", else: "mix.lock") ] end defp in_umbrella? do File.exists?("../../mix.exs") end defp description do """ A declarative CMS for Elixir. Define your content schemas with a DSL and get an automatically generated web UI with zero configuration. """ end defp package do [ name: "plato", files: ~w(lib priv assets .formatter.exs mix.exs README.md LICENSE), licenses: ["MIT"], links: %{ "GitHub" => "https://github.com/lassediercks/plato" }, maintainers: ["Lasse Diercks"] ] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger], mod: {Plato.Application, []} ] end # Run "mix help deps" to learn about dependencies. defp deps do [ # Documentation {:ex_doc, "~> 0.31", only: :dev, runtime: false}, # Database {:ecto_sql, "~> 3.10"}, {:ecto_sqlite3, "~> 0.12"}, # Web UI {:phoenix, "~> 1.7.0"}, {:phoenix_html, "~> 4.0"}, {:phoenix_live_view, "~> 0.20.0"}, {:phoenix_live_reload, "~> 1.4", only: :dev}, {:plug_cowboy, "~> 2.6"}, {:jason, "~> 1.4"}, # Assets {:tailwind, "~> 0.3", runtime: Mix.env() == :dev}, {:esbuild, "~> 0.8", runtime: Mix.env() == :dev} ] end end