| 30 | |
| 31 | namespace sentencepiece { |
| 32 | inline void ParseCommandLineFlags(const char *usage, int *argc, char ***argv, |
| 33 | bool remove_arg = true) { |
| 34 | absl::SetProgramUsageMessage(*argv[0]); |
| 35 | const auto unused_args = absl::ParseCommandLine(*argc, *argv); |
| 36 | |
| 37 | if (remove_arg) { |
| 38 | char **argv_val = *argv; |
| 39 | *argv = argv_val = argv_val + *argc - unused_args.size(); |
| 40 | std::copy(unused_args.begin(), unused_args.end(), argv_val); |
| 41 | *argc = static_cast<int>(unused_args.size()); |
| 42 | } |
| 43 | |
| 44 | logging::SetMinLogLevel(absl::GetFlag(FLAGS_minloglevel)); |
| 45 | } |
| 46 | |
| 47 | inline void ShutdownLibrary() { |
| 48 | google::protobuf::ShutdownProtobufLibrary(); |