0
$\begingroup$

Rosanswers logo

Hello,

catkin_make suddenly complains about a package, but does not say which one is non homogeneous

how can I figure which one is causing the issue ? quiet an obvious feature

I checked the logs, but nothing there

CMake Error at catkin/cmake/catkin_workspace.cmake:95 (message):
  This workspace contains non-catkin packages in it, and catkin cannot build
  a non-homogeneous workspace without isolation.  Try the
  'catkin_make_isolated' command instead.
Call Stack (most recent call first):
  CMakeLists.txt:67 (catkin_workspace)
    
-- Configuring incomplete, errors occurred!
See also "/home/pi/ros_catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/pi/ros_catkin_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

thanks

[edit]

find command :

find src -name package.xml -exec grep -L -E 'buildtool_depend.*>catkin' {} \;

src/catkin/package.xml

Originally posted by phil123456 on ROS Answers with karma: 51 on 2020-03-10

Post score: 0


Original comments

Comment by gvdhoorn on 2020-03-10:\

rplidar_ros that compiles fine with catkin_make does not compile anymore with catkin_make_isolated

please do not do this (ie: posting additional / follow-up questions in posts about something else entirely).

This is not a forum, but an AskBot instance. Similar to Stack Overflow/Exchange, it works best when there is a 1-to-1 ratio of questions-to-answers.

Editing in other questions after you've received an answer to your current question is considered bad form and will not help in getting answers.

Comment by phil123456 on 2020-03-10:
ok but it's all related, I'll create a new question

Comment by phil123456 on 2020-03-10:
so the culprit package is catkin itself ? I dont get it

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

This finds any package.xml which does not state a buildtool_depend on catkin, which would be packages which cannot be built using catkin_make:

find /path/to/your/catkin_ws/src -name package.xml -exec grep -L -E 'buildtool_depend.*>catkin' {} \;

or, alternatively:

find . -name package.xml -exec grep -l 'build_type' {} \;

(though technically it's OK for a package to export a build_type with catkin as a value, no packages I know do this)


Originally posted by gvdhoorn with karma: 86574 on 2020-03-10

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by gvdhoorn on 2020-03-10:
And tbh: I would use catkin_tools for building large sets of packages. It does not have the same limitation.

Comment by phil123456 on 2020-03-10:
I'll have a look, tutorials never mention catkin_tools

Comment by gvdhoorn on 2020-03-10:
No, because it is considered to be a somewhat more advanced tool.

Users just starting out are probably better served by sticking with catkin_make.

Comment by phil123456 on 2020-03-10:
something odd, rplidar_ros can compile fine with catkin_make but fails to find ' std_srvs/Empty.h' when using catkin_make_isoalted

Comment by phil123456 on 2020-03-10:
I unchecked the answer since the 'find..' command finds a lot of packages that compile fine with catkin make

Comment by gvdhoorn on 2020-03-10:
It's going to be very difficult to say anything about that unless you provide some more information. For instance: which packages does it list for you?

Also: please show a verbatim copy-paste of the command you executed.

Comment by phil123456 on 2020-03-10:
I updated the question

Comment by gvdhoorn on 2020-03-10:
I've updated the command. Some packages have additional attributes which didn't match the regex.

Comment by phil123456 on 2020-03-10:
ok but do you know why catkin_make_isolated fails to build that rplidar_ros package ? it works fine with catkin_make

Comment by gvdhoorn on 2020-03-10:
I'm not going to answer that in this question. I've explained my rationale in my comment under your question text.

This question is about how to find packages that would make catkin_make print the error you quote. I believe I've answered that with the updated command.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.