mirror of
https://github.com/github/codeql.git
synced 2026-01-15 15:34:49 +01:00
Some files that will change in #1736 have been spared. ./build -j4 target/jars/qlformat find ql/cpp/ql -name "*.ql" -print0 | xargs -0 target/jars/qlformat --input find ql/cpp/ql -name "*.qll" -print0 | xargs -0 target/jars/qlformat --input (cd ql && git checkout 'cpp/ql/src/semmle/code/cpp/ir/implementation/**/*SSA*.qll') buildutils-internal/scripts/pr-checks/sync-identical-files.py --latest
31 lines
883 B
Plaintext
31 lines
883 B
Plaintext
/**
|
|
* @name Indirect source includes per file
|
|
* @description The number of source files included by the
|
|
* pre-processor - either directly by an `#include`
|
|
* directive, or indirectly (by being included by an
|
|
* included file). This metric excludes included files
|
|
* that aren't part of the main code base (like system
|
|
* headers).
|
|
* @kind treemap
|
|
* @id cpp/transitive-source-includes-per-file
|
|
* @treemap.warnOn highValues
|
|
* @metricType file
|
|
* @metricAggregate avg max
|
|
* @tags maintainability
|
|
* modularity
|
|
*/
|
|
|
|
import cpp
|
|
|
|
predicate isInCodebase(File f) {
|
|
exists(string prefix | sourceLocationPrefix(prefix) |
|
|
f.getAbsolutePath().prefix(prefix.length()) = prefix
|
|
)
|
|
}
|
|
|
|
from File f, int n
|
|
where
|
|
f.fromSource() and
|
|
n = count(File g | g = f.getAnIncludedFile+() and isInCodebase(g))
|
|
select f, n
|