mirror of https://github.com/rusefi/openblt.git
222 lines
10 KiB
Plaintext
222 lines
10 KiB
Plaintext
/* Date Stamp */ -d"_lint_env_vc10_lnt=env-vc10.lnt modified 22-Feb-2012"
|
|
/* To document usage use: -message( "Using " _lint_env_vc10_lnt ) */
|
|
// ---------------------------------------------------------------------
|
|
// This file is provided by Gimpel Software (www.gimpel.com) for use with
|
|
// its products PC-lint and FlexeLint.
|
|
//
|
|
// Redistribution and use of this file, with or without modification, is
|
|
// permitted provided that any such redistribution retains this notice.
|
|
// ---------------------------------------------------------------------
|
|
/*
|
|
env-vc10.lnt: environment parameters for Microsoft's Visual C++ 10.0
|
|
|
|
If you are using Microsoft Visual Studio 2010 and you wish to invoke
|
|
PC-lint from that environment then add one or more commands to the
|
|
Tools menu as follows.
|
|
|
|
Simple Check
|
|
------------
|
|
|
|
For example, to add a simple facility to lint the current file you
|
|
may do the following:
|
|
|
|
1. From the Tools Menu choose "External Tools ..."
|
|
2. Click the "Add" button.
|
|
3. You will now be able to enter the fields of this Tool.
|
|
Modify them so that they approximate the following:
|
|
|
|
Title: PC-lint (Simple Check)
|
|
Command: c:\lint\lint-nt.exe
|
|
Arguments:
|
|
-i"c:\lint" std.lnt env-vc10.lnt "$(ItemFileName)$(ItemExt)"
|
|
Initial Directory: $(ItemDir)
|
|
|
|
X_Use Output Window __Prompt for arguments __Close on exit
|
|
|
|
Please note that you will have to change the "Command:" path if
|
|
the PC-lint Installation Directory is anything other than c:\lint
|
|
and you will have to change the "Arguments:" line if the
|
|
Configuration Directory is anything other than c:\lint
|
|
|
|
4. Select OK to return to the main environment.
|
|
|
|
This will result in the Tools menu containing the additional item
|
|
"PC-lint (Simple Check)". Checking 'X' on 'Use Output Window' is
|
|
important because in this way you can advance from error to error
|
|
using the F8 key (Shift F8 to reverse).
|
|
|
|
Strings of the form $(...) are called macros and can be typed in
|
|
directly as shown or can be selected from a menu by clicking
|
|
a right arrow in the dialog box. $(ItemFileName) refers to the
|
|
file name of the currently edited file without its path and without
|
|
its extension. $(ItemExt) is its extension. $(ItemDir) represents
|
|
the file's directory.
|
|
|
|
You will probably want to advance your new tool upward into the
|
|
initial position of all tools while you are testing and modifying the
|
|
command. You can do this by using the "Move Up" button that appears
|
|
on the External Tools dialog.
|
|
|
|
The benefits of using "Initial Directory" are that file-names in lint
|
|
error messages will not be so long, and, also, this directory can
|
|
contain a std.lnt that overrides the global std.lnt in the
|
|
Configuration Directory.
|
|
|
|
This Simple Check is fine to check stand-alone modules but to check
|
|
projects or to unit check modules that are in projects we need to
|
|
go a bit further ...
|
|
|
|
Project Creation
|
|
----------------
|
|
|
|
To lint an entire project we will need the names of all the modules
|
|
in the project. Visual Studio keeps these names (as well as some
|
|
appropriate options such as define options (-d...) and include options
|
|
(-i...) in a file named NAME.vcproj in the current project directory.
|
|
NAME is the name of the project and is identified by the macro
|
|
$(TargetName). PC-lint can read the .vcproj file and generate the
|
|
appropriate .lnt file. We recommend creating a tool for this purpose.
|
|
For this tool follow the steps 1-4 doing exactly the same thing as
|
|
above except in step 3, the information entered should be:
|
|
|
|
Title: PC-lint (Project Creation)
|
|
Command: c:\lint\lint-nt.exe
|
|
Arguments: -v -os("$(TargetName).lnt") "$(ProjectFileName)"
|
|
Init. Dir.: $(ProjectDir)
|
|
|
|
__Use Output Window __Prompt for arguments x_Close on exit
|
|
|
|
You will need to have an active project before this will work.
|
|
If you don't already have one you can obtain an active project
|
|
from the Solutions Explorer. You then click the newly added
|
|
"PC-lint (Project Creation)" tool on the tools menu to create
|
|
NAME.lnt.
|
|
|
|
The file created is an ASCII file and we recommend that you open it
|
|
within the IDE and examine it for any obvious flaws. This is your
|
|
chance to make any necessary modifications to the file as the process
|
|
of conversion may be less than perfect.
|
|
|
|
Project Check
|
|
-------------
|
|
|
|
Interestingly, by opening up the NAME.lnt file created above and
|
|
running the Simple Check described earlier you have the equivalent
|
|
of a full project check. However, we prefer to create a special
|
|
Project Check tool.
|
|
|
|
Now that we have a project file we can create a new tool called
|
|
"PC-lint (project check)". For this tool again follow steps 1-4 doing
|
|
exactly the same thing as above except in step 3, the information
|
|
entered should be:
|
|
|
|
Title: PC-lint (Project Check)
|
|
Command: c:\lint\lint-nt.exe
|
|
Arguments: -i"c:\lint" std.lnt env-vc10.lnt "$(TargetName).lnt"
|
|
Init. Dir.: $(ProjectDir)
|
|
|
|
X_Use Output Window __Prompt for arguments __Close on exit
|
|
|
|
Unit Check
|
|
----------
|
|
|
|
You can almost do a unit check on any single module by using the
|
|
Simple Check scheme suggested above. The only problems are that you
|
|
will need a -u option and you will not have the benefit of any -d or
|
|
-i options that have been placed into NAME.lnt created in the Project
|
|
Creation step. For this reason we suggest the following tool for
|
|
doing a unit check of any module that is part of a project and for
|
|
which a .lnt project file has been generated.
|
|
|
|
Title: PC-lint (Unit Check)
|
|
Command: c:\lint\lint-nt.exe
|
|
Arguments:
|
|
-i"c:\lint" std.lnt env-vc10.lnt --u "$(TargetName).lnt" "$(ItemPath)"
|
|
|
|
Init. Dir.: $(ProjectDir)
|
|
|
|
X_Use Output Window __Prompt for arguments __Close on exit
|
|
|
|
Note that $(ItemPath) will provide a complete path name and in the
|
|
absence of a project.lnt file it would cause full path names to
|
|
appear in messages. But a side effect of using the project file
|
|
with the --u option means that we adopt the shorter names used
|
|
in the project file.
|
|
|
|
Suppressing Messages
|
|
----------- --------
|
|
|
|
Suppressing messages is normally done by adding message suppression
|
|
options to a file. For example, -e550 will suppress message 550.
|
|
There are numerous other options to suppress messages.
|
|
|
|
As the documentation indicates, the file
|
|
|
|
c:\lint\options.lnt
|
|
|
|
(where c:\lint\ is the Configuration Directory) is the presumed
|
|
container of your overall suppression policy. (Note: options.lnt is
|
|
referenced by std.lnt). Add a message suppression here and you will
|
|
affect all linting employing that configuration.
|
|
|
|
To suppress messages for a particular project (or for all projects
|
|
within a given project directory) you may do the following:
|
|
Create a file std.lnt that is contained in the project directory.
|
|
Make it refer back to the std.lnt in the Configuration Directory.
|
|
Then add additional message suppression options or indeed any options
|
|
you want. For example it might contain:
|
|
|
|
c:\lint\std.lnt // reference to original std.lnt
|
|
-e550 // project-specific option
|
|
|
|
In this way suppression is limited to a particular project.
|
|
|
|
|
|
Tool Bar
|
|
--------
|
|
|
|
You also have the option of creating a PC-lint toolbar within your
|
|
Visual C++ IDE. First, create one or more tools as described above.
|
|
You will need to know the number(s) of the tool(s) you want to place
|
|
on the tool bar. This can only be done by the painful and laborious
|
|
task of counting. Using the list provided by "Tools"/"External
|
|
Tools", jot down the numbers (starting with 1 at the top) of all the
|
|
tools to be added to the tool bar. We recommend placing all the
|
|
PC-lint tools on a single tool bar. Then select Customize from the
|
|
Tools menu. Select the Toolbars tab and click the New... button.
|
|
Give the Toolbar a name (E.g., PC-lint) in the dialog box provided
|
|
and click "OK". Confirm that the new toolbar is now floating on
|
|
the desktop and that a check has been placed in the check box next
|
|
to the new toolbar name. Then click on the Commands tab and
|
|
select the "Toolbar:" radio button. Open the drop down list and
|
|
select "PC-Lint" from the choices. Click the "Add Command..."
|
|
button to reveal the "Add Command" window. In the "Categories:"
|
|
box scroll down to and select the "Tools" item. In the
|
|
"Commands:" box scroll down to and select the appropriate
|
|
"External Command" numbered item that corresponds to the desired
|
|
PC-Lint command, then click the OK button to add the selected item
|
|
to the PC-Lint toolbar. Repeat the "Add Command..." process for
|
|
each desired PC-Lint command the you wish to place on the PC-Lint
|
|
toolbar.
|
|
|
|
If you want to add a button image to the toolbar, you can choose one
|
|
via the Modify Selection button. Click Close and you now have your
|
|
own PC-lint for C/C++ button. (Note: If you change the location of
|
|
the PC-lint menu item on the Tools menu, you will change the subscript
|
|
and you will need to change the button(s) on the toolbar.)
|
|
|
|
*/
|
|
|
|
|
|
-"format=%(%F(%l):%) error %n: (%t -- %m)" // Messages will contain
|
|
// file information (%F), the line number (%l), the
|
|
// message number (%n), message type (%t) and message text (%m).
|
|
|
|
-hF2 // Make sure we ALWAYS provide file information ('F') and use 2
|
|
// lines (one for the source line in error and one for the
|
|
// message).
|
|
|
|
-width(0) // don't break messages at any particular width
|
|
-t4 // Presume that tabs are every 4 stops
|
|
//+e900 // issue a message at termination.
|