From d4afe46597f9eab139a4fb13f62b1da67ddf2a79 Mon Sep 17 00:00:00 2001 From: lostecho Date: Mon, 28 Apr 2025 17:09:52 +0800 Subject: [PATCH] add sense-voice --- Formula/sense-voice.rb | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Formula/sense-voice.rb diff --git a/Formula/sense-voice.rb b/Formula/sense-voice.rb new file mode 100644 index 0000000..448f243 --- /dev/null +++ b/Formula/sense-voice.rb @@ -0,0 +1,47 @@ +class SenseVoice < Formula + desc "A tool for voice recognition" + homepage "https://github.com/lovemefan/SenseVoice.cpp" + url "https://github.com/lovemefan/SenseVoice.cpp.git", branch: "main" + sha256 "7db9aac1da3de455da32744e8799a5390edc0e46cdf5ba4800815586d91aeebd" # Replace with actual checksum + version "0.1.0" + license "MIT" + + depends_on "cmake" => :build + depends_on "git" + depends_on "sdl2" # 如果需要 SDL 支持 + + def install + system "git", "submodule", "update", "--init", "--recursive" + mkdir "build" do + system "cmake", "-DCMAKE_BUILD_TYPE=Release", "..", *std_cmake_args + system "make", "-j#{ENV.make_jobs}" + end + + bin.install "build/bin/sense-voice-main" => "sense-voice" + lib.install Dir["build/lib/*.dylib"] + + # 修复 sense-voice 中对 dylib 的引用 + dylibs = Dir["#{lib}/*.dylib"] + dylibs.each do |dylib| + system "install_name_tool", "-change", "@rpath/#{File.basename(dylib)}", "@loader_path/../lib/#{File.basename(dylib)}", "#{bin}/sense-voice" + end + + # 修复各个 dylib 之间的引用 + dylibs.each do |target_dylib| + dylibs.each do |referenced_dylib| + referenced_basename = File.basename(referenced_dylib) + system "install_name_tool", "-change", "@rpath/#{referenced_basename}", "@loader_path/#{referenced_basename}", target_dylib + end + end + + # 给 sense-voice 增加 rpath + system "install_name_tool", "-add_rpath", "@loader_path/../lib", "#{bin}/sense-voice" + end + + test do + system "#{bin}/sense-voice", "--help" + end +end + + +