Hi, On Sun, May 18, 2014 at 10:05 AM, Toby St Clere Smithe <pyvienn...@tsmithe.net> wrote: > Hi JB, > > Marquette Jean-Baptiste <marqu...@iap.fr> writes: >> I could contribute, though I just opened an issue about a compilation >> error on Mavericks 10.9.3. Curiously, the source install seems OK on >> Lion 10.7.5 > > Great! The issue is because Mavericks has a more recent version of clang > than Lion, and the recent version baulks at something technical in > boost's C++ usage that I can't quite be bothered to understand. Anyway, > I've cherry-picked a fix, if you'd like to try building from git. > > If that works, then we could probably cheat, and call that build 1.0.3 > as well, since there are no material changes to PyViennaCL itself. Would > you be happy to build Python wheels? It's very simple: just `setup.py > bdist_wheel` if you have the wheel module installed.
That works for me with the patch. I suggest building the wheel against the python.org python; the wheel is then compatible with system python, homebrew etc - see : https://github.com/MacPython/wiki/wiki/Spinning-wheels I then rename the wheel to express the fact it is compatible with these versions, with something like the attached script. This ends up renaming the default output wheel: pyviennacl-1.0.3-cp27-none-macosx_10_6_intel.whl to this: pyviennacl-1.0.3-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl Here are checks showing that this build / rename process does in fact work for homebrew, macports for numpy / scipy / matplotlib / pandas etc (the failures are real test failures, not packaging errors): https://travis-ci.org/matthew-brett/scipy-stack-osx-testing/builds/25131865 (thanks to Matt Terry for the basis of the script to do this testing). I checked with the `delocate` `delocate-listdeps` utility, and you are only linking to stuff in the OSX System directories, and you don't need to use `delocate-wheel`. Cheers, Matthew
#!/usr/bin/env python """ Rename MacPython wheels for system python and homebrew """ from __future__ import print_function import os from os.path import expanduser, splitext import sys from wheel.install import WheelFile POP_PLAT_TAG = 'macosx_10_6_intel' SYS_PLAT_TAG = 'macosx_10_9_intel' BREW_PLAT_TAG = 'macosx_10_9_x86_64' def main(): paths = sys.argv[1:] for path in paths: path = expanduser(path) whl_obj = WheelFile(path) tags = list(whl_obj.tags) plat_tags = [plat for pyver, abi, plat in tags] if plat_tags == [POP_PLAT_TAG]: fore, aft = splitext(path) new_path = '{0}.{1}.{2}{3}'.format( fore, SYS_PLAT_TAG, BREW_PLAT_TAG, aft) os.rename(path, new_path) if __name__ == '__main__': main()
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion