ROS package release, catkin_make_isolated: No rule to make target 'install'. Stop.
I'm trying to release one ROS package, but the automatic build of the package on Jenkins fails, with this error:
make: *** No rule to make target 'install'. Stop.
I have understood that the problem is due to the fact that this command is invoked:
catkin_make_isolated --install --cmake-args -DBUILD_TESTING=0 -DCATKIN_SKIP_TESTING=1' in '/tmp/ws'
and this automatically calls make install
, which is a command that doesn't work for my package, which actually should be installed with this command
cmake -DSWARMIO_BUILD_MOD=INSTALL
These are the relavant sections of my package.xml
<!-- Dependencies -->
<buildtool_depend>cmake</buildtool_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rosconsole</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<build_export_depend>roslib</build_export_depend>
<build_depend>roscpp</build_depend>
<build_depend>rosconsole</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>roslib</build_depend>
<build_depend>git</build_depend>
<build_depend>clang</build_depend>
<build_depend>multistrap</build_depend>
<build_depend>g++-5-arm-linux-gnueabihf</build_depend>
<build_depend>g++-5-multilib</build_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rosconsole</exec_depend>
<exec_depend>std_msgs</exec_depend>
<exec_depend>roslib</exec_depend>
<export>
<build_type>cmake</build_type>
</export>`
is there something wrong in the package.xml? Am I forced to change the build scripts to be compatible with a simple make?
Asked by codavide on 2020-02-25 05:16:47 UTC
Comments
The ROS buildfarm uses a(n almost) plain Debian package build pipeline when it comes to installing artefacts.
So I would say: yes, you have to make sure that your package uses the expected install commands to get things working.
But that doesn't mean you have to completely rewrite anything. Just patch it up to work sufficiently like a normal install to kick-off the install.
to be honest, this is highly non-standard and I would almost suggest to fix "upstream".
Asked by gvdhoorn on 2020-02-25 06:01:06 UTC
Are you getting this error when building the binarydeb or in devel jobs? catkin_make_isolated is not used during binarydeb creation. As @gvdhoorn said the standard debian packing pipeline is used with some hints specific for catkin packages.
Asked by nuclearsandwich on 2020-03-05 10:45:29 UTC