microsoft / CMake
Components & Dependencies

An overview of source code logical components.

Intro

Logical decomposition is a representation of the organization of the main source code, where every and each file is put in exactly one logical component.

  • A software system can have one or more logical decompositions.
  • A logical decomposition can be defined in two ways in Sokrates.
  • First approach is based on the folders structure. Components are mapped to folders at defined folder depth relative to the source code root.
  • Second approach is based on explicit definition of each component. In such explicit definitions, components are explicitly named and their files are selected based on explicitly defined path and content filters.
  • A logical decomposition is considered invalid if a file is selected into two or more components.This constraint is introduced in order to facilitate measuring of dependencies among components.
  • Files not assigned to any component are put into a special "Unclassified" component.
Learn more...
Logical Decompositions Overview

Analyzed system has 1 logical decomposition:

  • primary (55 components)

Logical Decomposition #1: PRIMARY

The decompositions is based on the folder structure (relative to the source code root), with automatically defined folder depth to have at least 10 components.

Bubble Chart | Tree Map
Components
The "primary" logical decomposition has 55 components.
  • 3,379 files, 691,418 lines of code (100.0% vs. main code).
  • "Source" is biggest, containing 22.68% of code.
  • "Modules/IntelVSImplicitPath" is smallest, containing 0% of code.


Source156815 LOC (22%) 735 files
Utilities/cmcurl100696 LOC (14%) 334 files
Utilities/cmlibarchive95678 LOC (13%) 183 files
Modules72231 LOC (10%) 418 files
Utilities/cmlibuv40596 LOC (5%) 124 files
Source/LexerParser28685 LOC (4%) 32 files
Utilities/cmzstd26990 LOC (3%) 68 files
Source/kwsys24642 LOC (3%) 71 files
Source/CTest20210 LOC (2%) 105 files
Utilities/cmnghttp218448 LOC (2%) 47 files
Utilities/cmliblzma16409 LOC (2%) 147 files
Source/CPack12665 LOC (1%) 75 files
Utilities/cmexpat12556 LOC (1%) 21 files
Source/CursesDialog6784 LOC (<1%) 74 files
Utilities/cmzlib6399 LOC (<1%) 23 files
Source/QtDialog6252 LOC (<1%) 37 files
Modules/Platform6239 LOC (<1%) 355 files
Utilities/cmbzip25830 LOC (<1%) 15 files
Utilities/cmjsoncpp5441 LOC (<1%) 15 files
Modules/Internal5205 LOC (<1%) 27 files
Modules/Compiler4473 LOC (<1%) 186 files
Modules/FindPython3032 LOC (<1%) 1 files
Utilities/cmlibrhash2444 LOC (<1%) 20 files
Utilities/cmelf1505 LOC (<1%) 3 files
Utilities/KWIML1345 LOC (<1%) 4 files
Utilities/std1170 LOC (<1%) 4 files
Help/guide1052 LOC (<1%) 89 files
Utilities/Scripts894 LOC (<1%) 20 files
ROOT779 LOC (<1%) 8 files
Utilities/Release714 LOC (<1%) 14 files
Modules/FindCUDA704 LOC (<1%) 4 files
Utilities/Sphinx682 LOC (<1%) 10 files
Utilities/cmvssetup428 LOC (<1%) 1 files
Auxiliary412 LOC (<1%) 1 files
Modules/CompilerId411 LOC (<1%) 9 files
Source/Modules365 LOC (<1%) 7 files
Source/Checks358 LOC (<1%) 13 files
Utilities307 LOC (<1%) 2 files
Modules/FortranCInterface286 LOC (<1%) 20 files
Auxiliary/vim251 LOC (<1%) 2 files
Templates211 LOC (<1%) 3 files
Modules/AndroidTestUtilities162 LOC (<1%) 1 files
Utilities/cm3p107 LOC (<1%) 16 files
Modules/UseJava101 LOC (<1%) 4 files
Packaging/QtSDK78 LOC (<1%) 2 files
Utilities/Doxygen78 LOC (<1%) 1 files
Source/QtIFW75 LOC (<1%) 6 files
Templates/MSBuild54 LOC (<1%) 2 files
Modules/CheckIPOSupported41 LOC (<1%) 9 files
Modules/FindMPI39 LOC (<1%) 4 files
Modules/UseSWIG24 LOC (<1%) 1 files
VSInsertion/Signing23 LOC (<1%) 1 files
Modules/FetchContent21 LOC (<1%) 1 files
Modules/CMakeAddFortranSubdirectory11 LOC (<1%) 2 files
Modules/IntelVSImplicitPath10 LOC (<1%) 2 files
Dependencies
Dependencies among components are static code dependencies among files in different components.

No component dependencies found.



2022-01-30 09:45