1 // Copyright 2012 Google Inc. All Rights Reserved.
2 // Author: sameeragarwal@google.com (Sameer Agarwal)
3 //
4 // This shim file serves two purposes.
5 //
6 // 1. Translate the gflags includes used by the OSS version of Ceres
7 // so that it links into the google3 version.
8 //
9 // 2. Call InitGoogle when ParseCommandLineFlags is called. This is
10 // needed because while google3 binaries call InitGoogle and that call
11 // initializes the logging and command line handling amongst other
12 // things, the open source versions of gflags and glog are distributed
13 // separately and require separate initialization. By hijacking this
14 // function, and calling InitGoogle, we can compile all the example
15 // code that ships with Ceres without any modifications. This
16 // modification will have no impact on google3 binaries using Ceres,
17 // as they will never call google::ParseCommandLineFlags.
18
19 #ifndef GFLAGS_GFLAGS_H_
20 #define GFLAGS_GFLAGS_H_
21
22 #include "base/init_google.h"
23 #include "base/commandlineflags.h"
24
25 namespace google {
26
ParseCommandLineFlags(int * argc,char *** argv,const bool remove_flags)27 inline void ParseCommandLineFlags(int* argc,
28 char*** argv,
29 const bool remove_flags) {
30 InitGoogle(**argv, argc, argv, remove_flags);
31 }
32
33 } // namespace google
34
35 #endif // GFLAGS_GFLAGS_H_
36