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
).