Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] Rebuilding managed build project on properties change

Hi Wieant,

You are right, the tool-chain options changes themselves do not result
in a full rebuild. This was done intentionally. My assumption was that
the tool-chain options are not the build options themselves, i.e. not
used by makefile generation, etc. Instead they are used to
initiate/perform a [simultaneous] change of some build options (e.g.
tool option values, build environment, build macros, etc.).
That is why no full rebuild is initiated by the tool-chain option
change. Instead it is expected that the proper rebuild state will be set
by the build settings change initiated by the tool-chain option
modification (e.g. via a tool-chain option value handler).
I might be wrong with my assumption. In this case we may consider
changing the build logic to always perform a full rebuild after the
tool-chain option is modified.

Mikhail


-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
On Behalf Of Wieant Nielander
Sent: Monday, October 02, 2006 6:42 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] Rebuilding managed build project on properties
change


>> Can you tell me how changes in CDT tool properties currently cause a
>> rebuild, so that I can figure out why the same code does not work for
my
>> new options?

> [Mikhail] Most of the MBS model objects (Configuration, ToolChain,
Tool,
> Option) maintain the rebuild state that gets set to "rebuild" when the
> property of the object is changed.
> The rebuild states are analyzed and the set of resources affected by
the
> MBS Model changes is calculated. This is done by the MBS Build Model.
> The affected resources are then removed and rebuild.
> See org.eclipse.cdt.managedbuilder.buildmodel.BuildDescriptionManager
> class and the implementation of the 
>
org.eclipse.cdt.managedbuilder.internal.core.GeneratedMakefileBuilder.bu
> ild() method.
> The build/rebuild itself is caused by the .cdtbuild file update that
is
> performed while persisting the MBS properties.

Mikhail,

I have looked further into this rebuild problem on change of
toolchain-level options.

It seems the ToolChain model object correctly signals that a rebuild is
required, and just like you explained the BuildDescriptionManager is
called
to determine which resources are affected. However in this stage only
the (local) Tools are checked, and since these have not changed no
resources are affected. Result is that make is called, but it decides
nothing has changed and so nothing happens.

Shouldn't the BuildDescriptionManager take into account the
ToolChain-level
options and effectively update all resources?

Regards,
  Wieant
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top