aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Formula')
-rw-r--r--Library/Formula/libxml2.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/Library/Formula/libxml2.rb b/Library/Formula/libxml2.rb
index 31053a0dd..dcc0afcf9 100644
--- a/Library/Formula/libxml2.rb
+++ b/Library/Formula/libxml2.rb
@@ -19,6 +19,15 @@ class Libxml2 < Formula
]
end
+ def patches
+ # Libxml2 is a dupe and now we see why that's a bad idea.
+ # Python's distutils are so smart to remember the LD command from
+ # when python was built and therefore finds the libxml2 in Xcode first.
+ # The LDFLAGS don't help, because python puts them _after_ the remembered
+ # flags.
+ DATA unless MacOS::CLT.installed?
+ end
+
def install
ENV.universal_binary if ARGV.build_universal?
@@ -41,6 +50,11 @@ class Libxml2 < Formula
ENV.append 'CFLAGS', arch_flags
ENV.append 'LDFLAGS', arch_flags
+ unless MacOS::CLT.installed?
+ # For Xcode-only systems, the libiconv headers are inside of Xcode.
+ # We can replace /opt/include with our path to achieve that
+ inreplace 'setup.py', '"/opt/include",', "\"#{MacOS.sdk_path}/usr/include\","
+ end
system "python", "setup.py", "install_lib",
"--install-dir=#{python_lib}"
end
@@ -51,3 +65,19 @@ class Libxml2 < Formula
"python" + `python -c 'import sys;print(sys.version[:3])'`.strip
end
end
+
+__END__
+diff --git a/python/setup.py.in b/python/setup.py.in
+index b985979..d6ccf2e 100755
+--- a/python/setup.py.in
++++ b/python/setup.py.in
+@@ -13,6 +13,9 @@ ROOT = r'@prefix@'
+ # Thread-enabled libxml2
+ with_threads = @WITH_THREADS@
+
++import distutils.sysconfig as sc
++sc.get_config_vars()['LDSHARED']=os.environ['LD'] + ' -bundle -undefined dynamic_lookup -L' + ROOT + '/lib ' + os.environ['LDFLAGS']
++
+ # If this flag is set (windows only),
+ # a private copy of the dlls are included in the package.
+ # If this flag is not set, the libxml2 and libxslt