mix.exs (1850B)
1 defmodule Makeup.Mixfile do 2 use Mix.Project 3 4 @version "1.1.0" 5 @url "https://github.com/elixir-makeup/makeup" 6 7 def project do 8 [ 9 app: :makeup, 10 version: @version, 11 elixir: "~> 1.6", 12 elixirc_paths: compiler_paths(Mix.env()), 13 start_permanent: Mix.env() == :prod, 14 deps: deps(), 15 aliases: aliases(), 16 # Package 17 package: package(), 18 description: description() 19 ] 20 end 21 22 defp description do 23 """ 24 Syntax highlighter for source code in the style of Pygments. 25 """ 26 end 27 28 def compiler_paths(:dev), do: ["test/helpers"] ++ compiler_paths(:prod) 29 def compiler_paths(:test), do: ["test/helpers"] ++ compiler_paths(:prod) 30 def compiler_paths(_), do: ["lib"] 31 32 defp aliases do 33 [ 34 docs: &build_docs/1 35 ] 36 end 37 38 defp package do 39 [ 40 name: :makeup, 41 licenses: ["BSD"], 42 maintainers: ["Tiago Barroso <tmbb@campus.ul.pt>"], 43 links: %{ 44 "Changelog" => "https://hexdocs.pm/makeup/changelog.html", 45 "Contributing" => "https://hexdocs.pm/makeup/contributing.html", 46 "GitHub" => @url 47 } 48 ] 49 end 50 51 def application do 52 [ 53 extra_applications: [:eex], 54 mod: {Makeup.Application, []} 55 ] 56 end 57 58 defp deps do 59 [ 60 {:nimble_parsec, "~> 1.2.2 or ~> 1.3"}, 61 {:stream_data, "~> 0.4.2", only: [:dev, :test]} 62 ] 63 end 64 65 defp build_docs(_) do 66 Mix.Task.run("compile") 67 ex_doc = Path.join(Mix.path_for(:escripts), "ex_doc") 68 69 unless File.exists?(ex_doc) do 70 raise "cannot build docs because escript for ex_doc is not installed" 71 end 72 73 args = ["Makeup", @version, Mix.Project.compile_path()] 74 opts = ~w[--main Makeup --source-ref v#{@version} --source-url #{@url} --config .ex_doc.exs] 75 System.cmd(ex_doc, args ++ opts) 76 Mix.shell().info("Docs built successfully") 77 end 78 end