Revert of Revert of Add a WorkerScheduler and a WebThreadImplForWorker (patchset...
[chromium-blink-merge.git] / tools / gn / config_values.h
blobdec43c691a3e18a3aaac8ed40cdb5c5b04d0e021
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef TOOLS_GN_CONFIG_VALUES_H_
6 #define TOOLS_GN_CONFIG_VALUES_H_
8 #include <string>
9 #include <vector>
11 #include "base/basictypes.h"
12 #include "tools/gn/source_dir.h"
14 // Holds the values (include_dirs, defines, compiler flags, etc.) for a given
15 // config or target.
16 class ConfigValues {
17 public:
18 ConfigValues();
19 ~ConfigValues();
21 #define STRING_VALUES_ACCESSOR(name) \
22 const std::vector<std::string>& name() const { return name##_; } \
23 std::vector<std::string>& name() { return name##_; }
24 #define DIR_VALUES_ACCESSOR(name) \
25 const std::vector<SourceDir>& name() const { return name##_; } \
26 std::vector<SourceDir>& name() { return name##_; }
28 STRING_VALUES_ACCESSOR(cflags)
29 STRING_VALUES_ACCESSOR(cflags_c)
30 STRING_VALUES_ACCESSOR(cflags_cc)
31 STRING_VALUES_ACCESSOR(cflags_objc)
32 STRING_VALUES_ACCESSOR(cflags_objcc)
33 STRING_VALUES_ACCESSOR(defines)
34 DIR_VALUES_ACCESSOR (include_dirs)
35 STRING_VALUES_ACCESSOR(ldflags)
36 DIR_VALUES_ACCESSOR (lib_dirs)
37 STRING_VALUES_ACCESSOR(libs)
39 #undef STRING_VALUES_ACCESSOR
40 #undef DIR_VALUES_ACCESSOR
42 private:
43 std::vector<std::string> cflags_;
44 std::vector<std::string> cflags_c_;
45 std::vector<std::string> cflags_cc_;
46 std::vector<std::string> cflags_objc_;
47 std::vector<std::string> cflags_objcc_;
48 std::vector<std::string> defines_;
49 std::vector<SourceDir> include_dirs_;
50 std::vector<std::string> ldflags_;
51 std::vector<SourceDir> lib_dirs_;
52 std::vector<std::string> libs_;
55 DISALLOW_COPY_AND_ASSIGN(ConfigValues);
58 #endif // TOOLS_GN_CONFIG_VALUES_H_