+---------------------------------------------------
+ Contents
+---------------------------------------------------
 - Requirements
 - Building from source
 - Building with Eclipse
 - Issues
 - Notes
 - Packaging
 - Source packaging
 - Uninstall

+---------------------------------------------------
+ Requirements
+---------------------------------------------------
 - CMake
 - OpenCV
 - UtiLite library (http://code.google.com/p/utilite/)
 - sqlite3 (only for Unix, the win32 binaries are already added to this project)
 - fftw-3
 - MinGW (only for Windows)
	
 Optionals :
 - [Highly recommended!] Qt4 open source Unix or MinGW (for Windows) to build the GUI
 - cppunit (only for Unix, the win32 binaries are already added to this project)

Note : For Windows users, don't forget to modify the PATH environnement variable.

+---------------------------------------------------
+ Building from source
+---------------------------------------------------
 [Unix]
  > cd build
  > cmake ..
  > make
  > sudo make install

 [Win32]
  > cd build
  > cmake -G "MinGW Makefiles" ..
  > mingw32-make
  > mingw32-make install

Note : Output destination is in {project_root}/bin and {project_root}/lib of this project.

+---------------------------------------------------
+ Building with Eclipse with CDT (c/c++ plugin)
+---------------------------------------------------
 1- Eclipse -> Import existing project -> select this directory
 2- Eclipse -> Make targets -> Avpd -> execute CMake-Unix-Release (CMake-MinGW-Release on Windows)
 3- Eclipse -> Project -> Build All

 - The AutoCompletion should already works... (Project->Properties->C/C++Build->Discovery options)

+---------------------------------------------------
+ Issues
+---------------------------------------------------
 - Webcam issue (Linux):
  > sudo addgroup UserName video
    reboot!
  or
  > sudo chmod 666 /dev/video0
 
 - Video can't be initiated (*.avi) by OpenCV (Linux) :
   Make sure that OpenCV is builded with ffmpeg (ROS binary "turtleBox" openCV package doesn't build with it?!)

+---------------------------------------------------
+ Notes
+---------------------------------------------------
Memory leaks check (Linux):
 >valgrind --tool=memcheck --leak-check=yes ./testCoreLib
  There are some memory errors with vfprintf() or write(), but the more important is at the end of the report in the summary "LEAK SUMMARY".

+---------------------------------------------------
+ Packaging
+---------------------------------------------------
MacOSX (DragNDrop) :
 > cd build
 > cmake -DCMAKE_INSTALL_PREFIX="/" -DBUILD_AS_BUNDLE=ON  ..
 > make -j4
 > make package

MacOSX (.tar.bz2) :
 > cd build
 > cmake -DBUILD_AS_BUNDLE=OFF ..
 > make -j4
 > make package

Ubuntu (.deb, .tar.bz2) :
 > cd build
 > cmake ..
 > make -j4
 > make package

Windows (nsis-exe, zip) :
 (Using Visual Studio Command Prompt to be able to use 'dumpbin')
 > cd build
 > cmake -G"MinGW Makefiles" ..
 > mingw32-make -j4
 > mingw32-make package

+---------------------------------------------------
+ Source packaging
+---------------------------------------------------
UNIX > make package_source
WIN32 > mingw32-make package_source

+---------------------------------------------------
+ Uninstall
+---------------------------------------------------
A target is provided when building from source :
 UNIX > make uninstall
 WIN32 > mingw32-make uninstall

Other files :
 Configuration file : {Home_folder}/.rtabmap
 Working directory : {Home_folder}/Documents/RTAB-Map