Home | Download/Install | Documentation | Packages | Screenshots | News | Forum/Mailing-lists | Contact | GForge

Build and Install framework

Introduction

The OpenAlea project intends to facilitate the creation of new packages and the reuse of existing code and libraries.

OpenAlea can be view as a set of autonomous or dependant packages. The package framework has been guided with the following objectives.

  • Minimal dependencies between packages : a package can be autonomous and then developed and installed without other packages.
  • An uniform installation system : all OpenAlea packages are installed as Egg file. (See setuptools).
  • Share libraries and code : Binary packages can share compiled library.
  • Hybrid packaging : a package can be a pure Python package or a C++/Python package and must be treated in the same way.

Package standard

We define the minimal requirements for an OpenAlea package in term of system installation (Nota : we define other requirement in term of license, documentation…).

  • Package Python bindings are accessible in the python openalea namespace,
  • Dynamic libraries can be linked within another package,
  • Platform dependant library can be compiled on Windows and Linux platforms,
  • Header file and libraries of all OpenAlea package are packaged and distributed to encourage reuse and compatibility.

OpenAlea build tools

The build and Install process is composed by different steps:

  • Configuration : determine system compiler, libraries, installation directory.
  • Build : create the libraries with the source files (Python and C++)
  • Installation : Install the build library or create binary installers (windows and linux)

We develop in that context different tools to compile Python/C++ packages and we define rules to install python modules and shared C++ libraries on any system.

OpenAlea.Deploy is an extension of setuptools and allows to install shared binary library in a egg. OpenAlea.SConsX is able to configure and build system dependant libraries and resources on different platform

This set of tools are provided to facilitate the creation of packages, but are not mandatory. A package can use other tools, but it has to respect OpenAlea package installation rules.

Example

The starter package can be used as a base structure for any package.

Installation Layout

A standard OpenAlea install will consist of:

  • A python namespace in the standard python path (usually python site-package)
  • A set of python package and wrapped library in this OpenAlea namespace

Build

If a package need compilation (if it include C++ library and wrappers), we highly recommend to use the SCons portable build tool.

We develop the SConsX which extends SCons functionality and especially for building boost.python package. It tends to resolve common configuration problems on different platform.

Installation

OpenAlea packages contain Python modules. We recommend to use the setuptools python library to manage installation process.

We provide OpenAlea.Deploy which extends Setuptools. It allows to call scons directly from the setup.py script and install external data and shared libraries.

 
documentation/package/build_and_install_framework.txt · Last modified: 2010/09/14 10:29 by user   Back to top
INRIA   INRA     CIRAD     AGROPOLIS
INRIA GForge RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki