source: trunk/lib/OptionVersion.h @ 796

Last change on this file since 796 was 795, checked in by Peter Johansson, 12 years ago

refs #388

Create a sub-directory 'lib/yat' in which files from yat are
placed. The files may be updated via 'make fetch', see file README for
more details on how to change which files are updated/copied through
this mechanism.

The reason we do not use subversion's external mechanism is that we
don't want the files to be synchronised with yat automatically. We
want the update to be moderated by some developer.

I chose to fetch files using the svn client rather than wget because
the svn allows us to get an Id string with information from the yat
repository. 'wget' would just download the file as it appears on the
server that is the string is not expanded.

The file 'config_public.h' is created by configure just as in
yat. This implies that automake adds $(top_builddir)/lib/yat to the
include path so unless in a VPATH build $(top_srcdir)/lib/yat is in
the include path. As we have already added $(top_srcdir)/lib to the
include path, and there are both a lib/utility.h and a
lib/yat/utility.h it is not obvious which file is included when having
'include "utility.h"'. For this reason, when being in bin/ and test/
it is needed to include "../lib/utility.h" rather than "utility.h"
when we want to include 'lib/utility.h'.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 1.9 KB
Line 
1#ifndef _theplu_svndigest_option_version_
2#define _theplu_svndigest_option_version_
3
4// $Id: OptionVersion.h 795 2009-06-30 03:57:27Z peter $
5
6/*
7  Copyright (C) 2008 Peter Johansson
8
9  This file is part of svndigest, http://trac.thep.lu.se/svndigest
10
11  svndigest is free software; you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation; either version 2 of the License, or
14  (at your option) any later version.
15
16  svndigest is distributed in the hope that it will be useful, but
17  WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  General Public License for more details.
20
21  You should have received a copy of the GNU General Public License
22  along with this program; if not, write to the Free Software
23  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
24  02111-1307, USA.
25*/
26
27#include "yat/OptionSwitch.h"
28
29#include <string>
30
31namespace theplu {
32namespace yat {
33namespace utility {
34  class CommandLine;
35}}
36namespace svndigest {
37
38  /**
39     \brief Class for version option
40
41     When this option is found in parsing of commandline, it displays
42     version output.
43   */
44  class OptionVersion : public yat::utility::OptionSwitch
45  {
46  public:
47    /**
48       \brief Constructor
49       
50       \param cmd Commandline Option is associated with
51       \param name string such as "help" for --help, "h" for -h or
52       "h,help" (default) for having both short and long option name
53       \param desc string used in help display
54    */
55    OptionVersion(yat::utility::CommandLine& cmd, std::string name="version", 
56                  std::string desc="print version information and exit",
57                  OptionSwitch* const verbose=NULL); 
58
59  private:
60    OptionSwitch* const verbose_;
61
62
63    /**
64     */
65    void do_parse2(std::vector<std::string>::iterator, 
66                   std::vector<std::string>::iterator);
67
68  };
69
70}} // of namespace svndigest and theplu
71
72#endif
Note: See TracBrowser for help on using the repository browser.