Git Product home page Git Product logo

Comments (20)

Levi-Armstrong avatar Levi-Armstrong commented on August 16, 2024 5

Hello Everyone, I just wanted to provide an update on the catkin_tools integration. It turned out to not be as simple as I thought to integrate. I had to restructure a lot of the code to allow for multiple build tools and not being familiar with catkin_tools I under estimated the complexity (mainly due to profiles). I have most of catkin_tools (with profile editor) implemented and I am now working the code model manager to handle different build directories and different build types (isolated, merged, etc.). I plan to have it released by the end of this year.

from ros_qtc_plugin.

Levi-Armstrong avatar Levi-Armstrong commented on August 16, 2024 1

Hello Everyone,

I plan on getting a basic implementation of catkin_tools soon. I myself have not used it so I am looking for guidance on the process that should be exposed. Can someone provide a brief overview of what must be exposed to get it operational and then I will work the nice to have in a later pull request? Here is what I exposed for catkin_make to allow the project to build, so if there is a similar process that would be great.

from ros_qtc_plugin.

Levi-Armstrong avatar Levi-Armstrong commented on August 16, 2024

This may already be supported, but I have not tested it. If you go to the build settings, it provides an option to override the the current build command. With this you should be able to input whatever build command you prefer and use the arguments box to pass any addition arguments required. If this does not work please let me know and I will get a fix out.

Are there any plans to support / switch to catkin tools?

There is a plan to handle this more formally. The plan is to add a ROS setting page under the QTC settings interface that would allow the user to configure such things. I am active looking for development support so if you or anyone else is interested in working this item let me know. I have looked into it, but I have not had much time lately to implement it.

from ros_qtc_plugin.

rhaschke avatar rhaschke commented on August 16, 2024

Using catkin tools doesn't really work.
In order to import an existing catkin workspace, the plugin (or cmake) assumes existence of src/CMakeLists.txt.
If the workspace is imported, it is indeed possible to switch the build command from catkin_make to catkin build.

from ros_qtc_plugin.

Levi-Armstrong avatar Levi-Armstrong commented on August 16, 2024

Yea, I looked into catkin_tools and it will require a little work to get operational. It looks like you have to initialize the workspace differently and how the cmake arguments are passed is a little different.

from ros_qtc_plugin.

Levi-Armstrong avatar Levi-Armstrong commented on August 16, 2024

@rhaschke, I wanted to get your opinion on catkin_make vs catkin_tools. Do you see any drawbacks in completely migrating the tool to catkin_tools to avoid making it support both?

from ros_qtc_plugin.

rhaschke avatar rhaschke commented on August 16, 2024

I think many people still use catkin_make and if one switches between QTC and command line, both build systems should be supported.
Featurewise, catkin_tools is definitely much better:
http://www.ros.org/news/2016/04/5-reasons-ros-users-will-want-to-try-catkin-tools-beta-2.html
however, it's still in beta phase.

from ros_qtc_plugin.

raultron avatar raultron commented on August 16, 2024

+1 to catkin_tools support :)

from ros_qtc_plugin.

NikolausDemmel avatar NikolausDemmel commented on August 16, 2024

Big +1 for catkin_tools support from me as well.

As mentioned above, for a developer I see little reason to not use catkin_tools over catkin_make. The main one is that the former is still in beta and might lack some of the functionality and stability of catkin_make. Howeverover catkin_tools works great in daily usage for quite a few people and the user experience is IMHO vastly superior to catkin_make.

Nevertheless most ROS users probably still use the officially supported catkin_make. I'm not sure how the user base for your plugin looks like and how they would feel about a complete switch.

from ros_qtc_plugin.

NikolausDemmel avatar NikolausDemmel commented on August 16, 2024

This is great news.

I'd be very happy to help with catkin_tools workflows as far as I can.

Could you please clarify what you mean by "exposed for catkin_make" exactly? From your Link it looks just like: init, build and source a workspace.

Those for catkin tools could be:

  • catkin init
  • catkin config -DCMAKE_BUILD_TYPE=Release
  • catkin build
  • source devel/setup.bash

One thing that is very different is that with carkin tools every Ros package is its own cmake project, so I'm not sure how that would map to qtcreator. Probably not a single project, but one for each Ros package. I'm not sure how the plugin workflow would be. I could imagine either generating projects for all Ros packages in a workspace. What might be even nicer is if the plugin could recognise when a cmakelists.txt project is opened if that belongs to a ros workspace and then set it up accordingly automatically. This is just off the bat. We would probably need to put a little bit more thought into what the workflow should be ideally.

Can qtcreator projects have subprojects?

There are also some flags for catkin when calling from a script or another application (no status update, no color). I can post later what I use in CI scripts to get you started.

from ros_qtc_plugin.

NikolausDemmel avatar NikolausDemmel commented on August 16, 2024

There are also some flags for catkin when calling from a script or another application (no status update, no color). I can post later what I use in CI scripts to get you started.

This is what I use currently:

TERM=xterm catkin --no-color init
TERM=xterm catkin --no-color config -DCMAKE_BUILD_TYPE=Release
TERM=xterm catkin --no-color build --no-status

from ros_qtc_plugin.

koenlek avatar koenlek commented on August 16, 2024

Great! That is highly appreciated!

from ros_qtc_plugin.

Levi-Armstrong avatar Levi-Armstrong commented on August 16, 2024

I will notify everyone when a new binary is released which should be by this weekend.

from ros_qtc_plugin.

Levi-Armstrong avatar Levi-Armstrong commented on August 16, 2024

Hello everyone, I just released a new Debian that includes the catkin tools integration. If you have any issue let me know.

Highlights:

  • Catkin tools build step
  • Catkin tools profile editor (select, create, modify, remove)
  • Automatic code model management system (No longer have to manually rebuild the model when changes are made to the CMakeLists.txt file.)
  • Automatic sourcing (No longer have to source workspace when changes are made)

from ros_qtc_plugin.

NikolausDemmel avatar NikolausDemmel commented on August 16, 2024

Awesome. Is there a way to build this plugin for the most recent binary releases of qtc? I use the official 4.2 binaries. 4.3 will be out soon as well.

from ros_qtc_plugin.

Levi-Armstrong avatar Levi-Armstrong commented on August 16, 2024

Are you on xenial?

from ros_qtc_plugin.

NikolausDemmel avatar NikolausDemmel commented on August 16, 2024

Still stuck on trusty :-/

from ros_qtc_plugin.

Levi-Armstrong avatar Levi-Armstrong commented on August 16, 2024

The plug-in depends on the qt57 release on launchpad.net. It is currently on 4.1 and not sure when the maintainer will update it. The other option is you could build it from source.

from ros_qtc_plugin.

NikolausDemmel avatar NikolausDemmel commented on August 16, 2024

Building from source takes forever though :-P. Anyway. Qt5.8 should be out in January. I already saw the qt58 RC1 on the launchpad repo (at least for xenial), so maybe the maintainer of those will add qt58 soon after its release. It should ship with qtc 4.2.1.

But qtc 4.1 is good also. I'll give it a try with qtc4.1 from launchpad. Thanks!

from ros_qtc_plugin.

Levi-Armstrong avatar Levi-Armstrong commented on August 16, 2024

@NikolausDemmel, I could create a version for the qt571 which would get you 4.2.0 if there is a particular feature you need that is not in 4.1.0.

from ros_qtc_plugin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.