86 lines
3.6 KiB
Ruby
86 lines
3.6 KiB
Ruby
class Unar < Formula
|
|
desc "Command-line unarchiving tools supporting multiple formats"
|
|
homepage "https://theunarchiver.com/command-line"
|
|
url "https://github.com/MacPaw/XADMaster/archive/refs/tags/v1.10.7.tar.gz"
|
|
sha256 "3d766dc1856d04a8fb6de9942a6220d754d0fa7eae635d5287e7b1cf794c4f45"
|
|
license "LGPL-2.1-or-later"
|
|
revision 2
|
|
head "https://github.com/MacPaw/XADMaster.git", branch: "master"
|
|
|
|
bottle do
|
|
sha256 cellar: :any, arm64_ventura: "f54bbe066a64757abecc1f684f21210dd00a39fdc3d12c95ccb2fb6f177c1ebb"
|
|
sha256 cellar: :any, arm64_monterey: "a608dbbff3ba80cb81fd4c5c27a258bfd215cca26bfeab85039d4eab7bd1997e"
|
|
sha256 cellar: :any, arm64_big_sur: "15c3334c72b2f110cceea2376cd7b29cc4b59bf230a996ea921db6ba5506ace2"
|
|
sha256 cellar: :any, ventura: "f922d535c2c2121a8594ba2e69a8e2644ed07df79d187b0cfe98400df1cb0cdc"
|
|
sha256 cellar: :any, monterey: "b249c2612975d145ae8fcc6267803a4252c3b9cad1b39047802beccc18838e09"
|
|
sha256 cellar: :any, big_sur: "9c8f7c554d1fd798f4e1cc35e3137a330e9c31e0282143887fe1cef547392d33"
|
|
sha256 cellar: :any_skip_relocation, x86_64_linux: "eaea53f9babb998e847ea51e5a6b41ca910c5f9c2f14c0302fd999a0fbd8b0a0"
|
|
end
|
|
|
|
depends_on xcode: :build
|
|
|
|
uses_from_macos "llvm" => :build
|
|
uses_from_macos "bzip2"
|
|
|
|
on_linux do
|
|
depends_on "gnustep-base"
|
|
depends_on "icu4c"
|
|
depends_on "wavpack"
|
|
end
|
|
|
|
# Clang must be used on Linux because GCC Objective C support is insufficient.
|
|
fails_with :gcc
|
|
|
|
resource "universal-detector" do
|
|
url "https://github.com/MacPaw/universal-detector/archive/refs/tags/1.1.tar.gz"
|
|
sha256 "8e8532111d0163628eb828a60d67b53133afad3f710b1967e69d3b8eee28a811"
|
|
end
|
|
|
|
def install
|
|
resource("universal-detector").stage buildpath/"../UniversalDetector"
|
|
|
|
# Link to libc++.dylib instead of libstdc++.6.dylib
|
|
inreplace "XADMaster.xcodeproj/project.pbxproj", "libstdc++.6.dylib", "libc++.1.dylib"
|
|
|
|
# Replace usage of __DATE__ to keep builds reproducible
|
|
inreplace %w[lsar.m unar.m], "@__DATE__", "@\"#{time.strftime("%b %d %Y")}\""
|
|
|
|
# Makefile.linux does not support an out-of-tree build.
|
|
if OS.mac?
|
|
mkdir "build" do
|
|
# Build XADMaster.framework, unar and lsar
|
|
arch = Hardware::CPU.arm? ? "arm64" : "x86_64"
|
|
%w[XADMaster unar lsar].each do |target|
|
|
xcodebuild "-target", target, "-project", "../XADMaster.xcodeproj",
|
|
"SYMROOT=#{buildpath/"build"}", "-configuration", "Release",
|
|
"MACOSX_DEPLOYMENT_TARGET=#{MacOS.version}", "ARCHS=#{arch}", "ONLY_ACTIVE_ARCH=YES"
|
|
end
|
|
|
|
bin.install "./Release/unar", "./Release/lsar"
|
|
%w[UniversalDetector XADMaster].each do |framework|
|
|
lib.install "./Release/lib#{framework}.a"
|
|
frameworks.install "./Release/#{framework}.framework"
|
|
(include/"lib#{framework}").install_symlink Dir["#{frameworks}/#{framework}.framework/Headers/*"]
|
|
end
|
|
end
|
|
else
|
|
system "make", "-f", "Makefile.linux"
|
|
bin.install "unar", "lsar"
|
|
lib.install buildpath/"../UniversalDetector/libUniversalDetector.a", "libXADMaster.a"
|
|
end
|
|
|
|
cd "Extra" do
|
|
man1.install "lsar.1", "unar.1"
|
|
bash_completion.install "unar.bash_completion", "lsar.bash_completion"
|
|
end
|
|
end
|
|
|
|
test do
|
|
cp prefix/"README.md", "."
|
|
system "gzip", "README.md"
|
|
assert_equal "README.md.gz: Gzip\nREADME.md\n", shell_output("#{bin}/lsar README.md.gz")
|
|
system bin/"unar", "README.md.gz"
|
|
assert_predicate testpath/"README.md", :exist?
|
|
end
|
|
end
|