homebrew-core/Formula/mupdf.rb

85 lines
3.0 KiB
Ruby

class Mupdf < Formula
desc "Lightweight PDF and XPS viewer"
homepage "https://mupdf.com/"
url "https://mupdf.com/downloads/archive/mupdf-1.20.3-source.tar.lz"
sha256 "6f73f63ef8aa81991dfd023d4426a548827d1d74e0bfcf2a013acad63b651868"
license "AGPL-3.0-or-later"
head "https://git.ghostscript.com/mupdf.git", branch: "master"
livecheck do
url "https://mupdf.com/downloads/archive/"
regex(/href=.*?mupdf[._-]v?(\d+(?:\.\d+)+)-source\.(?:t|zip)/i)
end
bottle do
sha256 cellar: :any, arm64_monterey: "fd53c923bf3ef8d6dfbc4e17d964dea8f654f33895ab17bc68a13e7257f31d99"
sha256 cellar: :any, arm64_big_sur: "d4de8eca45bddbaaffa4f967810e4cccf6bea5fddada820dd485e32459091e8f"
sha256 cellar: :any, monterey: "ba5d902321147f9c470410c4cc2cd65e4f327a48ed604ba10afe807aff2494cd"
sha256 cellar: :any, big_sur: "e1ca6bb0d8578b49f7bd53377fc52e8c55b98e8861b849199855b5c70430188a"
sha256 cellar: :any, catalina: "453fe6af4893acd064313e020018e96a9928abbd24e9fb9132247c217635cde7"
sha256 cellar: :any_skip_relocation, x86_64_linux: "3d2ad0097c293160cbb9d3932ae311a11cb4c13f47d11577c654d0827c95b831"
end
depends_on "pkg-config" => :build
depends_on "freetype"
depends_on "gumbo-parser"
depends_on "harfbuzz"
depends_on "jbig2dec"
depends_on "jpeg-turbo"
depends_on "mujs"
depends_on "openjpeg"
depends_on "openssl@1.1"
uses_from_macos "zlib"
on_linux do
depends_on "freeglut"
depends_on "libx11"
depends_on "libxext"
depends_on "mesa"
end
conflicts_with "mupdf-tools",
because: "mupdf and mupdf-tools install the same binaries"
def install
# Remove bundled libraries excluding `extract` and "strongly preferred" `lcms2mt` (lcms2 fork)
keep = %w[extract lcms2]
(buildpath/"thirdparty").each_child { |path| path.rmtree if keep.exclude? path.basename.to_s }
args = %W[
build=release
shared=yes
verbose=yes
prefix=#{prefix}
CC=#{ENV.cc}
USE_SYSTEM_LIBS=yes
USE_SYSTEM_MUJS=yes
]
# Build only runs pkg-config for libcrypto on macOS, so help find other libs
if OS.mac?
[
["FREETYPE", "freetype2"],
["GUMBO", "gumbo"],
["HARFBUZZ", "harfbuzz"],
["LIBJPEG", "libjpeg"],
["OPENJPEG", "libopenjp2"],
].each do |argname, libname|
args << "SYS_#{argname}_CFLAGS=#{Utils.safe_popen_read("pkg-config", "--cflags", libname).strip}"
args << "SYS_#{argname}_LIBS=#{Utils.safe_popen_read("pkg-config", "--libs", libname).strip}"
end
end
system "make", "install", *args
# Symlink `mutool` as `mudraw` (a popular shortcut for `mutool draw`).
bin.install_symlink bin/"mutool" => "mudraw"
man1.install_symlink man1/"mutool.1" => "mudraw.1"
lib.install_symlink lib/shared_library("libmupdf") => shared_library("libmupdf-third")
end
test do
assert_match "Homebrew test", shell_output("#{bin}/mudraw -F txt #{test_fixtures("test.pdf")}")
end
end