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()
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel