CMake: use a requirement to look for expat.framework

master
Adam Vandenberg 2012-04-28 11:23:45 -07:00
parent c38c31ab89
commit 9ddbf906c0
1 changed files with 19 additions and 11 deletions

View File

@ -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
def patches
depends_on NoExpatFramework.new
# Correct FindPkgConfig found variable. Remove for CMake 2.8.9.
def patches
"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",