2014-06-24 17:24:54 +01:00
|
|
|
Building libmraa {#building}
|
2014-05-29 14:51:38 +01:00
|
|
|
===============
|
|
|
|
|
|
2014-06-24 17:24:54 +01:00
|
|
|
libmraa uses cmake in order to make compilation relatively painless. Cmake runs
|
2014-05-29 14:51:38 +01:00
|
|
|
build out of tree so the recommended way is to clone from git and make a build/ directory.
|
|
|
|
|
|
2014-07-03 09:40:09 +01:00
|
|
|
You'll need swig version 3.0.1+, currently I'm using
|
|
|
|
|
8d226e39dc7a958013ff9ffd15e231ef206ba265 from the swig master branch. This is
|
|
|
|
|
only required for javascript support and can be disabled with a cmake define
|
|
|
|
|
(see below).
|
|
|
|
|
|
2014-05-29 14:51:38 +01:00
|
|
|
~~~~~~~~~~~~~{.sh}
|
|
|
|
|
mkdir build
|
|
|
|
|
cd build
|
|
|
|
|
cmake ..
|
|
|
|
|
make
|
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
|
|
2014-11-09 12:26:09 +00:00
|
|
|
Our cmake configure has a number of options, cmake-gui or ccmake can show you
|
|
|
|
|
all the options. The interesting ones are detailed below:
|
2014-05-29 14:51:38 +01:00
|
|
|
|
|
|
|
|
Few recommended options:
|
|
|
|
|
Changing install path from /usr/local to /usr
|
2014-11-09 12:26:09 +00:00
|
|
|
-DCMAKE_INSTALL_PREFIX:PATH=/usr
|
2014-05-29 14:51:38 +01:00
|
|
|
|
|
|
|
|
Building debug build:
|
2014-11-09 12:26:09 +00:00
|
|
|
-DCMAKE_BUILD_TYPE=DEBUG
|
2014-05-29 14:51:38 +01:00
|
|
|
|
|
|
|
|
Using clang instead of gcc:
|
|
|
|
|
-DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang
|
|
|
|
|
|
2014-07-03 09:40:09 +01:00
|
|
|
Building with an older version of swig (swig 2.0+) requires the disabling of javascript:
|
|
|
|
|
-DBUILDSWIGNODE=OFF
|
2014-10-03 19:00:45 +01:00
|
|
|
|
2014-11-09 12:26:09 +00:00
|
|
|
Disabling python module building
|
|
|
|
|
-DBUILDSWIGPYTHON=OFF
|
|
|
|
|
|
|
|
|
|
Building doc, this will require sphinx & doxygen
|
|
|
|
|
-BUILDDOC=ON
|
|
|
|
|
|
2014-11-10 20:48:27 +00:00
|
|
|
Using a yocto/oe toolchain
|
|
|
|
|
--------------------------
|
|
|
|
|
|
|
|
|
|
In order to compile with a yocto/oe toolchain use the following toolchain file.
|
|
|
|
|
This works well on the edison 1.6 SDK. First source the environment file, then
|
|
|
|
|
use our cmake toolchain file.
|
|
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~{.sh}
|
|
|
|
|
source /opt/poky-edison/1.6/environment-setup-core2-32-poky-linux
|
|
|
|
|
mkdir build
|
|
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/oe-sdk_cross.cmake ..
|
|
|
|
|
make
|
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
|
|
2014-10-03 19:00:45 +01:00
|
|
|
Using coverity
|
|
|
|
|
--------------
|
|
|
|
|
|
|
|
|
|
Static analysis is routinely performed using coverity on libmraa's codebase.
|
|
|
|
|
This is the procedure to submit a build to coverity. You'll need to install
|
|
|
|
|
coverity-submit for your OS.
|
|
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~{.sh}
|
|
|
|
|
mkdir covbuild/ && cd covbuild
|
|
|
|
|
cmake -DBUILDDOC=OFF -DBUILDSWIG=OFF ..
|
|
|
|
|
cmake -DBUILDDOC=OFF -DBUILDSWIG=OFF ..
|
|
|
|
|
cov-build --dir cov-int make
|
|
|
|
|
tar caf mraa.tar..bz2 cov-int
|
|
|
|
|
~~~~~~~~~~~~~
|