DEVELOPMENT.md 3.02 KB
Newer Older
Arnaud Blanchard's avatar
Arnaud Blanchard committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

DEVELOPMENT 
=============

Compiling
--------------
Use `./compile.sh <project directory> [Release|Debug|RelWithDebugInfo|RelMinSize]` (blc, blv4l2, ...)

The binaries will be in `build/<Release|Debug|RelWithDebugInfo|RelMinSize>`and the libraries in the subdirectory `lib`.
The cmake builds will be in  `build/cmake_files_<Release|Debug|RelWithDebugInfo|RelMinSize|eclipse|xcode>/`.

`build/` is a symbolic link toward a real directory which is outside your current directory usually :`../blaar_build`.
The prefix automatically takes the value of your directory (i.e. if you are in `test_blaar/` the real build directory will be `../test_blaar_build/`. This allows you to have different versions in different directories (we recommend to use git branches instead of different copies). 

When your are coding on your project you should use `./run.sh <project directory>` instead of directly calling your binary. Like this, you are sure to use the last compilation of your code. **./run.sh** automatically compiles you code before executing it.


The compile and install process uses [CMake](https://cmake.org). The intermediate files generated are in `build/cmake_files_<Release|Debug|RelWithDebugInfo|RelMinSize|eclipse|xcode>` . Do not hesitate to remove them to solve problems during cmake compilation.


Remove the **cmake_files_<Release|Debug|RelWithDebugInfo|RelMinSize|eclipse|xcode> as soon 

Installing
----------

Some projects like the libraries need to be installed. In this case you can do `./install <project> [<Release|Debug|RelWithDebugInfo|RelMinSize>]`

This will compile and install the project. You can use it for all the projects enven those which does not need install. You computer password may be requested.

If you want install all the submodules use `all`: **`./install.sh all [<Release|Debug|RelWithDebugInfo|RelMinSize>]`**
If your project is not a git submodule it will not be installed and compiled. Use `./run.sh` as explained above.

Debugging
---------------
In case of problem you may debug: `./debug.sh <project directory>` or realize memory check with valgrind: `./valgrind.sh <project directory>`. The project is automatically recompiled in debug mode and the appropriate debugger (gdb, lldb, valgrind) is called.

If the problem appear in another project you may reinstall all the projects in Debug mode:  ` ./install.sh all Debug`

Eclipse
----------
```bash
./eclipse_create_project.sh <project dir>
```
Follow the instruction to import the project

If you want to debug: **debug->debug configurations->new C/C++ application->browse: `<blaar_build>/Debug/<project>`**

Xcode (Mac OSX)
-----------------------
```bash
./xcode_project <project>
```
**xcode** will be automatically launched with the project

Source documentation
====================

To build the source documentation with **doxygen**: `./doc_api.sh <project>`.
Add  **-c** option if you want only the C accessible API. 

The built documentation will be opened automatically. For information, it is in `build/<cpp_api|c_api>/<project>/html/index.html` and will be opened automatically.