Comments (20)
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.
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.
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.
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.
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.
@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.
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.
+1 to catkin_tools support :)
from ros_qtc_plugin.
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.
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.
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.
Great! That is highly appreciated!
from ros_qtc_plugin.
I will notify everyone when a new binary is released which should be by this weekend.
from ros_qtc_plugin.
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.
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.
Are you on xenial?
from ros_qtc_plugin.
Still stuck on trusty :-/
from ros_qtc_plugin.
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.
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.
@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)
- Installing the plugin for older Qt Creator version HOT 2
- reopen a workspace it redirect the source directory to /run/usr/1000/... HOT 3
- add QDataVisualization HOT 3
- Colcon args `-event-handlers status+` is no longer valid HOT 5
- "Add new..." is not enabled to add new files in the project folder. How can I solve this problem? HOT 1
- How to debug a ROS2 node launched with a launch.py file HOT 1
- _
- How to use qtcreator-ros snap inside docker HOT 1
- Unable to run setup.py for arm architecture HOT 7
- Docker Device not present HOT 5
- Support ROS-independent builds HOT 6
- Segmentation Fault HOT 8
- Does not support Qt Creator Device functionality HOT 13
- Unable able to build with latest update no auto source /opt/ros/../setup.bash HOT 5
- Problems with creating package and creating new files HOT 3
- Source code compilation and installation HOT 1
- There is wrong when I run setup.py for arm architecture HOT 7
- colcon build make params -j4 doesn't work HOT 9
- Segmentation fault (core dumped) when creating or opening ros project HOT 4
- Performing a clean removes user defined environment variables HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ros_qtc_plugin.