homebrew-core/Formula/uftrace.rb

46 lines
1.4 KiB
Ruby

class Uftrace < Formula
desc "Function graph tracer for C/C++/Rust"
homepage "https://uftrace.github.io/slide/"
url "https://github.com/namhyung/uftrace/archive/v0.12.tar.gz"
sha256 "2aad01f27d4f18717b681824c7a28ac3e1efd5e7bbed3ec888a3ea5af60e3700"
license "GPL-2.0-only"
revision 1
head "https://github.com/namhyung/uftrace.git", branch: "master"
bottle do
sha256 x86_64_linux: "3094d4d4da602ec0f30e172f64eb73a2ee3d20987632c5de99f1aba4ad7963fd"
end
depends_on "pandoc" => :build
depends_on "pkg-config" => :build
depends_on "capstone"
depends_on "elfutils"
depends_on "libunwind"
depends_on :linux
depends_on "luajit"
depends_on "ncurses"
depends_on "python@3.10"
def install
# Obsolete with git master, to be removed when updating to next release
inreplace "misc/version.sh", "deps/have_libpython2.7", "deps/have_libpython*"
system "./configure", *std_configure_args, "--disable-silent-rules"
system "make", "install", "V=1"
end
test do
out = shell_output("#{bin}/uftrace -A . -R . -P main #{bin}/uftrace -V")
assert_match "dwarf", out
assert_match "python", out
assert_match "luajit", out
assert_match "tui", out
assert_match "sched", out
assert_match "dynamic", out
assert_match "| main() {", out
assert_match "| getopt_long(2, ", out
assert_match "printf", out
assert_match "| } /* main */", out
end
end