Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 321445 - Visual C++ Build Integration
Summary: Visual C++ Build Integration
Status: RESOLVED FIXED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-build (show other bugs)
Version: 8.0   Edit
Hardware: PC Windows 7
: P3 enhancement (vote)
Target Milestone: 8.0   Edit
Assignee: Doug Schaefer CLA
QA Contact: Andrew Gvozdev CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 321470
  Show dependency tree
 
Reported: 2010-07-31 22:27 EDT by Doug Schaefer CLA
Modified: 2011-01-05 09:51 EST (History)
6 users (show)

See Also:


Attachments
Define MS specific modifiers (1.06 KB, patch)
2010-09-25 18:42 EDT, Marc-André Laperle CLA
angvoz.dev: iplog-
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Doug Schaefer CLA 2010-07-31 22:27:10 EDT
There is already a start of a Visual C++ build integration in CVS. The planets are aligning and we should have a debug story for CDT 8.0. This bug tracks the work to bring this plug-in into the cdt-master and completed.
Comment 1 Doug Schaefer CLA 2010-07-31 22:33:06 EDT
BTW, the plan is to support the freely downloadable Windows SDK version 7.0 and any future SDK versions. The idea is to support environments without needing Visual Studio.

I'll need to see what the environment looks like when you install the various Visual Studio versions to see if we can support them (if they're different than just the plain SDK), but I won't commit to that for CDT 8.
Comment 2 Marc-André Laperle CLA 2010-08-01 01:24:38 EDT
(In reply to comment #1)
> BTW, the plan is to support the freely downloadable Windows SDK version 7.0 and
> any future SDK versions. The idea is to support environments without needing
> Visual Studio.

I don't see C++ headers in the Windows SDK, only C? Looks like Windows DDK has them though.
Comment 3 Doug Schaefer CLA 2010-08-01 18:48:22 EDT
(In reply to comment #2)
> I don't see C++ headers in the Windows SDK, only C? Looks like Windows DDK has
> them though.

They are in my install in:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include

Despite being in the VS directory, they did get installed by the Windows SDK and the INCLUDES environment variable points there.
Comment 4 Marc-André Laperle CLA 2010-08-01 19:40:52 EDT
(In reply to comment #3)
> (In reply to comment #2)
> > I don't see C++ headers in the Windows SDK, only C? Looks like Windows DDK has
> > them though.
> 
> They are in my install in:
> 
> C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include
> 
> Despite being in the VS directory, they did get installed by the Windows SDK
> and the INCLUDES environment variable points there.

Ah my bad. I thought they were installed when I installed VS 2008.

(In reply to comment #1)
> I'll need to see what the environment looks like when you install the various
> Visual Studio versions to see if we can support them (if they're different than
> just the plain SDK), but I won't commit to that for CDT 8.

I can look at that. One issue with that, it will be possible to have multiple versions of the toolchain installed and there will be no easy way for the user to choose which version. This is also true for the other toolchains. For example, I have 2 different MinGW installed. In CDT 7.0, I can change the "path" environment variable to choose which one but this is less than ideal. Not sure how to solve that. Maybe it could be similar to JREs configuration in JDT and interpreters in DLTK.
Comment 5 Leo Treggiari CLA 2010-08-02 14:50:23 EDT
(In reply to comment #4)
> One issue with that, it will be possible to have multiple
> versions of the toolchain installed and there will be no easy way for the user
> to choose which version. This is also true for the other toolchains. For
> example, I have 2 different MinGW installed. In CDT 7.0, I can change the
> "path" environment variable to choose which one but this is less than ideal.
> Not sure how to solve that. Maybe it could be similar to JREs configuration in
> JDT and interpreters in DLTK.

If this integration is using the MBS, then you can define the distinct versions as different tool-chains and implement the MBS interface that provides the build environment for the tool-chain.  Then it all happens automagically based upon the tool-chain selected for the configuration.

Note that VS 2010 now uses a similar mechanism.  For example Microsoft supplies the definition of the VC 10.0 tool-chain (VS 2010) and the VC 9.0 tool-chain (VS 2008).  The tool-chain definitions provide their own environment setup.

This is a capability I believe it is important to keep in a new "managed builder" model.

Leo
Comment 6 Marc-André Laperle CLA 2010-09-25 18:42:41 EDT
Created attachment 179580 [details]
Define MS specific modifiers

Hi Doug, I created a Hello World project with the Visual C++ toolchain and noticed that endl was not resolved (with codan). I think some MS specific modifiers can be defined safely as empty symbols to improve parsing:

__cdecl
__fastcall
__restrict
__sptr
__stdcall
__unaligned
__uptr
__w64

see http://msdn.microsoft.com/en-US/library/6bh0054z(v=VS.80).aspx

__based and __declspec will need to be handled differently though.

Defining these symbols brings the result of indexing from 936 unresolved names (2.20%) to 111 unresolved names (0.26%) for a Hello World project.
Comment 7 Andrew Gvozdev CLA 2010-10-21 00:47:04 EDT
(In reply to comment #6)
> Created an attachment (id=179580)
> Define MS specific modifiers
Marc, I can commit your patch if Doug does not mind but could you open a different bug for that?
Comment 8 Doug Schaefer CLA 2010-10-21 11:58:08 EDT
(In reply to comment #7)
> (In reply to comment #6)
> > Created an attachment (id=179580) [details]
> > Define MS specific modifiers
> Marc, I can commit your patch if Doug does not mind but could you open a
> different bug for that?

Yes, please do. If we had Gerrit, I'd do it right now ;). But I'm swamped at the moment.
Comment 9 Marc-André Laperle CLA 2010-10-21 12:52:24 EDT
I opened bug 328384. Thanks!
Comment 10 Marc-André Laperle CLA 2010-10-21 12:54:56 EDT
Comment on attachment 179580 [details]
Define MS specific modifiers

Moved to bug 328384
Comment 11 Doug Schaefer CLA 2011-01-04 14:53:44 EST
The Build integration is already in the CDT 8 builds. Marking fixed.
Comment 12 Marc-André Laperle CLA 2011-01-04 19:09:15 EST
(In reply to comment #11)
> The Build integration is already in the CDT 8 builds. Marking fixed.

This is great news! There is only one small problem though, the feature is not in a category so it doesn't show up unless you uncheck "Group items by category". Would it be possible to add it to CDT Optional Features? Thanks.
Comment 13 Doug Schaefer CLA 2011-01-05 09:51:32 EST
I'll be doing a general clean up of the features for Indigo. We may end up moving everything to the main Indigo repo. Either way, yes, this will be made visible in a category.