The Easy Way

With this repository, you can automate the build steps outlined in this Wiki page. It also takes care of installing the correct prerequisite packages for your distribution (i.e. use sudo ./dependencies.ubuntu.sh to install build dependencies on Debian or Ubuntu). If there is no dependencies script for your distribution, please submit a patch. See the README[github.com] file for detailed usage instructions.

Overview

PySide consists of a chain of four interdependent packages:

The API Extractor library is used by the bindings generator to parse the header and typesystem files to create an internal representation of the API. It is based on the QtScriptGenerator[labs.trolltech.com] codebase.

The Generator Runner (A.K.A. generatorrunner) is the program that controls the bindings generation process according to the rules given by the user through headers, typesystem files and generator front-ends (such as Shiboken Generator). It depends on API Extractor library.

The Shiboken Generator (A.K.A. shiboken) is the plugin that creates the PySide bindings source files from Qt headers and auxiliary files (typesystems, global.h and glue files). It depends on Generator Runner and API Extractor library.

PySide Qt bindings (A.K.A. pyside) is the set of typesystem definitions and glue code that allows generation of Python Qt binding modules using the PySide toolchain. It depends on the Shiboken libraries and Generator Runner.

There is also an optional package called pyside-tools which provides some useful utilities for creating PySide applications. If you don’t want or need that package, skip the commands that say “pyside-tools” in them in the scripts below.

Getting the source code

The source code for the current stable release can be downloaded from PySideDownloads.

Alternatively, you can get the latest development branch from the repos:

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

Building and installing

Sandbox

If you wish to install PySide into a local sandbox then follow these instructions, otherwise you can skip this step.

We will assume that PYSIDESANDBOXPATH will be the path to your local sandbox.

It makes sense to place these variables in a shell script that you can reference whenever you need to work with the PySide bindings from the sandbox (especially if you have a system-wide installation of PySide as well).

In the next step replace cmake with runcmake, and sudo make install.

Building

For each package in order (apiextractor, generatorrunner, shiboken, pyside), run the following commands:

mkdir build

cd build

cmake ..

make

sudo make install

Depending on the package and whether there is an existing library with the same version number already installed, you might need to run ldconfig to update the run-time linker cache.

sudo ldconfig

That’s it! PySide should now be successfully built!

Practical tips

Use build scripts for a successful life

Especially if you are just interested in tracking the PySide head, you might be interested in using the following utility scripts.