defmodule ShotDs.MixProject do use Mix.Project @version "1.2.2" @source_url "https://github.com/jcschuster/ShotDs" def project do [ app: :shot_ds, version: @version, elixir: "~> 1.19", start_permanent: Mix.env() == :prod, deps: deps(), source_url: @source_url, description: "Data structures for various HOL objects and TH0/1 parser.", docs: docs(), package: package() ] end def application do [ extra_applications: [:logger], mod: {ShotDs.Application, []} ] end defp deps do [ # Parsing tool including a easy-to-use lexer/tokenizer {:nimble_parsec, "~> 1.4.2"}, # Code analyzer, duplication checker and security analyzer {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, # Code analyzer and type checker {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, # Documentation generation {:ex_doc, "~> 0.40", only: :dev, runtime: false} ] end defp docs do [ main: "readme", extras: [ "README.md", "examples/demo.livemd" ], source_url: @source_url, source_ref: "v#{@version}", groups_for_modules: [ "Core Data Structures": [ ShotDs.Data.Type, ShotDs.Data.TypeScheme, ShotDs.Data.Declaration, ShotDs.Data.Term, ShotDs.Data.Substitution ], "Data Structures for Parsing": [ ShotDs.Data.Context, ShotDs.Data.Problem ], "Simple Type Theory": [ ShotDs.Stt.TermFactory, ShotDs.Stt.Semantics, ShotDs.Stt.Numerals, ShotDs.Stt.Booleans ], "Higher-Order Logic": [ ShotDs.Hol.Definitions, ShotDs.Hol.Dsl, ShotDs.Hol.Patterns ], Utilities: [ ShotDs.Util.Formatter, ShotDs.Util.TermTraversal, ShotDs.Util.TypeInference, ShotDs.Util.Lexer ], Parsing: [ ShotDs.Parser, ShotDs.Tptp, ShotDs.Hol.Sigils ] ], before_closing_head_tag: &before_closing_head_tag/1, before_closing_body_tag: &before_closing_body_tag/1 ] end defp package do [ licenses: ["MIT"], maintainers: ["Johannes Schuster"], links: %{ "GitHub" => @source_url }, files: ~w(lib LICENSE mix.exs README.md) ] end defp before_closing_head_tag(:html) do """ """ end defp before_closing_head_tag(_), do: "" defp before_closing_body_tag(:html) do """ """ end defp before_closing_body_tag(_), do: "" end