Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] New Build UI

Unfortunately Sean did not attach the new files (more unfortunately, 
Create Patch doesn't pick up new folders).  He is on vacation this week 
but I'll see what I can do about getting these files off of his machine.

Doug




"Alex Chapiro" <achapiro@xxxxxxx> 
Sent by: cdt-dev-admin@xxxxxxxxxxx
06/06/2003 05:41 PM
Please respond to
cdt-dev@xxxxxxxxxxx


To
<cdt-dev@xxxxxxxxxxx>
cc

Subject
Re: [cdt-dev] New Build UI






Sean,
 
I cannot find org.eclipse.cdt.build.ui.wizards.* files. Could it be you 
did not include them into the patch?
 
Alex
----- Original Message ----- 
From: Sean Evoy 
To: cdt-dev@xxxxxxxxxxx 
Sent: Friday, June 06, 2003 4:58 PM
Subject: [cdt-dev] New Build UI


Hi, 
We have been working on a new build model and UI for some time now. Today 
we finally posted the first iteration of that work. Despite its many 
short-comings, we felt that it was important to get it into the hands of 
the CDT community now so that you can start playing with it and provide 
your feedback on the direction we are going in. 

Howto use the Build System 
The key to success is to keep your expectations low. That said, here's a 
cookbook for getting a simple executable up and running. 
1. You must use a new managed project. Fortunately, there's a wizard for 
creating them. 
        * Select File | New | Project 
        * Select 'C' or 'C++' in the left pane. 
        * You should see an entry 'Managed Make C (or C++) Project' in the 
right pane. Highlight that and click 'Next'. 
        * Choose a name, then hit 'Next'. 
        * You *must* select the platform in the combo box (i.e. Cygwin 
Executable even if it is selected). 
        * If you do, the check-list below will be populated with the 
predefined configurations for that platform. If you must, you can uncheck 
the one you don't want. 
        * At this point you can hit 'Finish' or proceed to meddle with the 
binary parser and inter-project dependencies (although the builder ignores 
dependencies right now ...) 
2. Add a file or 2 (the class wizard that Hoda added is quite nice for 
this). 
3. Right click on the project in the navigator or C/C++ project view. 
Select 'Properties' from the menu. 
4. Select C/C++ Build from the list in the left pane. If it isn't there, 
then you didn't use the right wizard to create your project. 
5. It's pretty much self-explanatory from here (I hope). Select a tool in 
the list, make some changes in a likely looking widget, and hit 'Apply'. 
See below for some limitations. 
6. You can rebuild/build after this to see the makefile being generated. 
Again, see below for limitations. 

Limitations 
Hmm. There are lots and lots of these, so I will try to summarize the 
top-flight things that will trip you up for now. 
1. There is only one toolchain defined in the patch that you can access 
through the UI; namely for Cygwin. If you must try this elsewhere, there 
is a Linux definition in the plugin.xml file for name org.eclipse.cdt.ui. 
You can set the 'isTest' fields to false and add some option categories 
and options. The Cygwin example is a good starting point. Please note that 
the schema is still in flux, so if you create and submit a new target, 
then we might have to update it later. 
2. So far, I have tested that it builds a simple executable (HelloWorld is 
OK; your complex, multi-site project with 10M LOC is not going to build 
just yet). 
3. There is a target defined for static libraries, but I have not tested 
it, and I wouldn't bet the farm that it builds anything. 
4. There are no tools defined for yacc, Lex, Bison, etc .... Just plain, 
vanilla C++ files. 
5. While on the subject of C and C++ files, you will also note that the 
g++ wrapper is called, even for C files. That will be addressed when I 
return from holidays in a week. 
6. The builder treats the last configuration you edited in the UI as the 
current default. There is no visual cue to tell you which configuration is 
the "default". However, it will effect the flags that are used during 
build so this is something we have to address. 
7. The builder is not very smart about what has changed and what needs to 
be rebuilt. So, just do a full rebuild all the time if you want to keep 
the makefile up-to-date. 
8. The builder is not very smart about dependencies between source and 
header files. 
9. The builder is not very smart. Period. 
10. The UI will not resize for really large pages. It is being generated 
'on the fly' based on the toolchain definition and that is work yet to be 
done. 
11. Switching between configurations is not as smooth as it could be. 
Information is not lost, but you will have to reselect the tool. This will 
be fixed, of course. 
12. The manage configuration workflow has not been fully implemented. I 
did not disable the 'Manage', but don't expect it to work and please, no 
bugzilla reports on it, OK? 
13. The command line summary tool is not implemented yet. It's on its way. 


A Final Word 
Sam Robb provided an initial build model and UI, work we used as the 
starting point for what we have posted so far. Doug Schaefer did all of 
the architectural work on how the build model defines information and more 
importantly, how it persists and recovers it. Both these developers 
deserve the lion's share of the credit; they did the heavy lifting. I just 
introduced the bugs. Enjoy. 

Sean Evoy
Rational Software - IBM Software Group
Ottawa, Ontario, Canada



Back to the top