diff options
Diffstat (limited to 'include/perfetto/ext/base/getopt_compat.h')
-rw-r--r-- | include/perfetto/ext/base/getopt_compat.h | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/include/perfetto/ext/base/getopt_compat.h b/include/perfetto/ext/base/getopt_compat.h deleted file mode 100644 index d1f5436d0..000000000 --- a/include/perfetto/ext/base/getopt_compat.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2021 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef INCLUDE_PERFETTO_EXT_BASE_GETOPT_COMPAT_H_ -#define INCLUDE_PERFETTO_EXT_BASE_GETOPT_COMPAT_H_ - -#include <cstddef> // For std::nullptr_t - -// No translation units other than base/getopt.h and getopt_compat_unittest.cc -// should directly include this file. Use base/getopt.h instead. - -namespace perfetto { -namespace base { -namespace getopt_compat { - -// A tiny getopt() replacement for Windows, which doesn't have <getopt.h>. -// This implementation is based on the subset of features that we use in the -// Perfetto codebase. It doesn't even try to deal with the full surface of GNU's -// getopt(). -// Limitations: -// - getopt_long_only() is not supported. -// - optional_argument is not supported. That is extremely subtle and caused us -// problems in the past with GNU's getopt. -// - It does not reorder non-option arguments. It behaves like MacOS getopt, or -// GNU's when POSIXLY_CORRECT=1. -// - Doesn't expose optopt or opterr. -// - option.flag and longindex are not supported and must be nullptr. - -enum { - no_argument = 0, - required_argument = 1, -}; - -struct option { - const char* name; - int has_arg; - std::nullptr_t flag; // Only nullptr is supported. - int val; -}; - -extern char* optarg; -extern int optind; - -int getopt_long(int argc, - char** argv, - const char* shortopts, - const option* longopts, - std::nullptr_t /*longindex is not supported*/); - -int getopt(int argc, char** argv, const char* shortopts); - -} // namespace getopt_compat -} // namespace base -} // namespace perfetto - -#endif // INCLUDE_PERFETTO_EXT_BASE_GETOPT_COMPAT_H_ |