Hi
Emiliano,
I
did not have time yet to look deeply in your plug-ins, but here are some issues
that appeared to me at first glance:
I
have VS 6.0, VS .NET 2003 and Platform SDK installed on my machine.
1.
The vc++ projects did not appear for me as "supported" in the project-type
selection wizard page.
2.
When I tried to create the vc project, eclipse halted and stopped responding. I
stepped through the code and noticed that the infinite loop occurred in the
PlatformSDKPathResolver.getDir(). After I had changed
"
while (pattern.length() > 0) {" to
"
if (pattern.length() >
0) {", the infinite loop disappeared. Note that I made that change only
for the reason of preventing the infinite loop, and I suppose that the change
might result in the incorrect SDK path resolver functioning, so some of the
points mentioned below could be caused by the change I made.
3.
After the project was created I was not able to browse the created project in
the "C/C++ Projects" view, neither was I able to create a new class
because of the null pointer exception that occurred in the
ManagedBuildCPathEntryContainer.getPathEntries() because the
VCToolkitScannerInfoCollector.getIncludePaths() returned a list of includes
containing nulls. After adding some extra-null pointer checkings to the VCToolkitScannerInfoCollector constructor the problem disappeared.
After
that I was able to successfully build the project. I did not have time to check
and test all the tools settings provided with your build definitions, but from
what I saw, the vc++ projects work great! The tool definitions provide a lot of
very useful options and allow a very convenient interface for working with vc++
tools!
Here
are some additional points I noticed:
4.
While stepping through the code I've also noticed that since the
VCToolkitPathResolver.getBinPath() returns null, it causes the "null"
string to be generated while string concatenation in the
VCToolkitConfigurationEnvSupplier. Also the
PlatformSDKPathResolver.getBinPath() returns the array of size 78 for me,
containing one and the same path, except for some array members that contain
null that cause the "null" string to be generated while string
concatenation in the VCToolkitConfigurationEnvSupplier and also causes the PATH
environment variable to contain one and the same path multiple times.
The
same is about the VCToolkitPathResolver.getLibPath(); -
PlatformSDKPathResolver.getLibPath(); and
VCToolkitPathResolver.getIncludePath() -
PlatformSDKPathResolver.getIncludePath(); pares.
Also
as a result of the the PlatformSDKPathResolver.getIncludePath(), the
VCToolkitScannerInfoCollector.getIncludePaths() also returned the list of
identical paths, (provided by the PlatformSDKPathResolver.getIncludePath()).
I
suppose all these issues are caused by the incorrect handling of my registry
settings. I'm not an expert in how the vc++ settings are stored and how they
should be handled, so if you need some of my settings in order to find the
problem, I could post them to you.
5.
The options that represent the additional include directories for the compiler
should be of type "includePath", but not "stringList".
Setting this option to the "includePath" will allow MBS to provide
the include paths info to the rest of the CDT.
Thanks,
Mikhail
To
celebrate the M7 I'm finally releasing this plugin.
Any comments about source or design are most welcome!
Currently on the roadmap:
- Win32 native debugging.
- MASM support
- VisualStudio .NET 2003 and .NET 2005
Have fun!
Emiliano Lesende