Private
Public Access
2
0

Travis CI and Documentation Generation improvements

* Use docker images from docker hub instead of building them on Travis
* Fix doxygen warnings for C/C++ Documentation
* Fix examples inclusion in documentation
* Modify Travis build matrix to include stages and additional jobs
* Update doxygen2jsdoc submodule
* Add doxyport submodule
* Generate documentation for each language in Travis
* Add sonar.java.binaries to sonar-scan.sh

Signed-off-by: Nicolas Oliver <dario.n.oliver@intel.com>
This commit is contained in:
Nicolas Oliver
2017-07-28 10:48:48 -03:00
parent 14bf91af44
commit e0a1862ce3
51 changed files with 486 additions and 434 deletions

View File

@@ -1,4 +1,4 @@
96Boards Development Platform {#96boards}
96Boards Development Platform {#_96boards}
=============================
96Boards is a range of hardware specifications created by Linaro to make the latest ARM-based processors available to developers at a reasonable cost. The specifications are open and define a standard board layout for SoC-agnostic (processor independent) development platforms that can be used by software application, hardware device, kernel and other system software developers. Boards produced to the 96Boards specifications are suitable for rapid prototyping, hobbyist projects or incorporation into new systems for a wide range of applications including desktop and laptop computing, the digital home, digital signage, point of sale (POS), high-end audio, robotics and drones, artificial intelligence, virtual reality, IoT and industrial control.

View File

@@ -4,7 +4,7 @@ libmraa uses cmake in order to make compilation relatively painless. CMake runs
build out of tree so the recommended way is to clone from git and make a `build/`
directory inside the clone directory.
For building imraa check [building imraa](./imraa.md)
For building imraa check @ref buildingimraa page.
## Build dependencies
Not all these are required but if you're unsure of what you're doing this is
what you'll need:
@@ -95,8 +95,10 @@ Building doc, this will require [SPHINX](http://sphinx-doc.org) &
`-DBUILDDOC=ON`
You will also require clone git submodules from your existing checkout:
`git submodule update --init --recursive`
The from doxygen2jsdoc dir:
`npm install mkdirp commander lodash bluebird pegjs`
Then from doxygen2jsdoc dir:
`npm install`
Then from doxyport dir:
`make setup`
Override build architecture (this is useful because on x86 ARM code is not
compiled so use this flag to force the target arch)
@@ -166,7 +168,7 @@ To run, make sure `libmraajava.so` is in `LD_LIBRARY_PATH`
jave -cp $DIR_WHERE_YOU_INSTALLED_MRAA/mraa.jar:. Example
~~~~~~~~~~~~~
If you want to add or improve Java bindings for mraa, please follow the [Creating Java Bindings Guide](https://github.com/intel-iot-devkit/upm/blob/master/docs/creating_java_bindings.md).
If you want to add or improve Java bindings for mraa, please follow the <a href="https://github.com/intel-iot-devkit/upm/blob/master/docs/creating_java_bindings.md">Creating Java Bindings Guide</a>.
## Building an IPK/RPM package using `cpack`
@@ -195,7 +197,8 @@ The [Things Native Library](https://github.com/androidthings/native-libandroidth
[FindAndroidThings.cmake](https://github.com/androidthings/native-libandroidthings/blob/master/FindAndroidThings.cmake). Make sure the directory containing this module is
added to the CMAKE_MODULE_PATH.
#### NDK r14b
### NDK r14b
~~~~~~~~~~~~~{.sh}
cmake -DBUILDSWIG=OFF -DBUILDARCH=PERIPHERALMAN -DANDROID_TOOLCHAIN_NAME=x86-i686 -DCMAKE_TOOLCHAIN_FILE=/path/to/android-ndk-r14b/build/cmake/android.toolchain.cmake -DCMAKE_MODULE_PATH=/path/to/native-libandroidthings ..
~~~~~~~~~~~~~
@@ -212,61 +215,6 @@ Requirements:
**NOTE:** docker-compose is an optional requirement. It actually make running complex
docker build and run command easier. But you can just use docker to build and run.
### Docker Images Hierarchy
To improve build times and images sizes, mraa use a build hierarchy to incrementally
create a build environment. Find below a brief description of them:
1. **mraa-base:** Provides the basic infrastructure and tools to compile C/C++ code and documentation.
2. **mraa-python:** Provides the python2/python3 build tools. Depends on `mraa-base`.
3. **mraa-java:** Provides the Java build tools. Depends on `mraa-base`.
4. **mraa-android:** Provides the Android Things build tools. Depends on `mraa-java`.
5. **mraa-node4:** Provides the Node.js v4.4.7 build tools. Depends on `mraa-base`.
6. **mraa-node5:** Same as `mraa-node4`, but using Node.js v5.12.0.
7. **mraa-sonar:** Provides the tools for running [Sonar Qube](https://www.sonarqube.org/) Scans. Depends on `mraa-base`.
**NOTE:** If you want to know which tools are installed for each of the mraa targets,
just take a look at the `docker/` folder. All the related Dockerfiles are stored there!
### Building Docker Images
**tl;dr:** Just use this commands to build the hierarchy:
```sh
# Build the base image
$ docker-compose build base
# Build python image
$ docker-compose build python
# Build java image
$ docker-compose build java
# Build node4 image
$ docker-compose build node4
# Build node5 image
$ docker-compose build node5
# Build android things image
$ docker-compose build android
# Build sonar image
$ docker-compose build sonar-scan
```
**docker-compose** will take a look at the `docker-compose.yaml` file in the repository
root directory, and build the requested target for you. At the end, docker-compose will
tag the image built with an `mraa-` prefix. You can check them by running `docker images`.
If you don't want to use docker-compose, you can also use `docker build` to generate every image.
For example, to create the base image, you can do:
```sh
# From the repository root folder
$ docker build -d docker/Dockerfile.base -t mraa-base .
```
Now, you don't actually need to build every image to start working. Let's say you
are a Python developer, and has no idea what Node.js is, just build the base and
python image!
**NOTE:** If you work on Android Things, you will need the base, java, and android image.
### Using Docker Images to build Mraa
**tl;dr:** Just use this commands to build mraa:
@@ -284,6 +232,8 @@ $ docker-compose run java
$ docker-compose run node4
# Build mraa node5 package
$ docker-compose run node5
# Build mraa node6 package
$ docker-compose run node6
# Build mraa for android things package
$ docker-compose run android
# Run Sonar Qube Scans for mraa
@@ -291,7 +241,8 @@ $ docker-compose run sonar-scan
```
**docker-compose** will take a look at the `docker-compose.yaml` file in the repository
root directory, and run an specific command to build mraa for the requested target.
root directory, pull the required docker image, and run an specific command to build
mraa for the requested target.
Once the build is completed, you will have a `build/` folder in the repository root with all
the compiled code. This `build/` folder is created by using a docker volume. The `build\`
folder contents is reused each time you execute `docker-compose run [TARGET]`.
@@ -318,7 +269,7 @@ $ docker run \
--env BUILDSWIGPYTHON=ON \
--env BUILDSWIGJAVA=OFF \
--env BUILDSWIGNODE=OFF \
mraa-python \
dnoliver/mraa-python \
bash -c "./scripts/run-cmake.sh && make -Cbuild _python2-mraa"
```
@@ -332,25 +283,6 @@ to proxy settings:
Visit [this link](https://docs.docker.com/engine/admin/systemd/#httphttps-proxy)
to configure docker daemon behind a proxy.
**docker build fails to fetch packages from internet**
docker-compose will automatically take `http_proxy`, `https_proxy`, and `no_proxy`
environment variables and use it as build arguments. Be sure to properly configure
this variables before building.
docker, unlinke docker-compose, do not take the proxy settings from the environment
automatically. You need to send them as build arguments:
```sh
# From the repository root folder
$ docker build \
-d docker/Dockerfile.base \
--build-arg http_proxy=$http_proxy \
--build-arg https_proxy=$https_proxy \
--build-arg no_proxy=$no_proxy \
-t mraa-base .
```
**docker run fails to access the internet**
docker-compose will automatically take `http_proxy`, `https_proxy`, and `no_proxy`
@@ -371,6 +303,6 @@ $ docker run \
--env http_proxy=$http_proxy \
--env https_proxy=$https_proxy \
--env no_proxy=$no_proxy \
mraa-python \
dnoliver/mraa-python \
bash -c "./scripts/run-cmake.sh && make -Cbuild _python2-mraa"
```

View File

@@ -1,5 +1,6 @@
{#grossetete}
Grosstete {#grossetete}
=========
You probably meant to go here: @joule.
You probably meant to go here: @ref joule.
Note: This page will be deleted in the future, don't link to it!

View File

@@ -6,7 +6,7 @@ MRAA_GENERIC_FIRMATA subplatform to the first process that calls imraa_init
## Build dependencies
To build imraa, you'll need to build mraa with -DIMRAA=ON and all the normal
dependencies for build mraa, see [Building mraa](./building.md).
dependencies for build mraa, see @ref building page.
You'll also need the following:
* [dfu-utils-cross](https://github.com/arduino/dfu-utils-cross) or dfu 0.8 (0.9
does not work well with the 101). Precompiled binaries can be found on

View File

@@ -56,7 +56,7 @@ Specific platform information for supported platforms is documented here:
Sometimes it just doesn't want to work, let us try and help you, you can file
issues in github or join us in #mraa on freenode IRC, hang around for a little
while because we're not necessarily on 24/7, but we'll get back to you! Have a
glance at our @debugging page too
glance at our @ref debugging page too
## COMPILING

View File

@@ -56,7 +56,7 @@ Specific platform information for supported platforms is documented here:
Sometimes it just doesn't want to work, let us try and help you, you can file
issues in github or join us in #mraa on freenode IRC, hang around for a little
while because we're not necessarily on 24/7, but we'll get back to you! Have a
glance at our @debugging page too
glance at our @ref debugging page too
## COMPILING

View File

@@ -26,7 +26,8 @@ See [SPI mock header](../include/mock/mock_board_spi.h#L38-L39) for constant val
* Single UART port. All functions are supported, but many are simple stubs. Write
always succeeds, read returns 'Z' symbol as many times as `read()` requested.
We plan to develop it further and all [contributions](../CONTRIBUTING.md) are more than welcome.
We plan to develop it further and all contributions are more than welcome. See our
@ref contributing page for more information.
See the table below for pin layout and features
@@ -47,7 +48,7 @@ Building
--------
Generally all the building steps are the same as listed
in the [main building guide](./building.md), you just need to set some specific
in the main @ref building guide, you just need to set some specific
CMake options.
### Linux