register package in ament index#14
Conversation
Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
Correct, the install prefix must also be listed in the environment variable Automatically extending environment variables from a non-ament package is certainly a problem. That is one major reason why ament exists in the first place. Since ros-infrastructure/rosdep#699
That change seems to be overkill just to register the package in the ament index. That registration is nothing else than installing an empty file into a specific location in the file system. The CMake logic of this package doesn't need to be fundamentally changed but only something like this be added: See the logic in |
That was my initial guess as well. But installing a marker file is not sufficient as the only folders considered for ament index resources are the ones listed on the AMENT_PREFIX_PATH (in get_search_paths function).
So I ended up converting the package to be a real ament package rather than a non ament package that pretends to be one (installing package.xml, marker file in the index and modifying AMENT_PREFIX_PATH). |
Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
|
The change breaks the naming of the CMake config file which results in downstream packages being unable to find this package anymore. |
Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
Sorry about that, 4007472 should address this. The issue seems to be that the cmake Module provided by this package was not added to the CMake module path anymore. In general, the problem I am trying to solve is for consumers of the nightly archive (and consumers of source builds in general) to be able to build overlay and use rosdep to install the dependencies of the archive and of their overlays.
Goal: all packages are identified by rosdep with minimal changes to the third-party packages Potential solutions:
|
|
Thanks for the patch. CI finally passed. Merging... |
Signed-off-by: Mikael Arguedas mikael.arguedas@gmail.com
Installing a
package.xmlinstalled is not enough for rosdep to detect the package.Making this an
ament_packageallows it to be registered in the index and recognized by rosdep. This permits to remove hacks like setting theROS_PACKAGE_PATHmanually for the packages to be detected.Relates to ros-infrastructure/rosdep#724 and osrf/docker_images#328