NAME
Devel::Depend::Cpp - Extract dependency trees from c files
SYNOPSIS
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
) ;
OUTPUT
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
DESCRIPTION
Extract dependency trees from c files.
MEMBER FUNCTIONS
Depend
Depend calls cpp (the c pre-processor) to extract all the included files.
Returns
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
Arguments
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.
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.
CollapsePath
Removes '.' and '..' from a path.
EXPORT
$PreprocessorDepend, a scalar containing a reference to the Depend sub.
DEPENDENCIES
cpp.
AUTHOR
Khemir Nadim ibn Hamouda
CPAN ID: NKH
mailto:nadim@khemir.net
http:// no web site
COPYRIGHT
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.
SEE ALSO
PerlBuldSystem.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 225:
Unknown directive: =comment