diff --git a/Formula/cmake.rb b/Formula/cmake.rb index f2863101f4..5cc1f77b4e 100644 --- a/Formula/cmake.rb +++ b/Formula/cmake.rb @@ -1,5 +1,21 @@ require 'formula' +class NoExpatFramework < Requirement + def message; <<-EOS.undent + Detected /Library/Frameworks/expat.framework + + This will be picked up by CMake's build system and likely cause the + build to fail, trying to link to a 32-bit version of expat. + + You may need to move this file out of the way to compile CMake. + EOS + end + def satisfied? + not File.exist? "/Library/Frameworks/expat.framework" + end +end + + class Cmake < Formula url 'http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz' md5 'ba74b22c788a0c8547976b880cd02b17' @@ -10,22 +26,14 @@ class Cmake < Formula sha1 '4d25a7ca3f41750d957fe1cfd53ecb37c713efad' => :snowleopard end + depends_on NoExpatFramework.new + + # Correct FindPkgConfig found variable. Remove for CMake 2.8.9. def patches - # Correct FindPkgConfig found variable. Remove for CMake 2.8.9. "https://github.com/Kitware/CMake/commit/3ea850.patch" end def install - # A framework-installed expat will be detected and mess things up. - if File.exist? "/Library/Frameworks/expat.framework" - opoo "/Library/Frameworks/expat.framework detected" - puts <<-EOS.undent - This will be picked up by CMake's build system and likey cause the - build to fail, trying to link to a 32-bit version of expat. - You may need to move this file out of the way for this brew to work. - EOS - end - system "./bootstrap", "--prefix=#{prefix}", "--system-libs", "--no-system-libarchive",