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

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

Issue 1978693002: GN: Allow setting the path to Python (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 7 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/setup.h ('k') | tools/gn/switches.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/setup.h" 5 #include "tools/gn/setup.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <sstream> 9 #include <sstream>
10 #include <utility> 10 #include <utility>
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 Err err; 292 Err err;
293 if (!dotfile_scope_.CheckForUnusedVars(&err)) { 293 if (!dotfile_scope_.CheckForUnusedVars(&err)) {
294 err.PrintToStdout(); 294 err.PrintToStdout();
295 return false; 295 return false;
296 } 296 }
297 297
298 if (fill_arguments_) { 298 if (fill_arguments_) {
299 if (!FillArguments(*cmdline)) 299 if (!FillArguments(*cmdline))
300 return false; 300 return false;
301 } 301 }
302 FillPythonPath(); 302 FillPythonPath(*cmdline);
303 303
304 return true; 304 return true;
305 } 305 }
306 306
307 bool Setup::Run() { 307 bool Setup::Run() {
308 RunPreMessageLoop(); 308 RunPreMessageLoop();
309 if (!scheduler_.Run()) 309 if (!scheduler_.Run())
310 return false; 310 return false;
311 return RunPostMessageLoop(); 311 return RunPostMessageLoop();
312 } 312 }
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 "\nwhich doesn't seem to contain a previously-generated build.") 587 "\nwhich doesn't seem to contain a previously-generated build.")
588 .PrintToStdout(); 588 .PrintToStdout();
589 return false; 589 return false;
590 } 590 }
591 } 591 }
592 592
593 build_settings_.SetBuildDir(resolved); 593 build_settings_.SetBuildDir(resolved);
594 return true; 594 return true;
595 } 595 }
596 596
597 void Setup::FillPythonPath() { 597 void Setup::FillPythonPath(const base::CommandLine& cmdline) {
598 // Trace this since it tends to be a bit slow on Windows. 598 // Trace this since it tends to be a bit slow on Windows.
599 ScopedTrace setup_trace(TraceItem::TRACE_SETUP, "Fill Python Path"); 599 ScopedTrace setup_trace(TraceItem::TRACE_SETUP, "Fill Python Path");
600 if (cmdline.HasSwitch(switches::kScriptExecutable)) {
601 build_settings_.set_python_path(
602 cmdline.GetSwitchValuePath(switches::kScriptExecutable));
603 } else {
600 #if defined(OS_WIN) 604 #if defined(OS_WIN)
601 base::FilePath python_path = FindWindowsPython(); 605 base::FilePath python_path = FindWindowsPython();
602 if (python_path.empty()) { 606 if (python_path.empty()) {
603 scheduler_.Log("WARNING", "Could not find python on path, using " 607 scheduler_.Log("WARNING", "Could not find python on path, using "
604 "just \"python.exe\""); 608 "just \"python.exe\"");
605 python_path = base::FilePath(kPythonExeName); 609 python_path = base::FilePath(kPythonExeName);
610 }
611 build_settings_.set_python_path(python_path.NormalizePathSeparatorsTo('/'));
612 #else
613 build_settings_.set_python_path(base::FilePath("python"));
614 #endif
606 } 615 }
607 build_settings_.set_python_path(python_path.NormalizePathSeparatorsTo('/'));
608 #else
609 build_settings_.set_python_path(base::FilePath("python"));
610 #endif
611 } 616 }
612 617
613 bool Setup::RunConfigFile() { 618 bool Setup::RunConfigFile() {
614 if (scheduler_.verbose_logging()) 619 if (scheduler_.verbose_logging())
615 scheduler_.Log("Got dotfile", FilePathToUTF8(dotfile_name_)); 620 scheduler_.Log("Got dotfile", FilePathToUTF8(dotfile_name_));
616 621
617 dotfile_input_file_.reset(new InputFile(SourceFile("//.gn"))); 622 dotfile_input_file_.reset(new InputFile(SourceFile("//.gn")));
618 if (!dotfile_input_file_->Load(dotfile_name_)) { 623 if (!dotfile_input_file_->Load(dotfile_name_)) {
619 Err(Location(), "Could not load dotfile.", 624 Err(Location(), "Could not load dotfile.",
620 "The file \"" + FilePathToUTF8(dotfile_name_) + "\" cound't be loaded") 625 "The file \"" + FilePathToUTF8(dotfile_name_) + "\" cound't be loaded")
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 if (err.has_error()) { 731 if (err.has_error()) {
727 err.PrintToStdout(); 732 err.PrintToStdout();
728 return false; 733 return false;
729 } 734 }
730 } 735 }
731 build_settings_.set_exec_script_whitelist(std::move(whitelist)); 736 build_settings_.set_exec_script_whitelist(std::move(whitelist));
732 } 737 }
733 738
734 return true; 739 return true;
735 } 740 }
OLDNEW
« no previous file with comments | « tools/gn/setup.h ('k') | tools/gn/switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698