[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cdt-dev] Managed Make Builder configurations
|
Treggiari, Leo wrote:
What is the meaning of projectType tag? Is it the same as abstract
target now?
No. I see projectType as describing the generic type of project that
the user wants to create, for example, a GNU executable vs. an Intel C++
library, etc. The target today specifies that information, but also
specifies additional information that I think belongs in child elements
that can be specified multiple times. For example, the tool-chain that
creates a GNU executable on Linux IA32 and the tool-chain that creates a
GNU executable on Windows Itanium could be two tool-chain children of
the GNU executable projectType.
As soon as I remove "executable", "library" from projectType
description, I get an abstract target in the current model.
I was wondering is make target type (executable/binay/archive) so
essential attribute to use it on the top of the model hierachy?
It looks rather as a candidate for configuration attribute (later about
that). I mean something like that:
Example of configuration:
Project Type = GNU
target architecture = X86
make target type = Shared Object
I understand that there is one inconvinient thing: set of tools can be
different for different make target types (for example, gcc + ar for *.a
and
gcc + gcc (ld) for *.so). On the other hand how it is implemented now
1) Causes duplication of configurations. For example now in QNX IDE we
have 6 different make target types. Would we use more than one tool
chain, we should duplicate these 6 configuration for each of them
2) There is no way now to change make target type for existing MMB
project. Why I cannot change .so project to .a project?
What do you think about the following little schema extension (this is
once again about configuration attributes :-) )?
I don't understand the purpose of your configuration children,
<attribute> and <attribValue>. Could you explain them so more?
That's my point. I want to parametrize configuration depends on
projectType, using your terminology. For example, when I create
configuration for GNU toolchain to build executable for armle target, I
would like to select these options from the configuration dialog. So
<attribute> is description of configuration parameter. In my example:
CNU ->
parameters:
target architecture; options: x86/armle/armbe
binary type; options: exec/so/a/...
or
VC ->
parameters:
binary type; options : exe/dll/lib
As long as we are talking now about schema, I'm also advocating for
small modifiction of optionCategory tag:
<optionCategory
owner="...."
name="...."
id="...."
* /class="....">/ *
</optionCategory>
to make it possible to provide customized option editors.
I want custom editors also, but I think the attribute belongs on the
<option> element, not the <optionCategory> element. The
<optionCategory> element is for grouping options in the property page (I
think...). Also, I'd suggest a more descriptive name, e.g. editorClass,
because there are other attributes that use a Java interface that I want
to add to <option>.
It useful if I'd like to replace automatically generated property page
to the custom one
As a compromise: create this tag on both levels (option and optionCategory)
Leo
-----Original Message-----
From: cdt-dev-admin@xxxxxxxxxxx [mailto:cdt-dev-admin@xxxxxxxxxxx] On
Behalf Of Alex Chapiro
Sent: Thursday, June 10, 2004 9:30 AM
To: cdt-dev@xxxxxxxxxxx
Subject: Re: [cdt-dev] Managed Make Builder configurations
Looks good.
Just a couple of questions
What is the meaning of projectType tag? Is it the same as abstract
target now?
toolchain->archList exists in current model. But it works as a host
toolchain filter and does nothing with target (sorry!) architecture.
Does it have the same meaning in your model?
Just curious: is defaultExtension important to keep it separately from
the artifact name? Or this is just for compatibility?
What do you think about the following little schema extension (this is
once again about configuration attributes :-) )?
<projectType>
<toolChain>
....
</toolChain>
<configuration>
....
<!-- List of configuration attributes (target CPU, binary type
ect.) -->
<attribute
name="..."
id="..." >
<!-- Attribute is alvays enumerated type (?). Its
description includes the list
of possible values and how each value impacts toolchaun
element; this is already
exists on configuration level -->
<attribValue
name="..."
id="..." >
<toolReference
id="...">
<optionReference
defaultValue="..."
id="...">
</optionReference>
....
</toolReference>
....
</attribValue>
....
</attribute>
....
</configuration>
</projectType>
As long as we are talking now about schema, I'm also advocating for
small modifiction of optionCategory tag:
<optionCategory
owner="...."
name="...."
id="...."
* /class="....">/ *
</optionCategory>
to make it possible to provide customized option editors.
Treggiari, Leo wrote:
Thinking more about it, isn't it what is already in the managed build?
The toolchain is the target and configuration defined in the
plugin.xml
while the build settings is the target and configuration defined in
the
.cdtbuild. Could this understanding be correct or am I missing
anything?
I guess we are missing the os and architecture. Maybe it could just be
an attribute of a target (plugin.xml definition), couldn't it?
Maybe, but I think there are 2 things wrong with the current Target:
1. The name - "target" is confusing as to what it represents
2. It is a combination of too may concepts
I've been working on a proposal for Managed Build functionality for CDT
3.0. I think the model needs some changes at the "top". I'd like to
get rid of "target" and have the model look like:
<projectType>
<toolChain>
<tool>
the elements under "tool" remains unchanged
</tool>
<targetPlatform>
various target platform attributes...
</targetPlatform>
</toolChain>
<configuration>
<toolChainReference>
<toolReference>
the elements under "toolReference" remains unchanged
</toolReference>
</toolChainReference>
<resourceConfiguration>
<toolReference>
the elements under "toolReference" remains unchanged
</toolReference>
</resourceConfiguration>
</configuration>
</projectType>
The following target attributes would become projectType attributes:
- isAbstract
- parent
- isTest
The following target attributes would become configuration attributes:
- artifactName
- defaultExtension
- cleanCommand
The following target attributes would become toolChain attributes:
- binaryParser
- osList
- archList
- errorParsers
- makeCommand
- makeArguments
- scannerInfoCollector
- makefileGenerator
I hope to have the full proposal in a week or so...
Leo
-----Original Message-----
From: cdt-dev-admin@xxxxxxxxxxx [mailto:cdt-dev-admin@xxxxxxxxxxx] On
Behalf Of Pierre-Alexandre Masse
Sent: Wednesday, June 09, 2004 7:41 PM
To: cdt-dev
Subject: RE: [cdt-dev] Managed Make Builder configurations
Likewise, here at TimeSys. We currently support configurations
as a combination of (build settings + toolchain). Being able to
continue to support this once we move to CDT 2.0 is important
to us.
Thinking more about it, isn't it what is already in the managed build?
The toolchain is the target and configuration defined in the plugin.xml
while the build settings is the target and configuration defined in the
.cdtbuild. Could this understanding be correct or am I missing
anything?
I guess we are missing the os and architecture. Maybe it could just be
an attribute of a target (plugin.xml definition), couldn't it?
Pierre-Alexandre
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cdt-dev