Hi Carsten,
I'm wondering if might be feasible to create a plugin
that allows importing of
projects using other buildsystems than "make".
[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.
E.g. by providing a wrapper around gcc etc., one could analyze the
commandline
arguments and "learn" how that project is built.
That information could be used to create a managed
build configuration.
[Mikhail] Do you mean you want to reverse-engineer the managed project given
a set of buildfiles? Well, this is quite a complicated task.. 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.
If you have any ideas regarding solving these issues we would be happy
to discuss them.
Could this work, from the CDT perspective? I.e., is
there an API to
programmatically create/manipulate the build
configuration?
[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.
Thanks,
Mikhail