Как сказать Cppdepend, что каталог имеет несколько локальных копий
Для определенного проекта я хочу сделать статистику вроде списка открытых методов и функций. Отличным вариантом может быть использование CppDepend и его встроенный язык запросов.
Наша (унаследованная) база проектов имеет приложения. Каждое приложение находится в своем собственном каталоге, имеет файл проекта и несколько подкаталогов с исходниками. Некоторые подкаталоги совместно используются в нескольких приложениях (используя svn:externals). Моя цель - подсчитать методы и функции в таких общих каталогах только один раз.
Например, если файл my_file.h содержит три функции и извлечен из трех разных локальных каталогов, я все же хочу добавить только 3 к моей статистике, а не 9.
Есть ли способ сообщить cpp, какие каталоги / файлы извлекаются в несколько локальных каталогов, чтобы считать их только один раз?
1 ответ
Чтобы избежать подсчета тех же методов, вы можете добавить отдельный фильтр к запросу 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