homebrew-core/Formula/py2cairo.rb
nibbles 2bits 80caee1fa5 py2cairo: fix miscompile on Lion. Use LINKFLAG.
waf miscompiles py2cairo on Lion, linking the wrong Python Library when
HB Python is installed.  So add a LINKFLAG that sets the path to the real
python Library as determined by `python-prefix`, where it gets used at
link time and fixes the problem where you can't import cairo into Python.
Also add a `fails_with :llvm` block to work around a build error where
waf tries to optimize with `-march=native` which llvm doesn't accept.

https://bugs.freedesktop.org/show_bug.cgi?id=51544

Tested on Lion and SL using system Python, HB framework Python,
HB non-framework Python with clang building both native and
universal binaries, by importing the cairo module into Python.

Rebased on Homebrew 0.9.2

Fixes Homebrew/homebrew#12893

Closes Homebrew/homebrew#12943.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-07 02:53:05 -05:00

50 lines
1.5 KiB
Ruby

require 'formula'
class Py2cairo < Formula
homepage 'http://cairographics.org/pycairo/'
url 'http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2'
md5 '20337132c4ab06c1146ad384d55372c5'
depends_on 'cairo'
depends_on :x11
fails_with :llvm do
build 2336
cause "The build script will set -march=native which llvm can't accept"
end
def options
[['--universal', 'Build universal binaries']]
end
def install
# Python extensions default to universal but cairo may not be universal
unless ARGV.build_universal?
ENV['ARCHFLAGS'] = if MacOS.prefer_64_bit?
"-arch x86_64"
else
"-arch i386"
end
end
# waf miscompiles py2cairo on Lion, linking the wrong Python Library when
# HB Python is installed. So add a LINKFLAG that sets the path to the real
# python Library as determined by `python-prefix`, where it gets used at
# link time and fixes the problem where you can't import cairo into Python.
# https://github.com/mxcl/homebrew/issues/12893
# https://bugs.freedesktop.org/show_bug.cgi?id=51544
ENV['LINKFLAGS'] = "-L#{%x(python-config --prefix).chomp}/lib"
system "./waf", "configure", "--prefix=#{prefix}", "--nopyc", "--nopyo"
system "./waf", "install"
end
def caveats; <<-EOS.undent
For non-homebrew Python, you need to amend your PYTHONPATH like so:
export PYTHONPATH=#{HOMEBREW_PREFIX}/lib/#{which_python}/site-packages:$PYTHONPATH
EOS
end
def which_python
"python" + `python -c 'import sys;print(sys.version[:3])'`.strip
end
end