Author |
Topic |
|
gstelmack
Ketchup Master
USA
76 Posts |
Posted - Mar 26 2004 : 12:52:49 PM
|
I've been mentioning this off-and-on in other topics, but have more info and so wanted to separate this into its own topic. I'm using VAX 1223 on VS.NET 2003.
We have a set of "common" libraries that we use across multiple projects. These include our container classes, math classes, etc. Because they are common across projects and don't change very often, they are treated as if they were third-party libraries.
We also use Havok as our only other third-party library (well, DirectX and XDK, but Microsoft installs them as if they were part of the system and they get picked up fine). I have paths to our math, utility, and Havok libraries set up in the "Custom" platform "Other Include Files" section. The Havok headers are parsed fine, but our utility and math headers are not.
The only real difference between these setups that may lend a clue is that Havok is also listed in the Visual C++ include directories so that the compiler will pick them up, while the path to our common headers comes from the project settings "Additional Include Directories" (for legacy reasons).
The two effects I see from this problem in the IDE are that none of our common classes are colored or show up in completions, and if I put my cursor on the #include line for one of these headers, I can't use the "Open file" option in the right-click menu, and the VAX info bar at the top of the source file does not show the full path to the header (and Goto won't work).
So my question is: what is the correct way to get third-party headers to show up in VAX? My symptoms seem to show that only headers listed in the VC++ directory dialogs are being parsed. How do I get VAX to pick up my common headers? I thought some of the other topics indicated people were having success with this, so I'm not sure how much of the problem is me misusing the feature, and how much might really be a bug. |
-- Greg Stelmack, Red Storm Entertainment |
|
gstelmack
Ketchup Master
USA
76 Posts |
Posted - Apr 01 2004 : 09:45:10 AM
|
Any information on this? Basically, if I add a directory to the Custom platform, it only seems to get parsed if the path is also in the VC++ paths. |
-- Greg Stelmack, Red Storm Entertainment |
|
|
gstelmack
Ketchup Master
USA
76 Posts |
Posted - Apr 30 2004 : 09:43:38 AM
|
Still happening with 1232. Any word of a fix? Any help with what I might be doing wrong? Note that many of our base types are down in these directories, so I'm having a devil of a time using them. |
-- Greg Stelmack, Red Storm Entertainment |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Apr 30 2004 : 3:48:29 PM
|
If your "common" libraries are listed in "Additional Include Directories", VA X should find them when Platform=Win32 (or anything but Custom) in our C/C++ Directories tab. You should have to change Platform to Custom only when your directories are not in IDE settings, eg you use the IDE to write Linux code.
Your test for knowing if VA X can find a header is correct. Click on the #include. The full path should appear in our Definition field.
Anything unusual about the directories you include? Linked?
Can you post or send us a [zipped] screen shot of your "Additional Include Directories" dialog? |
Whole Tomato Software, Inc. |
Edited by - support on Apr 30 2004 5:47:13 PM |
|
|
gstelmack
Ketchup Master
USA
76 Posts |
Posted - May 03 2004 : 09:46:54 AM
|
While taking the screenshots I finally figured this out. The problem happened because we set our options to use include paths to the top of an include tree, and then use subdirectories in our include statements. For example, my project settings for the actual IDE project has:
/I "..\\..\\..\\common-x\\code"
And then a use of the include file is:
#include "Math/RSGeometry2.h"
But because the tooltip for the VAX options says "Subdirectories must be listed individually", I put:
C:\\Develop\\common-x\\code\\math
C:\\Develop\\common-x\\code\\utility
in the VAX options tab. I was under the impression that VAX collects all the headers under each of these directories individually, but apparently if I change the VAX options to:
C:\\Develop\\common-x\\code
it finds the includes as it parses the individual source file, and now everything is happy. With the individual directories spelled out, VAX could not find the headers.
So I'm running fine now. The tooltip is a bit misleading, but I can't really offer a better wording as a suggestion. |
-- Greg Stelmack, Red Storm Entertainment |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - May 03 2004 : 11:06:36 PM
|
The comment about subdirectories is intended primarily for people who use external makefiles, hence the custom settings, and whose make facilities expand subdirectories before starting a compile. Such people are accustomed to specifying one parent directory, somewhere under which all headers are found.
Where exactly do you set, my project settings for the actual IDE project has: /I "..\\..\\..\\common-x\\code"?
|
Whole Tomato Software, Inc. |
|
|
gstelmack
Ketchup Master
USA
76 Posts |
Posted - May 04 2004 : 09:09:16 AM
|
quote: Originally posted by support
The comment about subdirectories is intended primarily for people who use external makefiles, hence the custom settings, and whose make facilities expand subdirectories before starting a compile. Such people are accustomed to specifying one parent directory, somewhere under which all headers are found.
Where exactly do you set, my project settings for the actual IDE project has: /I "..\\..\\..\\common-x\\code"?
This setting is in the project settings in the IDE. Right click on the project in the solution view, select properties, go to the C/C++ general tab, and it's in "Additional Include Directories". |
-- Greg Stelmack, Red Storm Entertainment |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - May 04 2004 : 2:47:44 PM
|
VA X should find your headers with your setting of "Additional Include Directories". This was not the case with earlier builds of VA X. We did not parse your ..\\.. correctly.
If you have build 1233, you might try changing Platform back to Win32, or anything but Custom. Restart your IDE. VA X should find all of your headers. |
Whole Tomato Software, Inc. |
|
|
gstelmack
Ketchup Master
USA
76 Posts |
Posted - May 05 2004 : 09:29:50 AM
|
It does find them fine now that I've switched to the parent directory, rather than specifying the individual subdirectories. |
-- Greg Stelmack, Red Storm Entertainment |
|
|
|
Topic |
|