Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] integration of other build systems

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

 


Back to the top