Hi Carsten,
I have inserted the answers to some of your questions below..
Regards,
Mikhail
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On
Behalf Of Carsten Pfeiffer
Sent: Tuesday, November 29, 2005 6:45 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] integration of other build systems
On Tuesday 29 November 2005 15:44, Sennikovsky, Mikhail wrote:
Hi Mikhail,
thanks for the quick answer!
> [Mikhail] From the Managed Build System point of view, you can
integrate
> and use any builder other than make by defining the builder in the
MBS
> syntax and a buildfile generator for it. From the standard build
point
> of view, you can use and write any kind of build scripts for any
builder
> and specify the command to be invoked for launching your builder.
OK. But being able to build the project with a specific builder does
not mean
that the parser and indexer work, right? E.g. the include-paths for the
different targets need to be known.
[Mikhail] Right. And CDT provides the capabilities to specify the
scanner information discovery profile specific for the tool-chain you use. This
mechanism allows you to provide compiler specific includes/macros to the
scanner/parser and the rest of the CDT. Using the managed build system you
could also integrate any tool-chain/tool/builder (not only the builder) by
describing them and their options in MBS syntax.
> [Mikhail] Do you mean you want to reverse-engineer the managed
project
> given a set of buildfiles? Well, this is quite a complicated
task..
Yes, something like that. I'd like to quickly import a project into CDT
and be
able to "work" on it, e.g. use the search engine, have access
to the DOM.
Since there are many many different build-systems out there, I thought
about
the "gcc-wrapper" approach to reverse engineer the build
system.
What is actually required for having the parser/search engine/DOM
available?
I don't necessarily want to migrate the existing build system of a project
to
MBS, I only want to be able to use CDT's features on that project.
[Mikhail] You could import your existing project (with already created
makefiles) into the CDT using the standard make project. You can associate any
of the available scanner discovery profiles to be used with your project that
will calculate and tell CDT compiler built-in includes and macros.
Will this suit your needs?
See also the previous mails I posted to this list with more detailed
description on using the scanner discovery profile mechanism and MBS options
for the scanner info calculation.
> There is a bugzilla request regarding making
editable the tool command
> summary edit box ("All Options:" field) of the build
property page and
> to automatically set the tool options based upon the user input in
that
> field, but we can not solve this problem currently, because ISVs
usually
> provide their custom call-backs for command line generation, so
MBS does
> not know what the command line generation logic is and can not
> reverse-engineer it, so even at this level we can not solve the
problem
> of obtaining/generating/setting the option values based upon the
command
> the user supplies.
Maybe an additional API could be provided to have all the
command-line-generation-participants decompose the given commandline
back
into parts, but I'm just guessing here...
> [Mikhail] Yes. See e.g. how the managed project and configurations
are
> created in the New Managed Project Wizard
> (NewManagedProjectWizard.doRun() method). See also classes and
> interfaces defined in the org.eclipse.cdt.managedbuilder.core
package
> that represent the managed build core model. The
ManagedBuildManager
> class is actually the main entry-point for any MBS-related operations.
Great, thanks!
Best wishes,
Carsten Pfeiffer
--
Fraunhofer Institute Computer Architecture and Software Technology,
FIRST
Kekuléstraße 7, 12489 Berlin
Tel.: +49 (0)30 6392-1900, Fax: +49 (0)30 6392-1805