Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: tools/gn/test_with_scope.cc

Issue 1207903002: Windows precompiled header support in GN (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Scott's grammar nits Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/gn/test_with_scope.h ('k') | tools/gn/tool.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "tools/gn/test_with_scope.h" 5 #include "tools/gn/test_with_scope.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "tools/gn/parser.h" 8 #include "tools/gn/parser.h"
9 #include "tools/gn/tokenizer.h" 9 #include "tools/gn/tokenizer.h"
10 10
11 namespace {
12
13 void SetCommandForTool(const std::string& cmd, Tool* tool) {
14 Err err;
15 SubstitutionPattern command;
16 command.Parse(cmd, nullptr, &err);
17 CHECK(!err.has_error())
18 << "Couldn't parse \"" << cmd << "\", " << "got " << err.message();
19 tool->set_command(command);
20 }
21
22 } // namespace
23
24 TestWithScope::TestWithScope() 11 TestWithScope::TestWithScope()
25 : build_settings_(), 12 : build_settings_(),
26 settings_(&build_settings_, std::string()), 13 settings_(&build_settings_, std::string()),
27 toolchain_(&settings_, Label(SourceDir("//toolchain/"), "default")), 14 toolchain_(&settings_, Label(SourceDir("//toolchain/"), "default")),
28 scope_(&settings_) { 15 scope_(&settings_) {
29 build_settings_.SetBuildDir(SourceDir("//out/Debug/")); 16 build_settings_.SetBuildDir(SourceDir("//out/Debug/"));
30 build_settings_.set_print_callback( 17 build_settings_.set_print_callback(
31 base::Bind(&TestWithScope::AppendPrintOutput, base::Unretained(this))); 18 base::Bind(&TestWithScope::AppendPrintOutput, base::Unretained(this)));
32 19
33 settings_.set_toolchain_label(toolchain_.label()); 20 settings_.set_toolchain_label(toolchain_.label());
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 toolchain->SetTool(Toolchain::TYPE_STAMP, stamp_tool.Pass()); 112 toolchain->SetTool(Toolchain::TYPE_STAMP, stamp_tool.Pass());
126 113
127 // COPY 114 // COPY
128 scoped_ptr<Tool> copy_tool(new Tool); 115 scoped_ptr<Tool> copy_tool(new Tool);
129 SetCommandForTool("cp {{source}} {{output}}", copy_tool.get()); 116 SetCommandForTool("cp {{source}} {{output}}", copy_tool.get());
130 toolchain->SetTool(Toolchain::TYPE_COPY, copy_tool.Pass()); 117 toolchain->SetTool(Toolchain::TYPE_COPY, copy_tool.Pass());
131 118
132 toolchain->ToolchainSetupComplete(); 119 toolchain->ToolchainSetupComplete();
133 } 120 }
134 121
122 // static
123 void TestWithScope::SetCommandForTool(const std::string& cmd, Tool* tool) {
124 Err err;
125 SubstitutionPattern command;
126 command.Parse(cmd, nullptr, &err);
127 CHECK(!err.has_error())
128 << "Couldn't parse \"" << cmd << "\", " << "got " << err.message();
129 tool->set_command(command);
130 }
131
135 void TestWithScope::AppendPrintOutput(const std::string& str) { 132 void TestWithScope::AppendPrintOutput(const std::string& str) {
136 print_output_.append(str); 133 print_output_.append(str);
137 } 134 }
138 135
139 TestParseInput::TestParseInput(const std::string& input) 136 TestParseInput::TestParseInput(const std::string& input)
140 : input_file_(SourceFile("//test")) { 137 : input_file_(SourceFile("//test")) {
141 input_file_.SetContents(input); 138 input_file_.SetContents(input);
142 139
143 tokens_ = Tokenizer::Tokenize(&input_file_, &parse_err_); 140 tokens_ = Tokenizer::Tokenize(&input_file_, &parse_err_);
144 if (!parse_err_.has_error()) 141 if (!parse_err_.has_error())
145 parsed_ = Parser::Parse(tokens_, &parse_err_); 142 parsed_ = Parser::Parse(tokens_, &parse_err_);
146 } 143 }
147 144
148 TestParseInput::~TestParseInput() { 145 TestParseInput::~TestParseInput() {
149 } 146 }
150 147
151 TestTarget::TestTarget(TestWithScope& setup, 148 TestTarget::TestTarget(TestWithScope& setup,
152 const std::string& label_string, 149 const std::string& label_string,
153 Target::OutputType type) 150 Target::OutputType type)
154 : Target(setup.settings(), setup.ParseLabel(label_string)) { 151 : Target(setup.settings(), setup.ParseLabel(label_string)) {
155 visibility().SetPublic(); 152 visibility().SetPublic();
156 set_output_type(type); 153 set_output_type(type);
157 SetToolchain(setup.toolchain()); 154 SetToolchain(setup.toolchain());
158 } 155 }
159 156
160 TestTarget::~TestTarget() { 157 TestTarget::~TestTarget() {
161 } 158 }
OLDNEW
« no previous file with comments | « tools/gn/test_with_scope.h ('k') | tools/gn/tool.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698