--- proj4.0p0.conf 2014-05-29 15:57:33.909312500 +0000 +++ proj4.0p1.conf 2014-05-29 15:58:25.257312500 +0000 @@ -128,12 +128,60 @@ # # Type # Whitespace-separated list of rules of the form -# executable-basename -> model +# [path/to/]executable -> model[:ABIkey] +# +# On Windows systems, include .exe suffix on the executable name. +# +# Behavior +# Invocations of executable will be modeled using model. +# +# If [path/to/] is provided, the mapping only applies to +# executables with matching paths or subpaths. For example, +# bin\mycc.exe -> cl +# will match invocations of c:\bin\mycc.exe and +# c:\very\long\path\to\bin\mycc.exe, but not c:\mybin\mycc.exe or +# c:\usr\lib\mycc.exe. +# +# [Windows only] Absolute paths referring to files on network file +# systems do not currently work, unless they are specified using +# the \Device\Mup\... syntax used by the kernel. You may wish to +# use a path suffix omitting the machine and share name instead. +# This will change in future releases if we can determine a +# sanctioned and portable way to normalize paths to the +# \Device\Mup\... syntax (please contact us if you are aware of +# such a mechanism). +# +# If [:ABIkey] is provided, CodeSonar will associate the specified +# ABI key with all compilation units compiled by the specified +# executable. +# - The project-compiler configuration file +# [doc/html/Preferences/PreferencesIndex.html#project_compiler] +# loaded during the parse phase will include the ABI key in its +# name. This allows users to specify different configuration +# settings for different ABIs. +# - CodeSonar will prefer to link compilation units with the same +# ABI key when constructing the CodeSonar project. +# - Keys are user-specified, and will only be used within +# CodeSonar. To maximize clarity, we recommend using keys that do +# not conflict with compiler model names +# [doc/html/C_Module/CompilerModels/CompilerModels.html#preinstalled]. +# - When a single source file is compiled multiple times with +# different ABI keys, one instance will be kept for each key. +# +# Later COMPILER_MODELS rules can supersede earlier ones. For +# example, if the configuration file contains the following rule +# sequence: +# a/b/mycc -> cl:AB +# c/d/mycc -> cl:CD +# mycc -> cl:EF +# then all compilations with mycc, including compilations with +# a/b/mycc and c/d/mycc, will be associated with compiler model cl +# and ABI key EF. # # Notes # On Windows, the file extension (which should be .exe or .com) for -# the domain is not optional. Some examples are given below. The -# range of the map is the list of 'model used' entries in the +# the executable is not optional. Some examples are given below. +# The range of the map is the list of 'model used' entries in the # appropriate Compilers Recognized # [doc/html/C_Module/CompilerModels/CompilersRecognized.html] # table. Users can also author new compiler models in Scheme, @@ -273,6 +321,54 @@ # COMPILER_MODELS += ccppc -> ccppc # COMPILER_MODELS += c++ppc -> c++ppc # +# Custom Usage Examples +# +# [Windows] Treat anything named mycc.exe like cl. +# mycc.exe -> cl +# +# [Windows] Treat c:\compilers\mycc.exe (but not, eg, +# c:\usr\local\mycc.exe) like cl. +# c:\compilers\mycc.exe -> cl +# +# [Windows] Treat C:\Program Files (x86)\My IDE v8\bin\mycc.exe +# like cl. Note that the path must be quoted because it contains +# spaces. +# "C:\Program Files (x86)\My IDE v8\bin\mycc.exe" -> cl +# +# [Windows] Treat any executable with path suffix bin\mycc.exe like +# cl. Note that this will match the path in the previous example, +# but not (for example) C:\mybin\mycc.exe. +# bin\mycc.exe -> cl +# +# [Windows] Treat anything named mycc.exe like cl. Associate ABI +# key ABC with any translation units compiled by this compiler. +# mycc.exe -> cl:ABC +# +# [Windows] Handle all compilations with any cl.exe executable +# using the cl compiler model, using ABI keys to distinguish +# compilations from certain cl.exe installations. +# cl.exe -> cl:default +# C:\bin\a\b\cl.exe -> cl:AB +# C:\bin\c\d\cl.exe -> cl:CD +# +# [Posix] Treat anything named mycc like gcc. +# mycc -> gcc +# +# [Posix] Treat /tmp/mycc (an absolute path) like gcc. +# /tmp/mycc -> gcc +# +# [Posix] Treat any executable with path suffix tmp/mycc like gcc. +# Note that this will match the path in the previous example, but +# not (for example) /u/mytmp/mycc. +# tmp/mycc -> gcc +# +# [Windows] Handle all compilations with any gcc executable using +# the gcc compiler model, using ABI keys to distinguish +# compilations from certain gcc installations. +# gcc -> gcc:default +# /a/b/gcc -> gcc:AB +# /c/d/gcc -> gcc:CD + @@ -286,7 +382,8 @@ # would, by default, notice. # # Type -# Whitespace separated list of compiler basenames +# Whitespace separated list of compiler names (basenames, path +# prefixes, or full paths). # # Behavior # Invocations of compilers listed here will be ignored by the @@ -382,36 +479,27 @@ # {Yes, No} # # Behavior -# Every time a process calls exec, if the CS_ENVIRON environment -# variable has not been written over, then any important -# environment variables (such as LD_PRELOAD, LD_LIBRARY_PATH) that -# have been written over will be repaired in the environment used -# to create the new process. +# Every time a process calls exec, if any important environment +# variables (such as LD_PRELOAD, LD_LIBRARY_PATH) have been written +# over, they will be repaired in the environment used to create the +# new process. # # Notes # This parameter has no effect on Windows systems. # # Most build systems do not need this to be set. The most common -# cause for setting this to "Yes" is a build system that overwrites -# LD_PRELOAD at some point. -# -# If your build system writes over the entire environment or the -# CS_ENVIRON variable at some point, then in addition to setting -# FORCE_ENVIRONMENT to "Yes", you will need to resurrect the -# CS_ENVIRON environment variable to the value it had before it was -# written over. +# cause for setting this to "Yes" is a build system that wipes the +# environment, such as SCons. # # Setting this to "Yes" can prevent build systems from causing # compiler invocations to be missed. If you believe source files -# (compilation units) are missing from your project and -# COMPILER_MODELS is set correctly, then setting this to "Yes" may -# help. It is slightly invasive and could conceivably cause +# (compilation units) are missing from your project, +# COMPILER_MODELS is set correctly, and the compiler is actually +# getting executed by the build system, then setting this to "Yes" +# may help. It is slightly invasive and could conceivably cause # problems, although none have been observed. # -# The CS_ENVIRON environment variable, if set, takes precedence -# over FORCE_ENVIRONMENT. -# -#FORCE_ENVIRONMENT = No +#FORCE_ENVIRONMENT = Yes # Parameter UNIX_TEXT_MODE