Skip to content

Instantly share code, notes, and snippets.

@yuya-oc
Created July 26, 2012 13:49
Show Gist options
  • Save yuya-oc/3182118 to your computer and use it in GitHub Desktop.
Save yuya-oc/3182118 to your computer and use it in GitHub Desktop.
Homebrew Formula for CMake2.8.8 with gui-option
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
homepage 'http://www.cmake.org/'
url 'http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz'
sha1 'a74dfc3e0a0d7f857ac5dda03bb99ebf07676da1'
bottle do
version 3
sha1 'bdfb5fcd6743d65f6cfe00b314f9d3f1049e902b' => :lion
sha1 '3a77fc17a7b1d3cceabddcca5c126c6b911c2f90' => :snowleopard
end
depends_on NoExpatFramework.new
depends_on 'qt' if ARGV.include? '--qt-gui'
def options
[["--enable-ninja", "Enable Ninja build system support"]]
[["--qt-gui", "Build the Qt-based GUI (cmake-gui)"]]
end
def patches
[
# Correct FindPkgConfig found variable. Remove for CMake 2.8.9.
"https://github.com/Kitware/CMake/commit/3ea850.patch",
# Workaround DeployQt4 issue. Remove for CMake 2.8.9.
"https://github.com/Kitware/CMake/commit/374b9b.patch",
# Protect the default value of CMAKE_FIND_FRAMEWORK so that it can be
# overridden from the command line. Remove for CMake 2.8.9.
"https://github.com/Kitware/CMake/commit/8b2fb3.patch"
]
end
def install
args = %W[
--prefix=#{prefix}
--system-libs
--no-system-libarchive
--datadir=/share/cmake
--docdir=/share/doc/cmake
--mandir=/share/man
]
args << "--qt-gui" if ARGV.include? "--qt-gui"
if ARGV.include? "--enable-ninja"
args << "--"
args << "-DCMAKE_ENABLE_NINJA=1"
end
system "./bootstrap", *args
system "make"
system "make install"
end
def test
system "#{bin}/cmake", "-E", "echo", "testing"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment