require 'formula' class Phantomjs < Formula homepage 'http://www.phantomjs.org/' url 'https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-source.zip' sha1 '124b017d493d5ccabd22afaf078d0650ac048840' bottle do cellar :any sha1 "fb82891b5d63de81a89c7b5b41b8aeba39dec470" => :mavericks sha1 "042dd2341a1140cdcd575e08aa432ed659e3f00e" => :mountain_lion sha1 "575af708d7e5ef6e39e90766ffd2bf97b6c4b51b" => :lion end patch do url "https://github.com/ariya/phantomjs/commit/fe6a96.patch" sha1 "c6899db754a7202fc4745d2bd64504432a6b606c" end def install inreplace 'src/qt/preconfig.sh', '-arch x86', '-arch x86_64' if MacOS.prefer_64_bit? args = ['--confirm', '--qt-config'] # we have to disable these to avoid triggering Qt optimization code # that will fail in superenv (in --env=std, Qt seems aware of this) args << '-no-3dnow -no-ssse3' if superenv? system './build.sh', *args bin.install 'bin/phantomjs' (share+'phantomjs').install 'examples' end test do path = testpath/"test.js" path.write <<-EOS console.log('hello'); phantom.exit(); EOS output = `#{bin}/phantomjs #{path}`.strip assert_equal "hello", output assert_equal 0, $?.exitstatus end end