Skip to content

Commit

Permalink
Update CMake macro descriptions
Browse files Browse the repository at this point in the history
  • Loading branch information
mosteo committed Sep 19, 2024
1 parent 500f9ce commit 2f0eee3
Showing 1 changed file with 20 additions and 9 deletions.
29 changes: 20 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,25 @@ To simplify the integration of GPR-based Ada projects, the `rclada_common` packa
- `ada_import_interfaces(PKG_NAME[, PKG_NAME...])`
- Causes the generation of the Ada specification files corresponding to messages and services in PKG_NAME (and all recursive dependencies). These files are made available through a GPR project of name `ros2_PKG_interfaces.gpr` (where PKG is the one invoking `ada_import_interfaces`).

- `ada_import_c_headers(LIBNAME INCLUDE_DIR)` is a helper to make C headers available if they are not part of a library.
- LIBNAME is a name that will be used as `clib_LIBNAME.gpr`
- INCLUDE_DIR is the path to make available (like in a `-I` flag)

- `ada_import_c_libraries(ARGN)` is a helper to use C libraries built by other packages.
- ARGN is a list of library files (*.so, *.a) that will be made available to the Ada environment as `clib_*` GPR project files. (E.g., for `libgsl.a` you obtain `clib_gsl.gpr`.)

- `ada_generate_binding(TARGET SRCDIR GPRFILE INCLUDE)` generates a supporting low-level Ada binding for the given C header files, with `g++ -fdump-ada-spec`, that is integrated in a high-level Ada project. The project must provide a `gen` folder in which autogenerated sources will be placed before compilation. Check the [rclada's RCL project](https://github.com/ada-ros/rclada/tree/master/gpr_rcl) for an example.
- `ada_gpr_header(GPRNAME PKGNAME...)` is a helper to make C headers
available from other C/C++ packages.
- GPRNAME is a name that will be used to create `LIBNAME_header_imports.gpr`
- PKGNAME is the package(s) whose include dir will be made available.

- `ada_gpr_link(GPRNAME PKGNAME...)` is a helper to link C libraries built by
other packages.
- GPRNAME is a name that will be used to create `LIBNAME_linker_imports.gpr`
- PKGNAME is the package(s) whose library dependencies will be brought in
for linking. These include any library built by PKGNAME, but also other
libraries on which PKGNAME depends.

- `ada_generate_binding(TARGET SRCDIR GPRFILE INCLUDE)` generates a supporting
low-level Ada binding for the given C header files, with `g++
-fdump-ada-spec`, that is integrated in a high-level Ada project. The project
must provide a `gen` folder in which autogenerated sources will be placed
before compilation. Check the [rclada's RCL
project](https://github.com/ada-ros/rclada/tree/master/gpr_rcl) for an
example.
- TARGET (as above)
- SRCDIR (as above), contains the high-level Ada project.
- GPRFILE (as above)
Expand Down Expand Up @@ -195,7 +206,7 @@ These might help in understanding some of the interrelations amongst ROS2 packag

### Acknowledgements

This project is done with the support of the following entities:
This project exists thanks to the current of former support of the following entities:

* AdaCore, provider of the open source Ada 2012 compiler https://www.adacore.com/community
* The Robotics, Perception and Real-Time group, RoPeRT, http://robots.unizar.es
Expand Down

0 comments on commit 2f0eee3

Please sign in to comment.