defmodule LazyHTML.MixProject do use Mix.Project # v2.5.0 + :lexbor-contains() feature @lexbor_git_sha "244b84956a6dc7eec293781d051354f351274c46" @version "0.1.11" @description "Efficient parsing and querying of HTML documents" @github_url "https://github.com/dashbitco/lazy_html" def project do [ app: :lazy_html, version: @version, name: "LazyHTML", description: @description, elixir: "~> 1.15", compilers: [:elixir_make] ++ Mix.compilers(), deps: deps(), docs: docs(), package: package(), make_env: fn -> %{ "FINE_INCLUDE_DIR" => Fine.include_dir(), "LEXBOR_GIT_SHA" => @lexbor_git_sha } end, # Precompilation make_precompiler: {:nif, CCPrecompiler}, make_precompiler_url: "#{@github_url}/releases/download/v#{@version}/@{artefact_filename}", make_precompiler_filename: "liblazy_html", make_precompiler_nif_versions: [versions: ["2.16"]], cc_precompiler: [ # Defaults + musl compilers: %{ {:unix, :linux} => %{ "x86_64-linux-gnu" => "x86_64-linux-gnu-", "i686-linux-gnu" => "i686-linux-gnu-", "aarch64-linux-gnu" => "aarch64-linux-gnu-", "armv7l-linux-gnueabihf" => "arm-linux-gnueabihf-", "riscv64-linux-gnu" => "riscv64-linux-gnu-", "powerpc64le-linux-gnu" => "powerpc64le-linux-gnu-", "s390x-linux-gnu" => "s390x-linux-gnu-", "x86_64-linux-musl" => "x86_64-linux-musl-", "aarch64-linux-musl" => "aarch64-linux-musl-" }, {:unix, :darwin} => %{ "x86_64-apple-darwin" => { "gcc", "g++", "<%= cc %> -arch x86_64", "<%= cxx %> -arch x86_64" }, "aarch64-apple-darwin" => { "gcc", "g++", "<%= cc %> -arch arm64", "<%= cxx %> -arch arm64" } }, {:win32, :nt} => %{ "x86_64-windows-msvc" => {"cl", "cl"} } } ] ] end def application do [ extra_applications: [:logger] ] end defp deps do [ {:fine, "~> 0.1.0"}, {:elixir_make, "~> 0.9.0"}, {:cc_precompiler, "~> 0.1", runtime: false}, {:ex_doc, "~> 0.36", only: :dev, runtime: false} ] end defp docs do [ main: "LazyHTML", source_url: @github_url, source_ref: "v#{@version}" ] end defp package do [ licenses: ["Apache-2.0"], links: %{"GitHub" => @github_url}, files: ~w(c_src lib config mix.exs README.md LICENSE CHANGELOG.md Makefile Makefile.win checksum.exs) ] end end