Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Marc-Antoine ARNAUD committed Jan 5, 2012
1 parent 5642052 commit 80bc526
Show file tree
Hide file tree
Showing 34 changed files with 3,599 additions and 0 deletions.
14 changes: 14 additions & 0 deletions .gitignore
@@ -0,0 +1,14 @@
# temporary files
*~
.*.swp # vim
*.flc # xemacs
.DS_Store # MacOS
Thumbs.db # Windows


# removing dist folder : folder receiving the compilation products
/dist
/.build

/python/sequenceParser.py
/python/sequenceParser_wrap.cxx
63 changes: 63 additions & 0 deletions INSTALL
@@ -0,0 +1,63 @@
sequenceParser - install HOWTO


Why Boost.Build ?
=================

sequenceParser relies heavily on the Boost library, so instead of using one of
the many multiplatform build system available like Scons, CMake, Autotools
we're simply using Boost.Build, the build system embedded within Boost.

Boost.Build is powerful yet very expressive and terse. It's a weapon of
choice when building large pieces of code with a lot of dependencies.

An excellent introduction to Boost.Build can be found here
http://www.highscore.de/cpp/boostbuild/

And the official documentation is available online
http://www.boost.org/boost-build2/doc/html/
or in your boost copy at $(BOOST_ROOT)/tools/build/index.html


Setting up the build process
============================

* Building the building tool (the build-ception...)

- First grab Boost from the website ( http://www.boost.org/ )
- Uncompress the archive somewhere.
- Open a terminal and go to the boost root folder, then type
Linux / MacOsX : ./bootstrap.sh
Windows : bootstrap.bat

This will generate a 'b2' executable.

* Setting up environment variables

In order to use Boost.Build you have to set the BOOST_ROOT
environment variable.

Linux / MacOsX : export BOOST_ROOT=/your/path/to/boost/root
Windows : set BOOST_ROOT=C:\your\path\to\boost\root

Note : You can add it to your ~/.bashrc, ~/.profile
or to your Windows environment to make it persistent.


Building
========

* Choose the appropriate script depending on your platform
Linux : ./build-linux-gcc.sh
MacOSX : comming soon
Windows : comming soon

* Run it with one or more of the following command line arguments
--help : Display help message
--clean : Remove targets instead of building
variant=release : build the release version ( by default is the debug version )

: without argument, full build & installation (without unit test)
sequenceLibrary : Build only the C++ library
test : Build & run unit test suite

83 changes: 83 additions & 0 deletions Jamroot
@@ -0,0 +1,83 @@

import type ;

local BOOST_ROOT = [ modules.peek : BOOST_ROOT ] ;

use-project /boost : $(BOOST_ROOT) ;
use-project /test : test ;

if ! [ type.registered BINDINGPYTHON ]
{
type.register BINDINGPYTHON : : SHARED_LIB ;
type.change-generated-target-prefix BINDINGPYTHON : : "_" ;
}

project
: requirements
<include>src
<include>include
<library>/boost//system
<library>/boost//filesystem
<library>/boost//regex
: usage-requirements
<include>include
<library>/boost//system
<library>/boost//filesystem
<library>/boost//regex
:
build-dir .build/
;

lib sequence
:
[ glob src/*.cpp ]
;

make buildBindingSwig : python/sequenceParser.i : @swigCpptoPython ;
actions swigCpptoPython
{
swig -c++ -python -I. $(>)
}

bindingpython sequenceParser
:
[ glob python/*.cxx ]
sequence
/python
:
<include>.
;

install sequenceLibrary
:
sequence
:
<install-dependencies>on
<install-type>SHARED_LIB
<variant>debug:<location>dist/debug
<variant>release:<location>dist/release
;

install bindingPython
:
[ glob python/sequenceParser.py ]
:
<variant>debug:<location>dist/debug
<variant>release:<location>dist/release
;

install bindingPythonLibrary
:
sequenceParser
:
<variant>debug:<location>dist/debug
<variant>release:<location>dist/release
<install-dependencies>off
<install-type>BINDINGPYTHON

;




explicit test ;

0 comments on commit 80bc526

Please sign in to comment.