required command line options

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

required command line options

Ryan M. Lefever
In the CommandLine parser there is a way to specify that a command line
option is required.  Is there a way to specify that the option is
required only if some other option is set?

In particular, I want to build a transformation T that opt loads.  So, I
when I register T with opt a boolean command line option is created.  If
the option is set by the user, then the transformation is run.  However,
T requires the user to specify the names of some files.  So, I can use
cl::opt<string> to create command line options F1, F2, and F3 with which
the user can specify those file names.  If I define F1, F2, and F3 as
cl::required, they are required even if transform T is not being run.
Is there a way to make the file command line arguments required
contingent on the presence of transform T's command line flag?

Thanks in advance,
Ryan
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: required command line options

Reid Spencer-2
Ryan,

Did you read this: http://llvm.org/docs/CommandLine.html#valrequired ?

On Thu, 2007-03-08 at 06:08 -0600, Ryan M. Lefever wrote:
> In the CommandLine parser there is a way to specify that a command line
> option is required.  Is there a way to specify that the option is
> required only if some other option is set?

I don't think it currently handles this, although something like
"cl::MustFollow(OtherOption)" could be added. Alternatively, you could
provide a custom parser.

>
> In particular, I want to build a transformation T that opt loads.  So, I
> when I register T with opt a boolean command line option is created.  If
> the option is set by the user, then the transformation is run.  However,
> T requires the user to specify the names of some files.  So, I can use
> cl::opt<string> to create command line options F1, F2, and F3 with which
> the user can specify those file names.  If I define F1, F2, and F3 as
> cl::required, they are required even if transform T is not being run.
> Is there a way to make the file command line arguments required
> contingent on the presence of transform T's command line flag?

Not that I know of. However, it would probably be acceptable to make
them optional and emit an error if they aren't given when -T is
specified.

Reid.

>
> Thanks in advance,
> Ryan
> _______________________________________________
> LLVM Developers mailing list
> [hidden email]         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev