class Botan < Formula desc "Cryptographic algorithms and formats library in C++" homepage "https://botan.randombit.net/" url "https://botan.randombit.net/releases/Botan-3.10.0.tar.xz" sha256 "fde194236f6d5434f136ea0a0627f6cc9d26af8b96e9f1e1c7d8c82cd90f4f24" license "BSD-2-Clause" head "https://github.com/randombit/botan.git", branch: "master" livecheck do url :homepage regex(/href=.*?Botan[._-]v?(\d+(?:\.\d+)+)\.t/i) end bottle do sha256 arm64_tahoe: "caa17b3e22c246e36df507be44434ac7371e5301191d15d91742312358da9163" sha256 arm64_sequoia: "48c59b05de2d484662de39f1bf8f0fe7d129060a55a01bbeaaad26b28ea9abae" sha256 arm64_sonoma: "271bdde1e30dd9eb25b2b1686a678a3cf54146dc23918717fb6aa9b059e79dd3" sha256 sonoma: "d402b6fdc08d1d6559e4265cbcb334d03683687fe97d70614da4046f79e4e63c" sha256 arm64_linux: "343cecee5bf20718147ac5ca563034ebe2e311cd9e8f40c1094ed90e37e90794" sha256 x86_64_linux: "ccaba762b00a0ed569fad4dfd5312b63110c00e6fbe7b97af13accf64c77ab8b" end depends_on "pkgconf" => :build depends_on "ca-certificates" depends_on "python@3.14" depends_on "sqlite" uses_from_macos "bzip2" uses_from_macos "zlib" on_macos do depends_on "llvm" if DevelopmentTools.clang_build_version <= 1400 end fails_with :clang do build 1400 cause "Requires C++20" end def python3 which("python3.14") end def install ENV.runtime_cpu_detection args = %W[ --prefix=#{prefix} --docdir=share/doc --with-zlib --with-bzip2 --with-sqlite3 --system-cert-bundle=#{Formula["ca-certificates"].pkgetc}/cert.pem ] args << "--with-commoncrypto" if OS.mac? if OS.mac? && DevelopmentTools.clang_build_version <= 1400 ENV.llvm_clang ldflags = %W[-L#{Formula["llvm"].opt_lib}/c++ -L#{Formula["llvm"].opt_lib}/unwind -lunwind] args << "--ldflags=#{ldflags.join(" ")}" end system python3, "configure.py", *args system "make", "install" end test do text = "Homebrew" base64_enc = pipe_output("#{bin}/botan base64_enc -", text) refute_empty base64_enc assert_equal text, pipe_output("#{bin}/botan base64_dec -", base64_enc).chomp end end