# Scanner Configuration Discovery Profile

###### Identifier:

org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile

###### Since:

3.0

###### Description:

A unified definition of a scanner configuration profile. Usually consists of

- A make build output parser

- A scanner info collector

- An external scanner info generator

- An external scanner info generator output parser

###### Configuration Markup:

<!ELEMENT extension (scannerInfoCollector , buildOutputProvider? , scannerInfoProvider*)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #REQUIRED

name CDATA #REQUIRED>

Definition of a profile: - A scanner info collector - A make build output parser - A number of external scanner info providers

- id - Profile id.
- name - The name of the profile will be presented to the user.

<!ELEMENT scannerInfoCollector EMPTY>

<!ATTLIST scannerInfoCollector

class CDATA #REQUIRED

scope (project|file) >

- class - Java class that implements IScannerInfoCollector interface.
- scope -

<!ELEMENT scannerInfoConsoleParser EMPTY>

<!ATTLIST scannerInfoConsoleParser

class CDATA #REQUIRED

compilerCommands CDATA #IMPLIED>

Make build output or external scanner info provider output parser.

- class - Java class that implements IScannerInfoConsoleParser interface.
- compilerCommands - Comma separated list of compiler commands to use for detecting lines with preprocessor options. Example: "gcc, g++, cc, c++"

<!ELEMENT buildOutputProvider (open? , scannerInfoConsoleParser)>

Build output provider is make build or/and build output file.

<!ELEMENT scannerInfoProvider ((run | open) , scannerInfoConsoleParser)>

<!ATTLIST scannerInfoProvider

providerId CDATA #REQUIRED>

Either a command with arguments whose output will provide scanner information or a file that contains the scanner info.

- providerId - An id of the specific provider.

<!ELEMENT run EMPTY>

<!ATTLIST run

class CDATA #IMPLIED

command CDATA #IMPLIED

arguments CDATA #IMPLIED>

- class - A fully qualified name of the Java class that implements `org.eclipse.cdt.make.core.scannerconfig.IExternalScannerInfoProvider2` interface. If not specified then `org.eclipse.cdt.make.internal.core.scannerconfig.DefaultExternalScannerInfoProvider` is the default one used.
- command - A command to run. Example: `gcc`.
- arguments - Arguments for the command. Example: `-E -P -v -dD`.

<!ELEMENT open EMPTY>

<!ATTLIST open

class CDATA #IMPLIED

file CDATA #IMPLIED>

- class - A fully qualified name of the Java class that implements `org.eclipse.cdt.make.core.scannerconfig.IExternalScannerInfoProvider` interface. If not specified then `org.eclipse.cdt.make.internal.core.scannerconfig2.DefaultSIFileReader` is the default one used.
- file - A file containing a make build output or scanner information in some other form.

###### Examples:

[Enter extension point usage example here.]

###### API Information:

[Enter API information here.]

###### Supplied Implementation:

`org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile`