Skip to content
Snippets Groups Projects
Commit 702792bd authored by Joaquim Casals Buñuel's avatar Joaquim Casals Buñuel
Browse files

Quick update to reflect last changes to plugin system

parent 4db0d6f8
No related branches found
No related tags found
No related merge requests found
Pipeline #3647 passed
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
## Installing wolf(core) ## Installing wolf(core)
``` ```
git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/core.git git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/wolf.git
cd core cd wolf
mkdir build & cd build mkdir build & cd build
cmake .. cmake ..
make make
...@@ -32,8 +32,8 @@ If you want to use the core, you just need to have it installed and in your CMak ...@@ -32,8 +32,8 @@ If you want to use the core, you just need to have it installed and in your CMak
`find_package(wolf REQUIRED)`. `find_package(wolf REQUIRED)`.
If wolf is indeed installed, this will define two variables If wolf is indeed installed, this will define two variables
`${wolf_INCLUDE_DIR}` which will contain the path to the wolf include directory `${wolf_INCLUDE_DIRS}` which will contain the path to the wolf include directory
and `${wolf_LIBRARY}` which will contain the path to the wolf library. and `${wolf_LIBRARIES}` which will contain the path to the wolf library.
## Using wolf plugins ## Using wolf plugins
...@@ -41,13 +41,13 @@ If you also want to use some wolf plugin, you just follow the same procedure, ch ...@@ -41,13 +41,13 @@ If you also want to use some wolf plugin, you just follow the same procedure, ch
`find_package(wolf<plugin name> REQUIRED)`. `find_package(wolf<plugin name> REQUIRED)`.
If the pluging is indeed installed, this will define two variables If the pluging is indeed installed, this will define two variables
`${wolf<plugin name>_INCLUDE_DIR}` which will contain the path to the plugin's include directory `${wolf<plugin name>_INCLUDE_DIRS}` which will contain the path to the plugin's include directory
and `${wolf<plugin name>_LIBRARY}` which will contain the path to the plugin's library. and `${wolf<plugin name>_LIBRARIES}` which will contain the path to the plugin's library.
As an example, suppose that we want to use the _vision_ plugin. First, we will clone and install it As an example, suppose that we want to use the _laser_ plugin. First, we will clone and install it
``` ```
git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/vision.git git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/laser.git
cd vision cd laser
mkdir build && cd build mkdir build && cd build
cmake .. cmake ..
make make
...@@ -56,15 +56,12 @@ sudo make install ...@@ -56,15 +56,12 @@ sudo make install
Then, in the CMakeLists.txt of the application we are developing we will put the following line Then, in the CMakeLists.txt of the application we are developing we will put the following line
``` ```
find_package(wolfvision REQUIRED) find_package(wolflaser REQUIRED)
``` ```
if the plugin has been correctly installed, and thus find_package succeeds, then it will define two variables if the plugin has been correctly installed, and thus find_package succeeds, then it will define two variables
- ${wolfvision_INCLUDE_DIRS} which is the path to the includes. It should have the value `/usr/local/include/iri-algorithms/wolf/plugin_vision` - ${wolflaser_INCLUDE_DIRS} which is the path to the includes. It should have the value `/usr/local/include/iri-algorithms/wolf/plugin_laser;/usr/local/include/iri-algorithms`
- ${wolfvision_LIBRARIES} which is the path to the compiled (& linked) library. It should have the value `/usr/local/lib/iri-algorithms/libwolfvision.so` - ${wolfvision_LIBRARIES} which is the path to the required libraries. It should have the value `/usr/local/lib/iri-algorithms/libwolflaser.so;/usr/local/lib/iri-algorithms/liblaser_scan_utils.so`
**IMPORTANT NOTE** For the time being, each plugin is only responsible for finding their own includes and library. This means that for instance wolfvision, which obviously requires
the _core_ plugin, will not find its own dependencies. It is the responsibility of the programmer to do `find_package(wolf REQUIRED)` to get the includes and library. In the future this will change and each plugin will be responsible for finding all the necessary dependencies.
# Creating your plugin # Creating your plugin
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment