
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.
Originally posted by ahendrix with karma: 47576 on 2019-04-08
This answer was NOT ACCEPTED on the original site
Post score: 3
Original comments
Comment by kejxu on 2019-04-08:
Thanks Austin! As of today, our plan for integration would only go as far as using VSCode just like a normal command prompt.
I have recently just started working a bit with catkin_make, and have never heard about/tried catkin build. Thanks for pointing those out, I will go take a look =)
Comment by gvdhoorn on 2019-04-09:
@ahendrix wrote:
catkin build isn't as sensitive to dependency issues as catkin_make
interesting observation. I would actually think it'd be the opposite (because catkin_make coalesces all projects into one big one, it works with slightly incorrect CMakeLists.txt, whereas those will fail with catkin_tools).