ami-iit / gazebo-scenario-plugins

Ignition Gazebo plugins implemented with ScenarI/O
BSD 3-Clause "New" or "Revised" License
9 stars 1 forks source link

how is the CMakelists.txt file generated #3

Closed addy1997 closed 3 years ago

addy1997 commented 3 years ago

Hi, I am working on similar plugins. My doubt is how did you generate this CMakeLists.txt file? I am getting this error

CMake Error at CMakeLists.txt:10 (find_package):
  By not providing "Findcatkin.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "catkin", but
  CMake did not find one.

  Could not find a package configuration file provided by "catkin" with any
  of the following names:

    catkinConfig.cmake
    catkin-config.cmake

  Add the installation prefix of "catkin" to CMAKE_PREFIX_PATH or set
  "catkin_DIR" to a directory containing one of the above files.  If "catkin"
  provides a separate development package or SDK, be sure it has been
  installed.

Configuring incomplete, errors occurred!

Also, how to generate the .so library file for loading the plugin? Any help is appreciated. Thanks

diegoferigo commented 3 years ago

This repository is still quite experimental, and it is part of a larger ecosystem than Ignition.

The objective of this project is storing custom plugins for Ignition Gazebo that can exploit the ScenarIO interface, part of the gym-ignition project. In few words, beyond other features, ScenarIO allows using Ignition Gazebo from Python. It also allows loading World and Model plugins, like those included in this repo, directly from code.

If your aim is to develop regular Ignition Gazebo plugins, i.e. you're not interested in Python usage, I'd recommend to visit the upstream documentation about how to develop plugins.

My doubt is how did you generate this CMakeLists.txt file

This is hand written. It seems trivial because most of the logic is hidden inside ScenarIO. The target ScenarioGazebo::ScenarioGazebo allows including all what a plugin needs to build against the active version of Ignition Gazebo. Furthermore, the build and distribution process is performed with common Python packaging tools, and this differs considerably from how a plain Ignition Gazebo plugin should be managed.

addy1997 commented 3 years ago

This repository is still quite experimental, and it is part of a larger ecosystem than Ignition.

The objective of this project is storing custom plugins for Ignition Gazebo that can exploit the ScenarIO interface, part of the gym-ignition project. In few words, beyond other features, ScenarIO allows using Ignition Gazebo from Python. It also allows loading World and Model plugins, like those included in this repo, directly from code.

If your aim is to develop regular Ignition Gazebo plugins, i.e. you're not interested in Python usage, I'd recommend to visit the upstream documentation about how to develop plugins.

My doubt is how did you generate this CMakeLists.txt file

This is hand written. It seems trivial because most of the logic is hidden inside ScenarIO. The target ScenarioGazebo::ScenarioGazebo allows including all what a plugin needs to build against the active version of Ignition Gazebo. Furthermore, the build and distribution process is performed with common Python packaging tools, and this differs considerably from how a plain Ignition Gazebo plugin should be managed.

Thanks for clarification.