Project indirect (or project.lnt) files are indirect (.lnt) files used to configure PC-lint to analyse a specific project configuration. Visual Lint generates these files automatically for each active project configuration.

A quick glance at the contents of such a file reveals that it contains preprocessor directives, the locations of additional include folders and a list of the files in the project, for example:

// Generated by Visual Lint from file: SourceVersioner_vs71.vcproj
// -dConfiguration=Release|Win32

-D_UNICODE;UNICODE            // CharacterSet = "1"
-DWIN32;NDEBUG;_CONSOLE       // PreprocessorDefinitions = "WIN32;NDEBUG;_CONSOLE"
-D_CPPRTTI                    // RuntimeTypeInfo = "TRUE"
-D_MT                         // RuntimeLibrary = "0"


SourceVersioner.cpp           // RelativePath = "SourceVersioner.cpp"
SourceVersionerImpl.cpp       // RelativePath = "SourceVersionerImpl.cpp"
stdafx.cpp                    // RelativePath = "stdafx.cpp"
Shared\FileUtils.cpp          // RelativePath = "Shared\FileUtils.cpp"
Shared\FileVersioner.cpp      // RelativePath = "Shared\FileVersioner.cpp"
Shared\PathUtils.cpp          // RelativePath = "Shared\PathUtils.cpp"
                              // RelativePath = "Shared\ProjectConfiguration.cpp"
Shared\ProjectFileReader.cpp  // RelativePath = "Shared\ProjectFileReader.cpp"
Shared\SolutionFileReader.cpp // RelativePath = "Shared\SolutionFileReader.cpp"
Shared\SplitPath.cpp          // RelativePath = "Shared\SplitPath.cpp"
Shared\StringUtils.cpp        // RelativePath = "Shared\StringUtils.cpp"
Shared\XmlUtils.cpp           // RelativePath = "Shared\XmlUtils.cpp"

These indirect files are critically important in ensuring that PC-lint uses the same analysis configuration as the compiler itself. Any mismatch in preprocessor directives or include paths is likely to result in a deluge of angry (and very misleading) lint error issues.

To make the analysis of complex codebases simpler Visual Lint generates these files automatically where possible. In most cases, it can interpret IDE specific environment variables (e.g. $(ProjectDir) ) and referenced property (e.g. .vsprops or .props) files directly.

If you need to postprocess the contents of generated project indirect files for a particular solution or workspace you can use a command line tool to do so in Visual Lint Enterprise and Build Server Editions. A command line tool used in this way will be passed the pathname of the indirect file as a parameter, and should write the results to the same file if it needs to make any modifications. See the Analysis Configuration Dialog Advanced page for details.

Copyright © 2004 - 2015 by Riverblade Ltd. All rights reserved.