
How to setup and compile the latest source code of PySide under Mac OS X
Prerequisites
Before starting to download and compile, PySide sources you must have some things installed on your system:
The primer
PySide has a useful collections of scripts to be used as a primer to compile the whole project. Start from cloning the scripts folder:
git clone git://gitorious.org/pyside/buildscripts.git pyside-sources |
Now move inside the new pyside-sources folder and clone all the PySide sub-projects:
cd pyside_sources git clone git://gitorious.org/pyside/apiextractor.git git clone git://gitorious.org/pyside/generatorrunner.git git clone git://gitorious.org/pyside/shiboken.git git clone git://gitorious.org/pyside/pyside.git git clone git://gitorious.org/pyside/pyside-tools.git |
If you want to leave all the source code folders up to date with the repository head you can copy&paste this script, saving it as pull_all.sh and making it executable:
#!/usr/bin/env bash alldirs=("apiextractor" "generatorrunner" "shiboken" "pyside" "pyside-tools") for d in "${alldirs[@]}" ; do cd $d git pull cd .. done |
Install dependencies
To install the PySide project dependencies under Mac OS X you have two options.
The first one is to use the dependencies.osx.sh script which needs Brew to be installed in the system; in this case just run this command to automatically install all you need:
./dependencies.osx.sh |
The other option is to use MacPorts to install the PySide needs:
sudo port -v install libxml2 sudo port -v install libxslt sudo port -v install cmake |
Anyway, if you are going to compile PySide against Python 2.7 run cmake --help and check if you are using the 2.8.4+ version of CMake which is the first release which can detect the 2.7 version of Python.
Setup environment variables
Open the environment.sh file and setup the path of your Python installation as the PYSIDESANDBOXPATH environment variable, also change all references from Python 2.6 to 2.7.
Compile source code
I did a little changes in the standard PySide build script to match my needs. In details, I commented the rm -rf "$d/build" and added sudo to the make install command. The script looks like that at the end of my changes:
#!/usr/bin/env bash alldirs=("apiextractor" "generatorrunner" "shiboken" "pyside" "pyside-tools") if [ $# == 0 ] ; then dirs=("${alldirs[@]}") else dirs=("$@") fi for d in "${dirs[@]}" ; do mkdir -p "$d/build" ( source environment.sh if [ "`uname -s`" == "Darwin" ]; then # When running on Mac OS X, we need to specify the # Qt include dir for the header files to be found. echo "$0: Mac OS X detected (uname -s gave 'Darwin')." PYSIDE_BS_CMAKE_FLAGS="-DALTERNATIVE_QT_INCLUDE_DIR=/Library/Frameworks/" else # On Non-OS X builds, we enable this to fix a gcc bug PYSIDE_BS_CMAKE_FLAGS="-DENABLE_GCC_OPTIMIZATION=On" fi cd "$d/build" cmake .. -DCMAKE_INSTALL_PREFIX=$PYSIDESANDBOXPATH \ -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -DENABLE_ICECC=0 \ $PYSIDE_BS_CMAKE_FLAGS \ && make && sudo make install || exit 1 ) || exit 1 # If you are experiencing problems on OS X, uncomment the # following line to update the run-time linker cache: # sudo ldconfig done |
Now you can run it and take a long long break
The end
Now you are ready to import the PySide module. Add the Python lib folder to the system library path:
export DYLD_LIBRARY_PATH=/Library/Frameworks/Python.framework/Versions/2.7/lib |
Now open the Python console end try to import the PySize module:
$ python Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) [GCC 4.2.1 (Apple Inc. build 5664)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import PySide >>> PySide.__version__ '1.0.1' |
