| layout | page |
|---|---|
| title | Developers |
| permalink | /devel/ |
- git
- cmake
- gcc (>= 4.7)
- boost (>=1.49.0)
- R (>= 3.0) + Rcpp package
- Matlab (>=R2011a) or Octave (>=3.6.4)
- PuTTY
- Git + TortoiseGit
- CMake
- MinGW (do not add to
PATH) - R (add to
PATH:C:\Program Files\R\R-3.0.2\bin) + Rcpp package - Rtools (add to
PATH:C:\Rtools\gcc-4.6.3\bin) - RStudio
- NSIS 2.46
- MikTeX
- Matlab
- Octave (MinGW port): http://wiki.octave.org/Octave_for_Microsoft_Windows#MinGW_ports
- Eclipse CDT (32 bit) + CDT update site + CMakeEd plugin + EGit plugin
- clink: http://mridgers.github.io/clink/
- XCode + command line tools
- Git
- CMake
- MacPorts with autoconf
sudo ports install autoconf
- R + Rcpp package
- RStudio
- MacTex
- Matlab
- Octave
sudo ports install octave
- Eclipse CDT (64 bit) + CDT update site + CMakeEd plugin + EGit plugin
Instructions for compiling boost libraries on Windows 7 64bit using gcc compiler from Rtools.
gcc must be in the PATH e.g. C:\Rtools\gcc-4.6.3\bin
- Download Boost for Windows and extract the archive
- Open console (
cmd) and place yourself in the extracted folder - Compile Boost.Build using Visual C++ compiler.
cl.exemust be in thePATHe.g.C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
bootstrap
- Compile the desired libraries for 64bit architecture and install in the subdirectory
stage\lib
b2 toolset=gcc address-model=64 --build-type=complete --with-program_options stage
- Compile the desired libraries for 32bit architecture and install in the subdirectory
stage32\lib
b2 toolset=gcc address-model=32 --stagedir=stage32 --build-type=complete --with-program_options stage
Instructions for compiling boost libraries on Mac OSX using XCode compiler.
- Download Boost for Linux and extract the archive
- Open the terminal and place yourself in the extracted folder
- Compile Boost.Build
./bootstrap.sh
- Compile the desired libraries and install in the subdirectory
stage/lib
./b2 --build-type=complete --layout=versioned --with-program_options stage
and especially http://git-scm.com/book/en/Git-Basics-Recording-Changes-to-the-Repository
Anonymous access (read-only):
git clone https://gforge.inria.fr/git/biips/biips.git
GForge user access:
git clone git+ssh://<username>@scm.gforge.inria.fr//gitroot/biips/biips.git
See status
git status -s
Add new files or files already tracked to STAGED zone
git add file
Commit STAGED zone
git commit
Commit STAGED zone and all modifications of files already tracked (without having to do git add)
git commit -a
git push origin my_branch
Ex. for master branch:
git push origin master
git branch -a
git branch new_branch [source_branch]
git checkout new_branch
or
git checkout -b new_branch [source_branch]
git pull origin my_branch
Continuous integration is hosted on Inria CI.
You first need an account on CI website.
After logging in the CI website, go to MyAccount page and add your ssh public key.
Ask the Biips administrators to give you access to the project.
- Ubuntu 12.04 amd64
- Windows 7 64bit
On CI website, go to your Dashboard.
In the Biips box, click Manage Project and then click Slaves on the left panel.
Click the Connect button on the desired slave to get connection commands that include your username.
- source file:
MyClass.cpp - header file:
MyClass.hpp // one class by file - class:
MyClass - private/protected member:
myMember_ - public member:
MyMember_ - private/protected method:
myMethod - public method:
MyMethod - argument:
myArgument - local variable:
my_variable - pointer:
pObject, p_object, _pObject - namespace:
MyNamespace - iterator:
iter_container - constant:
MY_CONSTANT - enum item:
MY_ITEM
- Everything is in the namespace
Biips
#ifndef BIIPS_MYCLASS_HPP_
#define BIIPS_MYCLASS_HPP_
#endif /* BIIPS_MYCLASS_HPP_ */
- All primitive types are redefined in
BiipsTypes.hpp - destructor must be virtual
- virtuel inherited methods must be declared virtual
- Do not use
#ifndef #definein.cpp - Do not access the content of a null pointer or shared_ptr null
- Do not create a shared_ptr with an object not dynamically allocated
- Do not define a template function in a source file (only in headers)
- Library linking order : The traditional behavior of linkers is to search for external functions from left to right in the libraries specified on the command line. This means that a library containing the definition of a function should appear after any source files or object files which use it.
- Do not pass-by-copy a polymorphic object