Ninja
depfile_parser.h
Go to the documentation of this file.
1
// Copyright 2011 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 NINJA_DEPFILE_PARSER_H_
16
#define NINJA_DEPFILE_PARSER_H_
17
18
#include <string>
19
#include <vector>
20
using namespace
std
;
21
22
#include "
string_piece.h
"
23
24
enum
DepfileDistinctTargetLinesAction
{
25
kDepfileDistinctTargetLinesActionWarn
,
26
kDepfileDistinctTargetLinesActionError
,
27
};
28
29
struct
DepfileParserOptions
{
30
DepfileParserOptions
()
31
: depfile_distinct_target_lines_action_(
32
kDepfileDistinctTargetLinesActionWarn
) {}
33
DepfileDistinctTargetLinesAction
34
depfile_distinct_target_lines_action_
;
35
};
36
37
/// Parser for the dependency information emitted by gcc's -M flags.
38
struct
DepfileParser
{
39
explicit
DepfileParser
(
DepfileParserOptions
options =
40
DepfileParserOptions
());
41
42
/// Parse an input file. Input must be NUL-terminated.
43
/// Warning: may mutate the content in-place and parsed StringPieces are
44
/// pointers within it.
45
bool
Parse(
string
* content,
string
* err);
46
47
StringPiece
out_
;
48
vector<StringPiece>
ins_
;
49
DepfileParserOptions
options_
;
50
};
51
52
#endif // NINJA_DEPFILE_PARSER_H_
DepfileParserOptions::DepfileParserOptions
DepfileParserOptions()
Definition:
depfile_parser.h:30
DepfileDistinctTargetLinesAction
DepfileDistinctTargetLinesAction
Definition:
depfile_parser.h:24
DepfileParser
Parser for the dependency information emitted by gcc's -M flags.
Definition:
depfile_parser.h:38
StringPiece
StringPiece represents a slice of a string whose memory is managed externally.
Definition:
string_piece.h:27
std
DepfileParser::options_
DepfileParserOptions options_
Definition:
depfile_parser.h:49
kDepfileDistinctTargetLinesActionError
Definition:
depfile_parser.h:26
kDepfileDistinctTargetLinesActionWarn
Definition:
depfile_parser.h:25
DepfileParserOptions
Definition:
depfile_parser.h:29
DepfileParserOptions::depfile_distinct_target_lines_action_
DepfileDistinctTargetLinesAction depfile_distinct_target_lines_action_
Definition:
depfile_parser.h:34
DepfileParser::ins_
vector< StringPiece > ins_
Definition:
depfile_parser.h:48
string_piece.h
DepfileParser::out_
StringPiece out_
Definition:
depfile_parser.h:47
Generated by
1.8.14