aboutsummaryrefslogtreecommitdiffstats
path: root/main.cc
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-29 18:16:11 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-29 20:49:28 +0900
commit94d7a61c9edd45b6c6b0f19c60e64aeddfdc8e46 (patch)
treed9fc4588d60efa39b6773d74e31469594a4bf513 /main.cc
parent4d151839fdb971ad7322556e9f73b742c76386cf (diff)
downloadandroid_build_kati-94d7a61c9edd45b6c6b0f19c60e64aeddfdc8e46.tar.gz
android_build_kati-94d7a61c9edd45b6c6b0f19c60e64aeddfdc8e46.tar.bz2
android_build_kati-94d7a61c9edd45b6c6b0f19c60e64aeddfdc8e46.zip
[C++] Implement --ignore_optional_include
Diffstat (limited to 'main.cc')
-rw-r--r--main.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/main.cc b/main.cc
index 4392f2a..b99a035 100644
--- a/main.cc
+++ b/main.cc
@@ -41,6 +41,25 @@ static const char* g_makefile;
static bool g_is_syntax_check_only;
static bool g_generate_ninja;
+static bool ParseCommandLineOptionWithArg(StringPiece option,
+ char* argv[],
+ int* index,
+ const char** out_arg) {
+ const char* arg = argv[*index];
+ if (!HasPrefix(arg, option))
+ return false;
+ if (arg[option.size()] == '\0') {
+ ++*index;
+ *out_arg = argv[*index];
+ return true;
+ }
+ if (arg[option.size()] == '=') {
+ *out_arg = arg + option.size() + 1;
+ return true;
+ }
+ return false;
+}
+
static void ParseCommandLine(int argc, char* argv[],
vector<StringPiece>* targets,
vector<StringPiece>* cl_vars) {
@@ -56,6 +75,9 @@ static void ParseCommandLine(int argc, char* argv[],
g_enable_stat_logs = true;
} else if (!strcmp(arg, "--ninja")) {
g_generate_ninja = true;
+ } else if (ParseCommandLineOptionWithArg(
+ "--ignore_optional_include",
+ argv, &i, &g_ignore_optional_include_pattern)) {
} else if (arg[0] == '-') {
ERROR("Unknown flag: %s", arg);
} else {