class Llnode < Formula desc "LLDB plugin for live/post-mortem debugging of node.js apps" homepage "https://github.com/nodejs/llnode" url "https://github.com/nodejs/llnode/archive/v1.6.1.tar.gz" sha256 "32aed9105818d4ec6ff68fac62193db1f581c3084280a34b3c7fc6fa26ce77d2" bottle do cellar :any sha256 "759573764359cc146ffab8084d91867bdd7e58cbd4b428a5f2e0795ab743da03" => :sierra sha256 "e1039a75e8f40e8928962a83d90fc0bedeb56422a997c8b33e0893182e20e760" => :el_capitan sha256 "c5afadd992d2865f6d5599814127ae626da4e88cdd4ae00602794893dc684cf4" => :yosemite end depends_on :macos => :yosemite depends_on :python => :build resource "gyp" do url "https://chromium.googlesource.com/external/gyp.git", :revision => "324dd166b7c0b39d513026fa52d6280ac6d56770" end resource "lldb" do if MacOS::Xcode.version >= "8.3" # lldb 390 url "https://github.com/llvm-mirror/lldb.git", :revision => "d556e60f02a7404b291d07cac2f27512c73bc743" elsif MacOS::Xcode.version >= "8.0" # lldb 360.1 url "https://github.com/llvm-mirror/lldb.git", :revision => "839b868e2993dcffc7fea898a1167f1cec097a82" else # It claims it to be lldb 350.0 for Xcode 7.3, but in fact it is based # of 34. # Xcode < 7.3 uses 340.4, so I assume we should be safe to go with this. url "http://llvm.org/svn/llvm-project/lldb/tags/RELEASE_34/final/", :using => :svn end end def install (buildpath/"lldb").install resource("lldb") (buildpath/"tools/gyp").install resource("gyp") system "./gyp_llnode" system "make", "-C", "out/" prefix.install "out/Release/llnode.dylib" end def caveats; <<-EOS.undent `brew install llnode` does not link the plugin to LLDB PlugIns dir. To load this plugin in LLDB, one will need to either * Type `plugin load #{opt_prefix}/llnode.dylib` on each run of lldb * Install plugin into PlugIns dir manually: mkdir -p ~/Library/Application\\ Support/LLDB/PlugIns ln -sf #{opt_prefix}/llnode.dylib \\ ~/Library/Application\\ Support/LLDB/PlugIns/ EOS end test do lldb_out = pipe_output "lldb", <<-EOS.undent plugin load #{opt_prefix}/llnode.dylib help v8 quit EOS assert_match /v8 bt/, lldb_out end end