ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

.pro for Qt/Ros?

asked 2012-07-23 11:09:08 -0500

allenh1 gravatar image


I know that you can use CMake with Qt, and I do, but what is the reason for not using .pro files? As far as I understand, the reason is rosmake does not have rosmake files, just CMake files. Is this a correct assessment? I am only asking for curiosity...


-Hunter A.

edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted

answered 2012-07-23 11:47:15 -0500

Lorenz gravatar image

Rosmake is just a wrapper around make plus dependency management. All it does is expanding the dependency tree and calling make inside ros packages in the right order.

QMake is a very specialized tool for Qt development while most packages don't use Qt at all. CMake on the other hand provides great flexibility through macros, custom targets, etc.

edit flag offensive delete link more


Actually, you can use qmake in the same way independent of Qt. Nevertheless, cmake is the easier tool to use for this (imo).

dornhege gravatar image dornhege  ( 2012-07-24 00:23:36 -0500 )edit

I know that it doesn't depend on it. But just out of curiosity, do you know if it provides ways to integrate external tools such as rospack and generic tests for library, e.g. using pkg-config. I always had the feeling that it is pretty restricted.

Lorenz gravatar image Lorenz  ( 2012-07-24 01:10:30 -0500 )edit

pkgconfig is supported and you can do things like call a system command (rospack find) and use its output, custom build targets. cmake seems to be nicer to me. I remember setting up custom flex/bison targets was not pretty (but possible).

dornhege gravatar image dornhege  ( 2012-07-24 01:47:43 -0500 )edit

answered 2012-07-23 13:15:47 -0500

Daniel Stonier gravatar image
  • Rosmake triggers a call of 'make' in your package's dependencies and finally the package itself.
  • For c++ programs, each 'make' call triggers a 'cmake' invocation.

So yes you are right - the ros c++ programs, and subsequently ros qt programs, are handled entirely by cmake.

edit flag offensive delete link more

Question Tools


Asked: 2012-07-23 11:09:08 -0500

Seen: 704 times

Last updated: Jul 23 '12