blob: 910acbfce589a6df3781cab7252744a49235721d [file] [log] [blame]
Shinichiro Hamaji08808d32015-06-26 08:02:45 +09001// Copyright 2015 Google Inc. All rights reserved
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#ifndef FLAGS_H_
16#define FLAGS_H_
17
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090018#include <string>
19#include <vector>
20
21#include "string_piece.h"
22#include "symtab.h"
23
24using namespace std;
25
26struct Flags {
27 bool detect_android_echo;
Shinichiro Hamajif3ad9e02016-03-03 18:26:17 +090028 bool detect_depfiles;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090029 bool dump_kati_stamp;
Shinichiro Hamaji644d6b92015-11-17 14:47:56 +090030 bool enable_kati_warnings;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090031 bool enable_stat_logs;
Shinichiro Hamaji7223e7b2015-09-28 15:17:27 +090032 bool gen_all_targets;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090033 bool generate_ninja;
34 bool is_dry_run;
35 bool is_silent_mode;
36 bool is_syntax_check_only;
37 bool regen;
38 bool regen_ignoring_kati_binary;
39 bool use_find_emulator;
40 const char* goma_dir;
41 const char* ignore_dirty_pattern;
Colin Crossf23ae8c2015-11-12 17:05:32 -080042 const char* no_ignore_dirty_pattern;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090043 const char* ignore_optional_include_pattern;
44 const char* makefile;
45 const char* ninja_dir;
46 const char* ninja_suffix;
Shinichiro Hamaji1a444a82016-02-16 13:49:49 +090047 int num_cpus;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090048 int num_jobs;
49 int remote_num_jobs;
50 vector<const char*> subkati_args;
51 vector<Symbol> targets;
52 vector<StringPiece> cl_vars;
53
54 void Parse(int argc, char** argv);
55};
56
57extern Flags g_flags;
Shinichiro Hamaji08808d32015-06-26 08:02:45 +090058
59#endif // FLAGS_H_