Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I prefer catkin_make unless I'm in a workspace that requires catking_make_isolated (yes, because it can build plain-cmake packages).

  • catkin_make treats the entire workspace as a single cmake project, and builds it with a single invocation of cmake. Since catkin_make treats the entire workspace as a single package, it's faster for incremental builds that only change code, but slower when you need to regenerate the build files, and more sensitive to dependency issues between packages.
  • catkin_make_isolated treats each package as a separate cmake project, and builds and installs each separately, in dependency order. This is why it's able to build plain cmake packages.
  • The catkin tools project (catkin build) also treats each package as a separate cmake project and builds each one separately (I'm not sure if it does the install step or not). It's an evolution of catkin_make_isolated, but with more features and a more thoughtful design. catkin build isn't as sensitive to dependency issues as catkin_make, so it's become quite popular in the past few years. I think it's about as fast as catkin_make but I don't use it enough to compare.

I'm not sure how all of those will mesh with VSCode, but hopefully that gives your a better idea of what they're doing and why.