From 9eb11ed2645d30e81d89c8cfd53a4935b3167c10 Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Wed, 22 Mar 2023 11:56:22 -0600 Subject: Allow compiling to standalone binary via bakeware This introduces a simple way of compiling Farside to a somewhat portable, standalone binary. The resulting binary isn't completely portable since it depends on the C runtime of the host system. As a result, it's advised to use systems with older library versions when compiling for true portability. Closes #50 Co-authored-by: Jason Clark --- mix.exs | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) (limited to 'mix.exs') diff --git a/mix.exs b/mix.exs index 13ddd3b..3bd45ef 100644 --- a/mix.exs +++ b/mix.exs @@ -1,16 +1,31 @@ defmodule Farside.MixProject do use Mix.Project + @source_url "https://github.com/benbusby/farside.git" + @version "0.1.1" + @app :farside + def project do [ - app: :farside, - version: "0.1.0", + app: @app, + version: @version, + name: "farside", elixir: "~> 1.8", - start_permanent: Mix.env() == :prod, - deps: deps() + source_url: @source_url, + start_permanent: Mix.env() == :prod || Mix.env() == :cli, + deps: deps(), + aliases: aliases(), + description: description(), + package: package(), + releases: [{@app, release()}], + preferred_cli_env: [release: :cli] ] end + defp aliases do + [] + end + # Run "mix help compile.app" to learn about applications. def application do [ @@ -27,7 +42,32 @@ defmodule Farside.MixProject do {:plug_attack, "~> 0.4.2"}, {:plug_cowboy, "~> 2.0"}, {:quantum, "~> 3.0"}, - {:cubdb, "~> 2.0.1"} + {:cubdb, "~> 2.0.1"}, + {:bakeware, "~> 0.2.4"} + ] + end + + defp description() do + "A redirecting service for FOSS alternative frontends." + end + + defp package() do + [ + name: "farside", + files: ["lib", "mix.exs", "README*"], + maintainers: ["Ben Busby"], + licenses: ["MIT"], + links: %{"GitHub" => "https://github.com/benbusby/farside"} + ] + end + + defp release() do + [ + overwrite: true, + cookie: "#{@app}_cookie", + quiet: true, + steps: [:assemble, &Bakeware.assemble/1], + strip_beams: Mix.env() == :cli ] end end -- cgit v1.2.3