Products, the Universe and Everything

The Riverblade Developer's Blog

Beth demonstrating Visual Lint at the ACCU Conference 2008  Anna taking part in a discussion panel at the European Software Conference 2007 

Welcome to our developer's blog. We hope that this forum provides an insight into us, our products and how we develop them. Please feel free to write to us if you have anything to add to any of the posts here.

Current Entries | Archives |


The next version of LintProject
Monday, April 18, 2005

This weekend we were finally able to dust off the LintProject source and started preparing the next version. Although we're been concentrating heavily on Visual Lint recently, we've now reached the stage where we can take a short breather while our testers get to work. So far it's looking good - but we'll talk about that in another post.

Back to LintProject.

LintProject currently makes a couple of assumptions about the projects you're analysing:

  1. You want to analyse the debug configuration

  2. All projects have a debug folder in which .tlh/.tli files (created by #import directives) can be found.
This is somewhat limiting - the user should be able to specify which configuration to analyse at the solution level, and LintProject should determine the corresponding intermediate files folder from the project files.

Since LintProject doesn't have access to the DTE interface which exposes the properties we'd use to determine these properties, it has to parse the solution and project files to do this. Furthermore, since it supports both VC6 and VS.NET we have not one but two sets of formats to interpret!

VC6 and VS.NET also differ in the way build configurations are specified for projects, which obviously affects the way LintProject instructs PC-Lint to generate .lnt files.

e.g. for VC6, you might specify:

+d"CFG=ProjectName - Win32 Release"
The corresponding option for VS.NET projects would be:

+d"Configuration=Release|Win32"
The good news is that we're well into implementing this. The VC6 side of the project file parsing has been updated to read the required properties, and so far its performing as expected in our tests.

We still have the VS.NET project file parsing to implement (and modifications to the HTML reports to indicate which build configuration was analysed), but that shouldn't be a big deal.

Here's the full list of changes we have underway for this version. If there's something you'd like us to add, please tell us and we'll consider it.

  1. Added the +linebuf parameter to the command line used to generate project.lnt files. This increases the line width which PC-Lint will use when scanning the project file, and makes it more likely to work correctly with complex projects such as AnkhSVN (Beth identified this issue while researching add-in project event handling, and the source makes an excellent test case since it is multilanguage and has a somewhat unusual structure).

  2. Transposed the std.lnt and project.lnt location in the command line used to analyse a file. This should ensure that project specific include settings override the system defaults.

  3. Project configurations can now be specified. If not specified, Lintproject will use the debug configuration by default.

  4. The source now compiles with either VC6 or VS.NET 2003.

  5. User specified parameters can now be passed to the project.lnt file generation process as well as during analysis.

Posted by Anna at 21:33 | Get Link