对于某些项目,我想进行统计,例如公共方法和函数的列表。不错的选择可能是使用 CppDepend,它是内置的查询语言。
我们的(遗留(项目基础有应用程序。每个应用程序都位于其自己的目录中,具有项目文件和一些带有源代码的子目录。某些子目录在多个应用程序中共享(使用 svn:externals(。我的目标是只对此类共享目录中的方法和函数进行一次计数。
例如,如果文件 my_file.h 包含三个函数并签出到三个不同的本地目录,我仍然只想在我的统计数据中添加 3 而不是 9。
有没有办法告诉 cpp 哪些目录/文件被签出到多个本地目录以只计算一次?
为了避免计算相同的方法,您可以将不同的过滤器添加到 cqlinq 查询中,如下所示:
from m in JustMyCode.Methods.Distinct(m=>m.FullName)
select m
所以每个方法都会被计数一次,或者你可以通过添加源文件名的过滤器来改进查询以避免过滤具有相同签名但不相同的方法
from m in JustMyCode.Methods.Distinct(m=>new {m.FullName,m.SourceDecl.SourceFile.FileName})
select m