Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] LaunchBar and CDT

OK, I think we have some of this figured out. Certainly open to other thoughts. To summarize the problem, we want to have a single LaunchConfigDescriptor be able to launch on different target types. That means we need different delegates for each target type. When you flip the target selector, it changes which delegate is used. We also need to be able to add tabs for the target type but I think you can add tabs per delegate already. I need to check that.

It probably means we need a single CDT launch configuration type that can do all target types. Which is fine. It will also bring up whether we need different types for attach and core debugging, or is that just different modes, but we can have that one later. I'll see if I can get this multi-target stuff working.


From: cdt-dev-bounces@xxxxxxxxxxx [cdt-dev-bounces@xxxxxxxxxxx] on behalf of Doug Schaefer [dschaefer@xxxxxxx]
Sent: Tuesday, June 24, 2014 1:17 PM
To: elaskavaia.cdt@xxxxxxxxx; CDT General developers list.
Subject: Re: [cdt-dev] LaunchBar and CDT

These are great questions. Before I go too far we should probably back up a bit and talk about multi-platform support in projects. I should be able to write a C++ app using something like Qt, for example, and then have it deploy locally and on remote platforms. In theory, I should be able to just flip the launch target and that changes the build configuration and the debugger that's used to debug it.

That actually implies that local and remote launches are the same launch config type, or our model of a launch config descriptor representing a single launch config is wrong. I'll have to give that some thought.

I've thought about Kits for a while and mentioned it at the CDT summit at EclipseCon. A Kit would map to a target type. This might give us the ability to do this all with a single launch config type and the Kit tells us how to get something running on the target. Food for thought.


From: cdt-dev-bounces@xxxxxxxxxxx [cdt-dev-bounces@xxxxxxxxxxx] on behalf of Alena Laskavaia [elaskavaia.cdt@xxxxxxxxx]
Sent: Tuesday, June 24, 2014 1:00 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] LaunchBar and CDT

Do we have a LC per target architecture, or same LC is shared, and toolbar changes it dynamically? If it is the same, then it is not driven by binary ever, but target architecture + mode selection
Which also mean when we launch we cannot do a binary check, but have to build first, then we have to dynamically figure out and set the binary in LC, which would work in simple cases where build
produces only one artifact (binary) per build configuration

Trying to figure out build config based on target+mode is even harder problem because these concepts are not part of eclipse launch model, we can only make vague assumption that if config is called Debug it will
probably match with "debug" mode, and platform architecture is not a concept at all (unless I am missing something) so I don't know how to map that generically

Debugger is usually is taken care by launch delegate, why do you need to know about debugger at all in toolbar?

On Tue, Jun 24, 2014 at 12:22 PM, Doug Schaefer <dschaefer@xxxxxxx> wrote:
Hey gang,

I've started a wiki page for the LaunchBar. It is here: It's still a work in progress but if you look in the launch folder in our git repo, you'll see the new plug-ins.

One of the key UX features of the LaunchBar is the ability to Build and Launch without the user ever having to go to the launch config dialog. Yes, this is very similar to the launch shortcut that does it based on selection, but this has a friendlier face and you always know what's about to be built and launched.

There is a lot of the launch shortcut that we can use (CApplicationLaunchShortcut), but it itself has issues. For one, it only works if it can figure out the IBinary. The LaunchBar has a build button which means build for launch, but at that point it's assumed we don't have an IBinary, but we need the launch config so we can call buildForLaunch() on the delegate. So we have a chicken and egg problem. We somewhat got away with it in the shortcut since we really only were launching, but the LaunchBar now has an explicit UI for the build. Has anyone tried to resolve that?

The shortcut also requires the active build config and the debugger. The LaunchBar has an active launch mode and an active target, so in theory we should be able to automatically figure that out. While I'm pretty sure I can figure out the build side looking at the configurations, we've never done a good job of linking that to the debugger. The question is do we add the debugger to the IToolChain as a ITool? or do we need a higher level concept like QtCreator's Kits. Other ideas?

I'm also interested in people's opinions in general on the LaunchBar in general. The key philosophy is that hitting the buttons always does the thing that makes the most sense. And you should never have to go to the launch config dialogs unless you want to do something advanced. We may be missing something in our models and if so, we should add it in.


cdt-dev mailing list

Back to the top