Как сказать 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
Другие вопросы по тегам