blob: 53e777b0a8751043e07d626b2fe990e8383be08d [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 Hamajic58db9a2016-05-12 15:16:12 +090030 bool enable_debug;
Shinichiro Hamaji644d6b92015-11-17 14:47:56 +090031 bool enable_kati_warnings;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090032 bool enable_stat_logs;
Shinichiro Hamaji7223e7b2015-09-28 15:17:27 +090033 bool gen_all_targets;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090034 bool generate_ninja;
35 bool is_dry_run;
36 bool is_silent_mode;
37 bool is_syntax_check_only;
38 bool regen;
Dan Willemsenf6486ce2016-09-16 19:21:36 -070039 bool regen_debug;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090040 bool regen_ignoring_kati_binary;
41 bool use_find_emulator;
Dan Willemsene41c7552017-02-22 14:31:16 -080042 bool color_warnings;
Dan Willemsenf63a3fd2017-04-27 23:39:57 -070043 bool werror_find_emulator;
44 bool werror_overriding_commands;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090045 const char* goma_dir;
46 const char* ignore_dirty_pattern;
Colin Crossf23ae8c2015-11-12 17:05:32 -080047 const char* no_ignore_dirty_pattern;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090048 const char* ignore_optional_include_pattern;
49 const char* makefile;
50 const char* ninja_dir;
51 const char* ninja_suffix;
Shinichiro Hamaji1a444a82016-02-16 13:49:49 +090052 int num_cpus;
Shinichiro Hamaji003d06e2015-09-09 18:22:04 +090053 int num_jobs;
54 int remote_num_jobs;
55 vector<const char*> subkati_args;
56 vector<Symbol> targets;
57 vector<StringPiece> cl_vars;
58
59 void Parse(int argc, char** argv);
60};
61
62extern Flags g_flags;
Shinichiro Hamaji08808d32015-06-26 08:02:45 +090063
64#endif // FLAGS_H_