Devel::Depend::Cpp - Extract dependency trees from c files
use Devel::Depend::Cpp; my ($success, $includ_levels, $included_files) = Devel::Depend::Cpp::Depend ( undef, # use default 'cpp' command '/usr/include/stdio.h', '', # switches to cpp 0, # include system includes 0, # dump 'cpp' output in terminal ) ;
include levels for '/usr/include/stdio.h': |- 1 | |- /usr/include/bits/stdio_lim.h | |- /usr/include/bits/sys_errlist.h | |- /usr/include/bits/types.h | |- /usr/include/features.h | |- /usr/include/libio.h | `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h |- 2 | |- /usr/include/_G_config.h | |- /usr/include/bits/typesizes.h | |- /usr/include/bits/wordsize.h | |- /usr/include/gnu/stubs.h | |- /usr/include/sys/cdefs.h | |- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stdarg.h | `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h |- 3 | |- /usr/include/gconv.h | |- /usr/include/wchar.h | `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h |- 4 | |- /usr/include/bits/wchar.h | |- /usr/include/wchar.h | `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h `- 5 `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h '/usr/include/stdio.h' included files: |- /usr/include/_G_config.h |- /usr/include/bits/stdio_lim.h |- /usr/include/bits/sys_errlist.h |- /usr/include/bits/types.h |- /usr/include/bits/typesizes.h |- /usr/include/bits/wchar.h |- /usr/include/bits/wordsize.h |- /usr/include/features.h |- /usr/include/gconv.h |- /usr/include/gnu/stubs.h |- /usr/include/libio.h |- /usr/include/sys/cdefs.h |- /usr/include/wchar.h |- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stdarg.h `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h '/usr/include/stdio.h' included files tree: |- /usr/include/bits/stdio_lim.h |- /usr/include/bits/sys_errlist.h |- /usr/include/bits/types.h | |- /usr/include/bits/typesizes.h | |- /usr/include/bits/wordsize.h | `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h |- /usr/include/features.h | |- /usr/include/gnu/stubs.h | `- /usr/include/sys/cdefs.h |- /usr/include/libio.h | |- /usr/include/_G_config.h | | |- /usr/include/gconv.h | | | |- /usr/include/wchar.h | | | | |- /usr/include/bits/wchar.h | | | | `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h | | | `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h | | |- /usr/include/wchar.h | | `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h | `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stdarg.h `- /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h
Extract dependency trees from c files.
Depend calls cpp (the c pre-processor) to extract all the included files.
Success flag
A reference to a hash where the included files are sorted perl level. A file can appear at different levels
A reference to a hash with one file per entry
A reference to a hash representing an include tree
A string containing an error message, if any
the name of the 'cpp' binary to use. undef to use the first 'cpp' in your path
The name of the file to depend
A string to be passed to cpp, ex: '-DDEBUG'
A boolean indicating if the system include files should be included in the result (anything under /usr/)
a sub reference to be called everytime a node is added (see depender.pl for an example)
A boolean indicating if the output of cpp should be dumped on the screen
This sub is a wrapper around RunAndParse.
This sub runs a, preprocessor, command passed as an argument and parses its output. The output is expected to follow the cpp output format. This sub allows finer control of the preprocessing. Try Depend first.
Removes '.' and '..' from a path.
$PreprocessorDepend, a scalar containing a reference to the Depend sub.
cpp.
Khemir Nadim ibn Hamouda CPAN ID: NKH mailto:nadim@khemir.net http:// no web site
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
PerlBuldSystem.
1 POD Error
The following errors were encountered while parsing the POD:
Unknown directive: =comment
To install Devel::Depend::Cpp, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Devel::Depend::Cpp
CPAN shell
perl -MCPAN -e shell install Devel::Depend::Cpp
For more information on module installation, please visit the detailed CPAN module installation guide.