1Getopt(3)             User Contributed Perl Documentation            Getopt(3)
2
3
4

NAME

6       Verilog::Getopt - Get Verilog command line options
7

SYNOPSIS

9         use Verilog::Getopt;
10
11         my $opt = new Verilog::Getopt;
12         $opt->parameter (qw( +incdir+standard_include_directory ));
13
14         @ARGV = $opt->parameter(@ARGV);
15         ...
16         print "Path to foo.v is ", $opt->file_path('foo.v');
17

DESCRIPTION

19       Verilog::Getopt provides standardized handling of options similar to
20       Verilog/VCS and cc/GCC.
21

OPTIONS

23       The new() constructor accepts the following options:
24
25       filename_expansion=>1
26           Enable converting filenames to relative filenames when possible.
27           This option is needed when the -F option will be used.  If flags
28           are passed through Getopt which should otherwise not be expanded
29           (e.g. "--out myfile.v") having this option set may undesirably
30           expand myfile.v to an absolute filename.
31
32       gcc_style=>0
33           Disable parsing of GCC-like parameters.
34
35       vcs_style=>0
36           Disable parsing of VCS-like parameters.
37

METHODS

39       $opt = Verilog::Getopt->new ( opts )
40           Create a new Getopt.  See OPTIONS above.
41
42       $self->file_path(filename, [lookup_type])
43           Returns a new path to the filename, using the library directories
44           and search paths to resolve the file.  Optional lookup_type is
45           'module', 'include', or 'all', to use only module_dirs, incdirs, or
46           both for the lookup.
47
48       $self->get_parameters()
49           Returns a list of parameters that when passed through
50           $self->parameter() should result in the same state.  Often this is
51           used to form command lines for downstream programs that also use
52           Verilog::Getopt.
53
54       $self->parameter(\@params)
55           Parses any recognized parameters in the referenced array, removing
56           the standard parameters from any previous parameters() call, and
57           returning a array with all unparsed parameters.
58
59           The below list shows the VCS-like parameters that are supported,
60           and the functions that are called:
61
62               +libext+I<ext>+I<ext>...    libext (I<ext>)
63               +incdir+I<dir>              incdir (I<dir>)
64               +define+I<var>=I<value>     define (I<var>,I<value>)
65               +define+I<var>              define (I<var>,undef)
66               +librescan          Ignored
67               -F I<file>          Parse parameters in file relatively
68               -f I<file>          Parse parameters in file
69               -v I<file>          library (I<file>)
70               -y I<dir>           module_dir (I<dir>)
71               all others          Put in returned list
72
73           The below list shows the GCC-like parameters that are supported,
74           and the functions that are called:
75
76               -DI<var>=I<value>           define (I<var>,I<value>)
77               -DI<var>            define (I<var>,undef)
78               -UI<var>            undefine (I<var>)
79               -II<dir>            incdir (I<dir>)
80               -F I<file>          Parse parameters in file relatively
81               -f I<file>          Parse parameters in file
82               all others          Put in returned list
83
84       $self->write_parameters_file(filename)
85           Write the output from get_parameters to the specified file.
86

ACCESSORS

88       $self->define($token, $value)
89           This method is called when a define is recognized.  The default
90           behavior loads a hash that is used to fulfill define references.
91           This function may also be called outside parsing to predefine
92           values.
93
94           An optional third argument specifies parameters to the define, and
95           a fourth argument if true indicates the define was set on the
96           command line and should not be removed by `undefineall.
97
98       $self->define_names_sorted
99           Return sorted list of all define names that currently exist.
100
101       $self->defparams($token)
102           This method returns the parameter list of the define.  This will be
103           defined, but false, if the define does not have arguments.
104
105       $self->defvalue($token)
106           This method returns the value of a given define, or prints a
107           warning.
108
109       $self->defvalue_nowarn($token)
110           This method returns the value of a given define, or undef.
111
112       $self->depend_files()
113           Returns reference to list of filenames referenced with file_path,
114           useful for creating dependency lists.  With argument, adds that
115           file.  With list reference argument, sets the list to the argument.
116
117       $self->file_abs($filename)
118           Using the incdir and libext lists, convert the specified module or
119           filename ("foo") to a absolute filename ("include/dir/foo.v").
120
121       $self->file_skip_special($filename)
122           Return true if the filename is one that generally should be ignored
123           when recursing directories, such as for example, ".", "CVS", and
124           ".svn".
125
126       $self->file_substitute($filename)
127           Removes existing environment variables from the provided filename.
128           Any undefined variables are not substituted nor cause errors.
129
130       $self->incdir
131           Returns reference to list of include directories.  With argument,
132           adds that directory.
133
134       $self->includes
135           Returns reference to hash of files that included some file, and for
136           each hash value a list of files included.  Only relevant after
137           Verilog::Netlist processing.  With two arguments, adds an include
138           for the given referencing filename to the given include filename.
139
140       $self->libext
141           Returns reference to list of library extensions.  With argument,
142           adds that extension.
143
144       $self->libext_matches(filename)
145           Returns true if the passed filename matches the libext.
146
147       $self->library
148           Returns reference to list of libraries.  With argument, adds that
149           library.
150
151       $self->module_dir
152           Returns reference to list of module directories.  With argument,
153           adds that directory.
154
155       $self->remove_defines($token)
156           Return string with any definitions in the token removed.
157
158       $self->undef($token)
159           Deletes a hash element that is used to fulfill define references.
160           This function may also be called outside parsing to erase a
161           predefined value.
162
163       $self->undefineall
164           Deletes all non-command line definitions, for implementing
165           `undefineall.
166

DISTRIBUTION

168       Verilog-Perl is part of the <https://www.veripool.org/> free Verilog
169       EDA software tool suite.  The latest version is available from CPAN and
170       from <https://www.veripool.org/verilog-perl>.
171
172       Copyright 2000-2022 by Wilson Snyder.  This package is free software;
173       you can redistribute it and/or modify it under the terms of either the
174       GNU Lesser General Public License Version 3 or the Perl Artistic
175       License Version 2.0.
176

AUTHORS

178       Wilson Snyder <wsnyder@wsnyder.org>
179

SEE ALSO

181       Verilog-Perl, Verilog::Language
182
183
184
185perl v5.36.0                      2023-01-20                         Getopt(3)
Impressum